Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Then begin 1 page





if st[1]='-' then Delete(st,1,1)

else st:='-'+st;

Text:=st;

end;

if not (Key in ['0'..'9',#8]) then Key:=#0;

if Key=#8 then if Length(st)<2 then Key:=#0;

end;

end;

  • бөлінді мен бөлгіштің өзгеруі

Edit1.OnChange: a.p:= StrToInt (Edit1.Text);
Edit2.OnChange: a.q:= StrToInt (Edit2.Text);
Edit4.OnChange: b.p:= StrToInt (Edit4.Text);
Edit5.OnChange: b.q:= StrToInt (Edit5.Text);

  • бөлшектің мәнінің өзгеруі (<ENTER> батырмасын басқанда)

Edit3.OnKeyPress: if Key=#13 then
a.Value:= StrToFloat (edit3.Text);
Edit6.OnKeyPress
: if Key=#13 then
b.Value:= StrToFloat (edit6.Text);

  • "Обмен" батырмасының басылуы

Button1.OnClick: a.Swap;

  • "+" батырмасын басу

Button2.OnClick: a.Add(b);

  • бірінші бөлшектің "INFO" батырмасының үстінен тышқанды жылжыту

Button3.OnMouseMove: Button3.Hint:=a.info;

  • екінші бөлшектің "INFO" батырмасының үстінен тышқанды жылжыту

Button4.OnMouseMove: Button4.Hint:=b.info;

Өз бетінше орындауға тапсырма

берілген (TDrob) класына қосу керек:

Қасиеттер:

Simple, қарапайымдылық (числитель меньше знаменателя), оқуға;

Changable, өзгертуге рұқсат етіледі, оқу мен жазуға арналған.

Әдістер:

процедуралар: басқа бөлшекпен" " (Sub), " * " (Mult), " / " (Div) амалдары; басқа бөлшектің ақпараттық өрістерінің көшірмесін жасайтын - Assign (d: TDrob) процедурасы;

Compare (d: TDrob) функциясы, ағымды бөлшекті басқа бөлшекпен салыстырады (Self=d, Self>d, Self<d жағдайлары үшін сәйкес нәтиже 0, +1, –1).

Оқиға:

OnChanging (бөлшек өзгереді), өңдеу – процедурасының интерфейсіде (аналогия бойынша с var Accept: Boolean OnDragOver оқиғасы үшін) буль айнымалысы орналасады, ол жаңа мәннің корректілігін анықтайды: (үнсіздік TRUE, FALSE жағдайында алдыңғы мән қайта қалпына келеді). Берілген мүмкіншілкті қолдана отырып бір бөлшекке модульі бойынша 100-ден аспайтын мән қабылдауға, ал екіншісіне жұп бөлгіш қабылдауға рұқсат етілмейді.


3 ТЕРЕЗЕЛІК ҚОСЫМШАЛАРДЫ ҚҰРУ

3.1 Label, Edit, Memo мәтіндік құрауыштары. Button батырмасы

Label тамғасы

Иерархиясы:

TObjectTPersistentTComponentTControl – 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 енгізу жолы

Иерархиясы:

TObjectTPersistentTComponentTControl – TWinControl –

TCustomMaskEdit – TCustomEdit.

Құрауыштар Палитрасының Парағы: Standard.

TEdit класының данасы болып табылатын енгізу жолы Edit мәтіннің бір жолын енгізуге және редактірлеуге мүмкіндік береді.

TEdit класы – TCustomEdit класының тікелей ұрпақ классы және оның барлық сипаттамаларын туындайды.

Енгізу жолының негізгі қасиеті болып Text қасиеті табылады:

property Text: TCaption;

Type

TCaption = string;

Edit редактіріндегі символдық жолдан тұрады.

Символдық жол қасиетке пішінді құрастыру кезеңінде немесе бағдарламаның орындалуы барысында орналастырылуы мүмкін. Көбінде редактір ақпаратты енгізу үшін қолданылады. Бұл жағдайда пішінді құрастыру кезеңінде Text қасиетіне бос жолды орналастыруға болады, ал бағдарламаның орындалуы барысында одан енгізілген мәндерді алуға болады. Егер сандық берілгендердің символдық белгілері енгізілсе, онда алдыңғы уақытта типті түрлендіретін сәйкес бағыныңқы бағдарламаның көмегімен түрленуі қажет (Б қосымшасына қараңыздар).


Енгізу жолы терезелік басқару элементі болып табылғандықтан, ол пернетақта мен тышқан арқылы берілген хабарламаны, тасымалмен байланысты, активтеу мен активтеуді болдырмау, сонымен қатар OnChange оқиғасын өңдейді:

property OnChange: TNotifyEvent;

Енгізу жолының мәтіні өзгергенде өрбиді. Үнсіздік бойынша TEdit класының енгізу жолының оқиғасы болып табылады.

Memo мәтіндік редактірі

Иерархиясы:

TObjectTPersistentTComponentTControl – 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 класы

TStringsTPersistent класының тікелей ұрпақ класы абстрактілі класс болып табылады. Бұл кластың объектілері жолдар тізімін береді. Әрбір жолмен қандай да бір объект байланысқан болуы мүмкін, мысалы сурет немесе пиктограмма. Егер жолмен ешқандай объект байланыспаған болса, онда оған нұсқағыштың мәні 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 батырмасы

Иерархиясы:

TObjectTPersistentTComponentTControl – 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. Меншік қаптамаңызға (№1 – ші зертханалық жұмысқа қараңыздар) MyFirstProject қаптамасын құрыңыздар (кез – келген басқаны да құруға болады).

2. Негізгі менюдің File | New | Application командасы арқылы жаңа қосымша ашыңыздар.

3. Form1 пішініне келесі құрауыштарды орналастырыңыздар (3.1.1 суретіне қараңыздар):

4. Label тамғасының Caption қасиетіне мына мәнді беріңіздер:
«Введите коэффициенты квадратного уравнения
A2*X^2+A1*X+A0=0»
Мәтін екі жолға орналасу үшін және тамғаның ортасы бойынша теңестірілуі үшін қасиеттің келесі мәндерін қажетті түрде орнату керек:
AutoSize – False,
WordWrap – True,
Alignment – taCenter.
Тамғаның өлшемін және оның орналасу жағдайын қолмен ұйымдастыруға болады.
Font қасиетіне келіңіздер және үш нүктесі бар батырмаға шертіңіздер. Пайда болған терезеден қаріптің өлшемін 8 – ден 10 – ға өзгертіңіздер. OK батырмасына басыңыздар.

5. Label2, Label3 және Label4 тамғалары үшін Caption қасиетіне ‘A0=’, ‘A1=’ және ‘A2=’ - ге тең деп сәйкес орнатыңыздар.

6. Edit1, Edit2 және Edit3 қасиеттері үшін Text қасиетінің мәнін бос жолға тең деп орнатыңыз.

7. Memo1 құрауышы үшін Lines қасиетін таңдаңыздар және үш нүктесі бар батырмаға басыңыздар. Пайда болған String List Editor терезесінен ‘Memo1’ жолын жойыңыздар. OK батырмасына басыңыздар.

8. Button1 және Button2 батырмаларының Caption қасиетіне ‘Решение’ және ‘Очистить’ сәйкес орнатыңыздар.

9. Екі рет шерту арқылы Решение батырмасын белсенді етіңіз және 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;

Бағдарламаушы терген жолдар жартылай қою қаріппен ерекшеленген.

10. F12 пернесіне басыңыздар және пішінге қайтып оралыңыздар. Екі рет шерту арқылы Очистить батырмасын белсенді етіңіз жәнеOnClick оқиға өңдеуішіне мына жолды қойыңыздар

Memo1.Clear;

11. Жобаны C:\…\Мои документы\…\ MyFirstProject қаптамасына сақтаңыздар және F9 функциональды пернесін қолданып қосымшаны іске қосыңыз. Квадрат теңдеуді шешу үшін коэффиценттерді енгізіңіз және Решение батырмасына басыңыз. Редактірлеу терезесін тазалау үшін Очистить батырмасына басыңыздар (сурет 3.1.2 қараңыздар).

Зертханалық жұмыс №7 " Қарапайым Windows-қосымшасын құру "

1. «Моя первая программа» атты тақырыбы бар пішіннің терезесін экранда бейнелейтін бағдарлама құрыңыздар. Қосымшаны іске қосыңыз.

2. Бағдарлама өзгертулер енгізіңіздер. Тамғаны пайдалана отырып, терезенің тура ортасына «Hello world!» мәтінін шығарыңыздар. Қаріптің түсін, өлшемін өзгертіңіздер. Қосымшаны іске қосыңыздар.

3. сәйкес келетін командалық батырманы басқанда «Hello world!» сөзінің үстіне «Я программирую на Delphi» сөзі шығатындай етіп бағдарламаны өзгертіңіздер. Мәтінді шығару үшін Edit құрауышын қолданыңыздар.

Property Visible:Boolean бастапқыда құрауыш көрінетін бола ма? соны анықтайды.

4. Құрауыштар ағымды көмекші кеңес тұратындай етіп бағдарламаны толықтырыңыздар.

Property Hint: String – элементтер туралы қысқаша анықтама ақпараттан тұрады. Property ShowHint: Boolean – егер мәні True болса, онда меңзер элементтің үстінде тұрғанда Hint қасиетінде берілген қысқаша анықтамадан тұрады.

5. Екі айнымалы жарияланғаннан кейін оларға қандай да бір мәндер меншіктелетіндей бағдарлама құрыңыздар. Осы мәндерді көбейтіңіздер және алынған нәтижені экранда бейнелеңіздер. Бүтін санды мәнді жолға айналдыратын функцияны қолданыңыздар.







Date: 2015-07-01; view: 793; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.077 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию