3 ТЕРЕЗЕЛІК ҚОСЫМШАЛАРДЫ ҚҰРУ 3.1 Label, Edit, Memo мәтіндік құрауыштары. Button батырмасы
Label тамғасы
Иерархиясы:
TObject – TPersistent – TComponent – TControl – TGraphicControl –
TCustomLabel.
Құрауыштар Палитрасының Парағы: Standard.
Тамғалар экранға әртүрлі түсініктеме, атаулар, тақырыптар және т.б. тұратын мәтіндік ақпараттарды орналастыруға тағайындалған. Delphi – дегі тамғалар TLabel класының данасы болып табылады. TLabel класы тамғалардың негізгі сипаттамалары анықталған TCustomLabel класының ұрпақ класы болып табылады. Бұл класс TGraphicControl класының тікелей ұрпақ класы болып табылады, сондықтан ол тек тышқан арқылы берілген оқиғаға ғана әсер етеді.
TCustomLabel класының қасиеттерінен келесілерді белгілейміз:
Тамғаға негізгі қасиет болып TСontrol класынан туындалған Caption қасиеті табылады. Дәл осында экранға шығатын мәтін орналастырылады.
property Caption: TCaption;
type
TCaption = type WideString;
property Alignment: TAlignment;
type
TAlignment = (taLeftJustify, taRightJustify, taCenter);
Қасиет құрауыштағы мәтіннің теңестірілуін анықтайды. Ол келесі мәндерді қабылдауы мүмкін: taLeftJustify – сол жақ шеті бойынша теңестірілу; taRightJustify – оң жақ шеті бойынша теңестірілу, taCenter – ортасы бойынша теңестірілу. Үнсіздік белгісімен теңестірілу сол жақ шеті бойынша ұйымдастырылады.
property AutoSize: Boolean;
Егер қасиеттің мәні True – ге тең болса, онда тамғаның биіктігі мен ені онда орналасқан мәтінге сәйкес автоматты түрде өзгереді.
property Layout: TTextLayout;
type
TTextLayout = (tlTop, tlCenter, tlBottom);
Қасиет тамғаның вертикаль жағдайын анықтайды:
tlTop – жоғарғы бөлігінде орналасқан;
tlCenter – ортасында орналасқан;
tlBottom – төменде орналасқан.
property Transparent: Boolean;
Егер қасиет True мәнінен тұрса, тамғаның фоны басқа құрауыштармен қатынасына қарағанда айқын болады. Үнсіздік белгісімен False мәніне тең.
property WordWrap: Boolean;
Егер қасиет True мәніне тең болса, онда ағымды жол толтырылғаннан кейін мәтіннің жаңа жолға тасымалдануы орындалады. Үнсіздік белгісімен False мәніне тең.
Тамға тышқанды қолданған және құрауыштарды тасымалдаған кез – келген оқиғаны өңдейді. Үнсіздікпен тамға үшін оқиға OnClick оқиғасы болып табылады.
TCustomEdit класы
Delphi – де пернетақта арқылы бағдарламаға әртүрлі символдық ақпараттарды енгізетін және редакциялайтын бірнеше құрауыштар анықталған. Олардың барлығы мынандай мүмкіншіліктерді жүзеге асыра алады, ерекшелеу, көшіру, жою, үзінділерді қою, мәтіннің скроллингі, егер ол терезеге сыймайтын болса және т.б. Барлық редактірлердің жиынынан біз TEdit класының жолды енгізу және мәтін редактірі TMemo – ны қарастрамыз.
Көптеген стандартты редактірлер TCustomEdit класының ұрпақтары болып табылады. TWinControl класының ұрпақ класы болып табылатын TCustomEdit класы барлық мәтіндік редакторларға жалпы болып табылатын сипаттамалар тізімінен тұрады. Ең негізгісі болып келесі қасиеттер табылады:
property AutoSelect: Boolean;
Егер қасиеттің мәні True – ге (мәні үнсіздік бойынша) тең болса, онда мәтін редактір белсенді болғанда ерекшеленеді.
property AutoSize: Boolean;
Егер қасиеттің мәні True – ге тең болса, онда редактордың биіктігі қаріптің биіктігіне сәйкес автоматты түрде өзгереді.
property MaxLength: Integer;
Редактірге орналастырылатын символдардың максимальды санын анықтайды. Егер қасиеттің мәні нольге тең болса (үнсіздікпен қолданылады), онда редактірге символдардың ерікті санын орналастыруға болады.
property PasswordChar: Char;
Редактірге нақты енгізілетін симолдардың орнына бейнеленетін символды береді. Редактірдің мұндай тәртібі бағдарламада парольді қолданғанда керек болады. Егер қасиеттің мәні коды 0-ге тең (мәні үнсіздік бойынша) символ болса, онда енгізілетін символдар түрлендірілусіз бейнеленеді.
property ReadOnly: Boolean;
Егер қасиеттің мәні True – ге тең болса, онда мәтін тек оқуға ғана тағайындалған, яғни оны өзгертуге болмайды. Үнсіздік бойынша мәні False – ге тең.
TCustomEdit класында редактірлеу функцияларын жүзеге асыратын бірнеше әдістер анықталған:
procedure Clear; virtual;
Редактірде орналастырылған барлық мәтінді жояды.
procedure ClearSelection;
Мәтіннің ерекшеленген үзіндісін жояды.
procedure CopyToClipboard;
Мәтіннің ерекшеленген үзіндісін Clipboard буферіне көшіреді.
procedure PasteFromClipboard;
Clipboard буферіндегі мәтінді редактірдің меңзерінің орнына көшіреді.
procedure SelectAll;
Редактірде орналасқан бүкіл мәтінді ерекшелейді.
Көптеген редактірлерде келесі командаларды орындайтын, құрамдас жергілікті менюлер бар:
Undo – мәтіндегі соңғы орындалған операцияны болдырмау;
Cut – ерекшеленген үзіндіні қиып алып, оны алмасу буферіне орналастыру;
Copy – ерекшеленген үзіндіні алмасу буферіне көшіру;
Paste – алмасу буферіндегі үзіндіні мәтіннің меңзер орнынан бастап орналастыру;
Delete – ерекшеленген үзіндіні жою;
Select All – бүкіл мәтінді ерекшелеу.
Edit енгізу жолы
Иерархиясы:
TObject – TPersistent – TComponent – TControl – TWinControl –
TCustomMaskEdit – TCustomEdit.
Құрауыштар Палитрасының Парағы: Standard.
TEdit класының данасы болып табылатын енгізу жолы Edit мәтіннің бір жолын енгізуге және редактірлеуге мүмкіндік береді.
TEdit класы – TCustomEdit класының тікелей ұрпақ классы және оның барлық сипаттамаларын туындайды.
Енгізу жолының негізгі қасиеті болып Text қасиеті табылады:
property Text: TCaption;
type
TCaption = string;
Edit редактіріндегі символдық жолдан тұрады.
Символдық жол қасиетке пішінді құрастыру кезеңінде немесе бағдарламаның орындалуы барысында орналастырылуы мүмкін. Көбінде редактір ақпаратты енгізу үшін қолданылады. Бұл жағдайда пішінді құрастыру кезеңінде Text қасиетіне бос жолды орналастыруға болады, ал бағдарламаның орындалуы барысында одан енгізілген мәндерді алуға болады. Егер сандық берілгендердің символдық белгілері енгізілсе, онда алдыңғы уақытта типті түрлендіретін сәйкес бағыныңқы бағдарламаның көмегімен түрленуі қажет (Б қосымшасына қараңыздар).
Енгізу жолы терезелік басқару элементі болып табылғандықтан, ол пернетақта мен тышқан арқылы берілген хабарламаны, тасымалмен байланысты, активтеу мен активтеуді болдырмау, сонымен қатар OnChange оқиғасын өңдейді:
property OnChange: TNotifyEvent;
Енгізу жолының мәтіні өзгергенде өрбиді. Үнсіздік бойынша TEdit класының енгізу жолының оқиғасы болып табылады.
Memo мәтіндік редактірі
Иерархиясы:
TObject – TPersistent – TComponent – TControl – TWidgetControl –
TCustomEdit – TCustomMemo.
Страница Палитры Компонентов: Standard.
Memo мәтіндік редактірі Edit енгізу жолымен салыстырғанда бір емес, кез – келген жолдар санынан тұруы мүмкін. Memo редактірі TMemo класының данасы болып табылады. Өз кезегінде TMemo класы тікелей TCustomMemo класынан туындаған, онда көп жолды мәтіндік редактірлердің негізгі сипаттамалары берілген.
TCustomMemo класының келесі қасиеттерін белгілейік:
property Lines: TStrings;
TStrings кластық типтің қасиеттері (төменнен қараңыздар). Редактірде орналасқан жолдар тізімін береді.
property ScrollBars: TScrollStyle;
type
TScrollStyle = (ssNone, ssHorizontal, ssVertical, ssBoth);
Скроллингтің сызғыштарының барын береді:
ssNone – сызғыш жоқ,
ssHorizontal – тек көлденең сызғыш,
ssVertical –тек тік сызғыш,
ssBoth –екі сызғыш та бар.
property WantReturns: Boolean;
Enter пернесінің әрекетін анықтайды. Егер мәні True – ге тең болса, онда Enter пернесіне басқанда мәтіннің жаңа жолына ауысу орындалады. Қарсы жағдайда енгізу фоксы пішінге беріледі, ал мәтіннің жаңа жолына көшу Ctrl+Enter пернелерінің комбинациясын басқанда орындалады.
Edit енгізу жолы сияқты, көп жолды Memo мәтіндік редактірі пернетақта мен тышқан арқылы берілген хабарламаны, тасымалмен байланысты, активтеу мен активтеуді болдырмау, сонымен қатар OnChange (үнсіздік бойынша ) оқиғасын өңдейді:
TStrings класы
TStrings – TPersistent класының тікелей ұрпақ класы абстрактілі класс болып табылады. Бұл кластың объектілері жолдар тізімін береді. Әрбір жолмен қандай да бір объект байланысқан болуы мүмкін, мысалы сурет немесе пиктограмма. Егер жолмен ешқандай объект байланыспаған болса, онда оған нұсқағыштың мәні nil – ге тең. TStrings класы жалпы тағайындалған класс болып табылады және Delphi – дегі көптеген құрауыштарға сәйкес типтердің қасиеттерін анықтау үшін қолданылады. TStrings класының негізгі қасиеттерін қарастырайық:
property Count: Integer;
Тізімдегі элементтердің санын анықтайды.
property Objects[Index: Integer]: TObject;
Index индексі бар жолмен ассоциативтелген объектіге нұсқағышты анықтайды.
property Strings[Index: Integer]: string;
Тізімнің Index индексі бар жолын анықтайды. Бірінші жолдың индексі – 0.
property Text: string;
Тізімнің барлық жолдарынан тұрады, бөлгіштерді қоса алғанда – каретканы қайтару символы және жолды аудару (#13#10).
TStrings класында анықталған негізгі әдістер:
function Add(const S: string): Integer; virtual;
Тізімге S жолын қосады және осы жолдың тізімдегі реттік нөмірін қайтарады.
function AddObject(const S: string; AObject: TObject): Integer; virtual;
S жолын және онымен байланысты AObject объектісін тізімге қосады және тізімдегі жол мен объектінің индексін қайтарады.
procedure AddStrings(Strings: TStrings); virtual;
TStrings класының басқа Strings объектісінің тізімін ағымды тізімге қосады.
procedure BeginUpdate;
Тізімді жаңалаудың басын бекітеді. Экранда қайта сурет салу уақытша тоқтатылады.
procedure Clear; virtual; abstract;
Тізімдегі барлық жолдарды және объектіге нұсқағыштарды жояды.
procedure Delete(Index: Integer); virtual; abstract;
Index индексі бар элементті тізімнен жояды.
procedure EndUpdate;
Жаңартудың аяқталуын бекітеді және қажет болған жағдайда жолдарды сұрыптайды.
procedure Exchange(Index1, Index2: Integer); virtual;
Index1 және Index2 индекстері бар екі элементі орындарымен ауыстырады.
procedure Insert(Index: Integer; const S: string); virtual; abstract;
Тізімге Index индекспен S жолын қояды.
procedure InsertObject(Index: Integer; const S: string; AObject: TObject);
Тізімге S жолын және Index индекспен AObject объектісін қояды. procedure LoadFromFile(const FileName: string); virtual;
FileName аты бар файлдан тізімді іске қосады.
procedure Move(CurIndex, NewIndex:Integer); virtual;
Тізімнің элементін CurIndex позициясынан NewIndex позициясына жылжытады.
procedure SaveToFile(const FileName: string); virtual;
тізімді FileName аты бар файлға орналастырады.
Button батырмасы
Иерархиясы:
TObject – TPersistent – TComponent – TControl – TWinControl –
TButtonControl.
Құрауыштар Паоитрасының Парағы: Standard.
Батырманың негізгі тағайындалуы – оған шерткенде оқиғаның қалыптасуы. Батырма оған шерткенде қандай да бір әрекетті орындайтындай қажеттілік туатын пішіннің кез – келген жерінде орналасуы мүмкін. Button батырмасы TButton класының данасы болып табылады, олардың арғы тектері болып TButtonControl және TwinControl кластары табылады. Сондықтан Button батырмасы терезелік басқару элементі болып табылады.
TButton класына келесі қасиеттер қосылған:
property Cancel: Boolean;
Егер қасиеттің мәні True – ге тең болса, онда ESC пернесіне басу, берілген батырмаға басумен мәндес болады.
property Default: Boolean;
Егер қасиеттің мәні True – ге тең болса, онда Enter пернесіне басу, берілген батырмаға басумен мәндес болады, егерде енгізу фокусында қандай да бір басқа батырма орналаспаса.
property ModalResult: TModalResult;
type
TModalResult = Low(Integer)..High(Integer);
Модальды терезелерді жапқанда қолданылатын қасиет. Қарапайым терезелер үшін бұл қасиеттің мәні mrNone – ге тең болуы керек..
TButton класында Click әдісі анықталған:
procedure Click; override;
Бұл әдістің орныдалуы батырмаға шерткенге мәндес келеді, яғни оның орындалуының нәтижесінде батырма үшін OnClick оқиғасы өрбиді.
TButton класының батырмаларының ерекшеліктері оларда Color қасиеті болмайды және фонның түсі Windows операциялық жүйесі арқылы анықталады.
TButton класының батырмалары терезелік басқару элементтері үшін анықталған оқиғаларды өңдейді. Үнсіздік белгісі бойынша батырма үшін оқиға болып OnClick оқиғасы табылады.
Мысал 3.1.1. Label, Edit, Memo және Button құрауыштарын қолдану.
Ағымды коэффициенттері бар () квадрат теңдеудің түбірлерін есептейтін бағдарлама құру
Шешімі:
Меншік қаптамаңызға (№1 – ші практикалық жұмысқа қараңыздар) MyFirstProject қаптамасын құрыңыздар (кез – келген басқаны да құруға болады).
Негізгі менюдің File | New | Application командасы арқылы жаңа қосымша ашыңыздар.
Form1 пішініне келесі құрауыштарды орналастырыңыздар (3.1.1 суретіне қараңыздар):
Label тамғасының Caption қасиетіне мына мәнді беріңіздер:
«Введите коэффициенты квадратного уравнения
A2*X^2+A1*X+A0=0»
Мәтін екі жолға орналасу үшін және тамғаның ортасы бойынша теңестірілуі үшін қасиеттің келесі мәндерін қажетті түрде орнату керек:
AutoSize – False,
WordWrap – True,
Alignment – taCenter.
Тамғаның өлшемін және оның орналасу жағдайын қолмен ұйымдастыруға болады.
Font қасиетіне келіңіздер және үш нүктесі бар батырмаға шертіңіздер. Пайда болған терезеден қаріптің өлшемін 8 – ден 10 – ға өзгертіңіздер. OK батырмасына басыңыздар .
Label2, Label3 және Label4 тамғалары үшін Caption қасиетіне ‘A0=’, ‘A1=’ және ‘A2=’ - ге тең деп сәйкес орнатыңыздар.
Edit1, Edit2 және Edit3 қасиеттері үшін Text қасиетінің мәнін бос жолға тең деп орнатыңыз.
Memo1 құрауышы үшін Lines қасиетін таңдаңыздар және үш нүктесі бар батырмаға басыңыздар. Пайда болған String List Editor терезесінен ‘Memo1’ жолын жойыңыздар. OK батырмасына басыңыздар.
Button1 және Button2 батырмаларының Caption қасиетіне ‘Решение’ және ‘Очистить’ сәйкес орнатыңыздар.
Екі рет шерту арқылы Решение батырмасын белсенді етіңіз және OnClick оқиға өңдеуішіне келесі жолды қойыңыздар:
procedure TForm1.Button1Click(Sender: TObject);
var
a0, a1, a2, d, x1, x2: Double;
begin
a0 := StrToFloat(Edit1.Text);
a1 := StrToFloat(Edit2.Text);
a2 := StrToFloat(Edit3.Text);
d :=a1*a1-4*a2*a0;
IF d>=0 THEN
BEGIN
x1 := (-a1+sqrt(d))/(2*a2);
x2 := (-a1-sqrt(d))/(2*a2);
Memo1.Lines.Add(’Результат:’);
Memo1.Lines.Add(’x1 = ’+FloatToStrF(x1,ffGeneral,7,2));
Memo1.Lines.Add(’x2 = ’+FloatToStrF(x2,ffGeneral,7,2));
END;
IF d<0 THEN
Memo1.Lines.Add(’Решений нет:’);
end;
Бағдарламаушы терген жолдар жартылай қою қаріппен ерекшеленген.
F12 пернесіне басыңыздар және пішінге қайтып оралыңыздар. Екі рет шерту арқылы Очистить батырмасын белсенді етіңіз және OnClick оқиға өңдеуішіне мына жолды қойыңыздар
Memo1.Clear;
Жобаны C:\…\Мои документы\…\ MyFirstProject қаптамасына сақтаңыздар және F9 функциональды пернесін қолданып қосымшаны іске қосыңыз. Квадрат теңдеуді шешу үшін коэффиценттерді енгізіңіз және Решение батырмасына басыңыз. Редактірлеу терезесін тазалау үшін Очистить батырмасына басыңыздар (сурет 3.1.2 қараңыздар).
0>
Достарыңызбен бөлісу: |