Вход и изход в Delphi
Вижте също:- АНАЛИЗ НА ТЕОРЕТИЧНИ И ЕКСПЕРИМЕНТАЛНИ ИЗСЛЕДВАНИЯ И ФОРМУЛИРАНЕ НА ИЗВОДИ И ПРЕДЛОЖЕНИЯ
- Въвеждане и извеждане на данни
- Вход и изход на двумерни масиви
- Вход и изход с външни файлове
- Въвеждане на едномерни масиви. Извеждане на едномерни масиви
- Вход-изход на едномерни и двумерни масиви
- Вход изход.
- Извеждане на данни
- ИЗХОД НА ДВУМЕРЕН МАСИВ
- Извеждане на диференциалното уравнение B-Sh-M
- Извеждане на закона на Стокс в главната координатна система.
Класове в Delphi
Лекция 24
Delphi има обширен набор от класове. Фрагмент от структурата на клас Delphi е показан на фигура 5.24.1.
Предшественикът на всички класове на Delphi е класътTObject. Той има най-често срещаните методи, присъщи на всеки Pascal обект. Този клас описва основните принципи за това как обектите се държат по време на работа на програмата (създаване, унищожаване, обработка на събития и т.н.).
Класът TPersistent (потомък на TObject) имплементира основните методи за копиране на съдържанието на обекти.
Класът TComponent (потомък на TPersistent) е основният родителски клас за всички класове, описващи компоненти на Delphi. Този клас съдържа набор от общи свойства (броя обекти, подчинени на този; списък с обекти, подчинени на този, текущото състояние на компонента и т.н.) и общи методи (добавяне на обект към списъка с компоненти; премахване на обект от списъка с компоненти и т.н.).
За да въведете стойности на данни от клавиатурата в Delphi, можете да използвате широка гама от интерфейсни елементи (визуални компоненти), освен това можете да използвате вход и изход с помощта на файлове за натрупване на резултати и автоматично въвеждане на данни.
Тези инструменти трябва да предоставят възможност за:
- създаване на надписи върху самата форма;
- въведете стойности на данни (числа, текст) в програмата за обработка и изход от програмата на екрана (на формуляр) или във външен файл.
.5.12.1. Етикет компонент (клас TLabel)
Пиктограма:.
С помощта на този компонент обикновено се създават заглавия за други елементи на интерфейса, обяснителни етикети и др. Този компонент може да се използва и за извеждане на данни от програма. Потребителят не може да редактира данните в този компонент.
Коментирайте. Общ надпис за формуляр се стилизира чрез поставяне на текста на надписа в свойството Caption на формуляра. Това заглавие ще бъде поставено в горната лента на формуляра.
Пример. Да предположим, че във формата искаме да направим заглавието "Решение на уравнението".
За да създадете такъв текст, трябва:
1. В палитрата на компонентите изберете страницата "Стандарт";
2.В палитрата с компоненти от страница "Стандарт"; изберете бутона с букватаA, щракнете върху този бутон с левия бутон на мишката и начертайте правоъгълник на желаното място във формата. В резултат на това във формата ще се появи избран правоъгълник с надпис "Label1".
Ако погледнете текста на модула формуляр, тогава текстът ще се появи в описанието на класа формуляр
3. В Инспектора на обекти активирайте раздела свойства на компонента Label1 и в свойството Caption напишете "Решение на уравнение". Може да забележите, че веднага този текст ще се появи във формуляра.
Визуалният вид и характеристиките на този компонент могат да бъдат променени чрез задаване на различни стойности на свойствата на компонента (полезно е да експериментирате), например:
- свойствоColor ви позволява да промените цвета на фона;
- свойствотоFont ви позволява да зададете различен цвят, размер и шрифт на символите (за да отворите диалоговия прозорец, трябва дащракнете върху бутона с три точки);
- ако свойствотоAutosize е зададено на True, тогава размерите на правоъгълника ще бъдат автоматично зададени според размера на текста;
n ако свойствотоWordWrap е зададено на True, тогава текстът ще обхваща няколко реда - хоризонталният размер на прозореца ще бъде фиксиран, докато текстът се въвежда, вертикалният размер на прозореца ще се променя.
За да покажете текст по време на изпълнение на програмата, просто трябва да присвоите стойността на символен низ (променлива или константа) на името на полето
Етикет1.Надпис:=S; , където S е променлива тип низ.
5.12.2. Редактиране на компонент (клас Tedit).
Пиктограма:
Това е правоъгълен прозорец, в който можете да въвеждате и редактирате текст. Можете да: въвеждате, показвате, избирате, копирате, изтривате текст.
Редактиране.свойства на компонента
В допълнение към типичния набор от свойства -Име,Активирано,Нагоре,Височина и др. този компонент има следните свойства.
ReadOnly - това свойство ви позволява да забраните (стойност True) въвеждане и редактиране на текст от потребителя.
TabOrder - Указва реда, в който компонентът получава фокус при натискане на клавиша Tab. По подразбиране този ред се определя от реда, в който компонентите са поставени във формуляра. Компонент номер 0 получава фокус при отваряне на формуляра. Това свойство може да се използва само във връзка със свойствотоTabStop.
TabStop - това свойство ви позволява да посочите дали компонентът може да получава фокус (истинска стойност) или не.
Текст - това свойство е предназначено за запис на стойността на входния низ в низаРедактиране и за четене на поредица от символи от низа. По подразбиране в това свойствоИзписва сеEditX (X е номерът на компонентаEdit във формата).
MaxLength - определя максималната дължина на текста на низа в символи. Ако стойността на това свойство е 0, тогава няма ограничения за дължината на текста.
СвойствотоAutoSize в прозорците за редактиране има различно значение от подобно свойство на етикетите: само височината, но не и ширината на прозореца автоматично се настройва към размера на текста.
Ctrl-X — изрязване на избрания текст в буфера на клипборда (команда Изрязване),Ctrl-V — поставяне на текста от буфера на клипборда в позицията на курсора (команда Поставяне),
Ctrl-Z - отменя последната команда за редактиране.
Вярно е, че потребителите често не знаят за тези опции за редактиране. Така че е полезно да им напомняте за това с подходящи подкани.
СвойствотоPasswordChar ви позволява да превърнете прозореца за редактиране в прозорец за въвеждане на парола. Стойността по подразбиране заPasswordChar е#0, нулевият знак. В този случай това е нормален прозорец за редактиране. Но ако зададете различен знак в свойството (например знака звездичка „* “), тогава, когато потребителят въведе текст, тези знаци ще се появят в прозореца, а не тези, които потребителят въвежда. Това гарантира тайната на въвеждането на паролата.
При създаване на низ за редактиране автоматично се създава променлива от тип String, общата форма на името на която е
име_на_поле.текст;.
Например, ако въведете последователността от знаци 'ABC' в прозореца с имеEdit3, тогава променливата Edit3.text ще бъде зададена на 'ABC'. Тази стойност може да бъде присвоена на всяка променлива от тип string, например
вар. S: Низ;
За да запишете последователност от символи от програмата в низаEdit1, е достатъчно да изпълните операторазадачи
Edit1.Text := St; (St е променлива тип низ).
Пример. За да илюстрираме въвеждането и извеждането на данни с помощта на компонента Редактиране, нека създадем проект с формата, показана на Фигура 5.24.1
Ориз. 5.24.1 Примерен формуляр
Тоест формулярът трябва да съдържа ред Редактиране и два бутона: "затваряне" и "операция". Ще пишем знаци в реда Редактиране. Когато щракнете върху бутона "операция", програмата трябва да вземе въведената последователност от знаци, да направи някои трансформации с нея (например да добави символа # отляво и отдясно) и да върне резултата в реда Редактиране.
1. Създайте формуляр със заглавие "пример", за това пишем думата "пример" в свойството Caption на формуляра.
2. Нека създадем два бутона "затваряне" и "операция". Вече разгледахме как да създаваме бутони. Отбелязваме само, че при създаването на втория бутон компонентът ще бъде добавен към описанието на класа
и метод за обработка на събитието, свързано с втория бутон
и в края на модула на формуляра ще бъде добавен мъниче на процедурата за обработка
2. Нека създадем линия за редактиране. За това
- изберете страницата "стандарт" в палитрата на компонентите;
- щракнете върху бутона и нарисувайте правоъгълник във формата.
На екрана във формата ще се появи избран правоъгълник с текст Edit1.
Стойността на низа за редактиране се предава през свойството Text, по подразбиране това свойство е зададено на Edit1. Нека премахнем този текст от свойството Text.
Сега нека да разгледаме как можете да прехвърлите данни към програмата и да върнете данни от програмата през прозореца за редактиране. Тъй като знаците и числата се обработват по различен начин, нека да разгледаме два примера.
5.12.3. Въвеждане и извеждане на символни данни.
Нека подготвим проект, който ви позволява да направите следното. Потребителят влизав низа за редактиране поредица от знаци. След като щракнете върху бутона "операция", програмата трябва:
- вземете низ от символи и добавете символ # отляво и отдясно;
- премахване на оригиналната последователност от низа;
- показване на получената последователност в ред Редактиране.
За да реализирате тези функции, трябва да добавите следното в модула на формуляра (маркиран с удебелен шрифт):
а) в раздела за променливи посочете променлива (например S) от тип низ, т.е. променливата секция ще изглежда така
S : низ;
б) добавете следния текст към процедурата за обработка на събития за бутона "операция":
процедура Tform1.Button2Click(подател: Tobject);
S:=Edit1.Text; //четене от прозорец към S
Edit1.Text := ''; //изчистване на прозореца
S:= '#' + S + '#'; //добавете знаци отляво и отдясно
Edit1.Text := S; //запис в прозорец на нов ред
Пълният текст на модула формуляр е даден по-долу.
използва Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
тип TForm1 = клас (TForm)
процедура Button1Click(Подател: TObject);
процедура Button2Click(Подател: TObject);
var Form1: TForm1;
процедура TForm1.Button1Click(Подател: TObject);
процедура TForm1.Button2Click(Подател: TObject);
5.12.4. Въвеждане и извеждане на числа.
Чрез низа за редактиране можете да предавате не само текст, но и числа. В този случай числата се предават като поредици от знаци, така че при прехвърляне на числа е необходимо да се предвиди преобразуването на цифровите знаци в числа по време на въвеждане и преобразуването на числата в поредици от знаци по време на изхода. За да направите това, можете да използвате стандартните функции:
-Val(S,m,n) - за преобразуванепоследователности от знаци (S) в число (m). Ако числото съдържа невалиден знак, тогава променливата n (цяло число) се задава на кодовата стойност на този знак.
Пример: ако в полето Edit1 сме въвели число, чиято стойност трябва да бъде получена от променлива A, тогава трябва да напишем
(променливата cod трябва да бъде декларирана като даден целочислен тип);
-Str(Y,S) - за преобразуване на число (Y) в поредица от символи (S) (символно изображение на число). Във функцията Str можете също да посочите ширината на полето (Sp) и броя на десетичните знаци (dz), както при процедурата за запис, т.е. формата на функцията Str има формата
Например запис като Str(y:7:3,S1);
означава, че символното представяне на числото Y ще заема поле от 7 позиции и ще има 3 позиции в дробната част на числото, а променливата Z ще бъде представена във формата с буквата E и мантисата ще съдържа пет цифри в дробната част, например
Коментирайте. DELPHI дефинира широк набор от стандартни функции за преобразуване на типове. По-специално, има функции, които извършват подобни трансформации:
FloatToStr(X) - преобразува реално число от разширен тип в символно представяне.
IntToStr(N) - Преобразува цяло число в символен низ.
StrToFloat(s) - преобразува низа s в двоично реално число от разширен тип.
StrToInt(s) - преобразува низа s в двоично цяло число от тип Integer.
Пример. Нека трансформираме предишния пример, така че когато щракнете върху бутона "операция", програмата:
- взе символно представяне на число от полето Редактиране;
- преобразува го в числова форма (променлива X);
- на квадрат (Y:=X*X);
- резултатът (Y) беше преобразуван в символно представяне иго показва в прозореца за редактиране.
За да направите това, добавете следното към модула на формуляра:
1) В секцията с променливи добавете описание на променливите X, Y и cod, т.е.
S :низ;
X,Y :Реално;
код :Цяло число;
2) В манипулатора на събития за бутона "операция" напишете
Val(Edit1.Text,X,cod);
Edit1.Text:='';
Y:=X*X;
Str(Y,S);
Редактиране1.Текст:=S
Пълният текст на модула на формуляра за този пример е показан по-долу.
използва Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
тип TForm1 = клас (TForm)
процедура Button1Click(Подател: TObject);
процедура Button2Click(Подател: TObject);
var Form1: TForm1;
процедура TForm1.Button1Click(Подател: TObject);
процедура TForm1.Button2Click(Подател: TObject);
следваща лекция ==> | ||
Свойства на компонента | Свойства на компонента StringGrid |