ЛАБОРАТОРЛЫҚ ЖҰМЫСТАР

ЛАБОРАТОРЛЫҚ ЖҰМЫСТАР

Лабораторлық жұмыс №1

Delphi тілінің негізгі компоненттері

 

Мақсаты: Delphi7 программалау ортасынмен және программалаудың негізгі түсініктерімен танысу, компоненттердің қасиеттері мен оқиғаларын басқаруды үйрену.

 

Қарапайым программаларды құру

 

І. Терезе тақырыбы және фондық түсі бар қарапайым Windows-қосымшасын жасау 

  1. Delphi7 программалау ортасын іске қосыңыз: Пуск/Программы/Borland Delphi7/ Delphi7
  2. Форма терезесінің тақырыбын өзгерту керек: Form1-ден Привет сөзіне. Объектілер инспекторы (Object Inspector) терезесінің Properties (қасиет) бөлімінде Caption қасиеті үшін Привет сөзін енгізіңіз.
  3. Форма түсін өзгерту үшін объектілер инспекторы терезесінде Color қасиетінің мәнін clAqua деп өзгертіңіз.
  4. Қосымшаны орындаңыз: Run мәзірінен Run командасын орындаңыз немесе F9 батырмасын басыңыз.
  5. Ашылған қосымша терезесінің өлшемін өзгертіп  көріңіз.
  6. Орап қою, бастапқы қалпына келтіру батырмаларымен жұмыс істеңіз.
  7. Қосымша терезесін жабыңыз.
  8. Форма мен проектіні дискіде сақтаңыз: File/Save All командасын орындаңыз да өзіңіздің бумаңызда Progpas және  Prog1.dpr.

 

 
  

ІІ. «Моя первая программа!» мәтіні және мәтін шрифтінің өлшемі мен мәтіннің орналасуын өзгертетін батырмалары бар Windows қосымшасын жасау.

  1. Формаға «Standard» беттінен Label объектісін орналастырыңыз.
  2. Label1 объектісін форманың қажетті жеріне жылжытыңыз.
  3. Label1:объектісінің қасиетін өзгертіңіз. Object Inspector терезесінде объект қасиеттері үшін келесі мәндерді орнатыңыз:
ОбъектСвойствоЗначение
Label1CaptionМоя первая программа!
Font12 p., қызыл
AlignmenttaCenter
Colorсары (Yellow)
AutoSizeFalse

12.           Программаны орындаңыз:Run/Run немесе F9.

  1. Форма мен проектіні сақтаңыз.
  2. Form1 терезесіне Button (командалық батырма) объектісін орнатып, оның өлшемін өзгертіңіз.
  3. Button1 объектісінің Caption қасиеті үшін»Увеличение» мәнін енгізіңіз.
  4. Button1 объектісінің Click оқиғасы үшін программалық код тжазыңыз:

Формадағы Button1 объектісін екі рет шертіп, программалық код терезесінде Begin және End сөздерінің арасына келесі кодты жазыңыз:

Label1.Font.Size :=  Label1.Font.Size+2;

  1. Программаны орындаңыз. «Увеличение» батырмасын басқанда мәтін қандай өзгеріске ұшырайтынына назар аударыңыз.
  2. Форма мен проектіні дискіде сақтаңыз: File/
  3. Мәтіннің шрифтін кішірейтетін «командалық батырма» объектісін жасаңыз.
  4. Мәтінді жылжыту үшін «командалық батырма» объектісін жасаңыз:

Label1.Left:=Label1.Left+10;

Label1.Top :=Label1.Top +10;

  1. Мәтінді жасыру үшін «командалық батырма» объектісін жасаңыз:visible:=false;
  2. Программаны жабу үшін «командалық батырма» объектісін жасаңыз: Close;
  3. Форма мен проектіні дискіде сақтаңыз.

 

Бақылау тапсырмалары

  1. Мәтін түсін қызыл, көк, жасыл түстерге циклді түрде өзгертетін батырманы формаға қосыңыз.
  2. Формаға Edit өрісін қосыңыз. Өріске сан енгізілгенде мәтін осы санға сәйкес жылжуы керек:

Label1.Left:=Label1.Left+StrToInt(Edit1.Text);

Label1.Top:=Label1.Top+StrToInt(Edit1.Text);

  1. Мәтінді вертикаль және горизонталь бойынша жылжытуға мүмкіндік беретін екі батырма жасаңыз.

 

ІІІ. Түс атауы бар радио-батырманы басқанда бағдаршамда сәйкес түс жанатын Windows-қосымшасын жасау. 

  1. Жаңа қосымша құрыңыз: File/New/Application.
  2. Формаға Label, Panel, GroupBox, RadioButton (Standard бетінен) орналастырыңыз.
  3. Объектілер инстпекторын пайдаланып олардың келесі қасиеттерін орнатыңыз:
ОбъектҚасиетіМәні
Label1CaptionСветофор
Panel1CaptionСтойте
Panel2CaptionГотовьтесь
Panel3CaptionИдите
GroupBox1CaptionЦвет
RadioButton1CaptionКрасный
RadioButton2CaptionЖелтый
RadioButton3CaptionЗеленый
  1. RadioButton1 объектісінің Click (щелчок мыши) оқиғасын өңдеу процедурасы үшін келесі кодты жазыңыз:

 

 

 

 

 

 

 

 

 

 

 

 

procedure TForm1.RadioButton1Click(Sender:TObject);

begin

Panel1.Color:=clRed;

Panel2.Color:=clWhite;

Panel3.Color:=clWhite;

 
  

end;

  1. RadioButton2Click және TForm1.RadioButton3Click процедуралары үшін өздерін код жазыңыз.
  2. Өлшемі 12п, сызылуы қалың (fsBold), түсі ақ (clwhite) болатын «Стойте», «Внимание», «Идите» сөздерінің жазылуын қосыңыз.

 

Бақылау тапсырмалары

  1. Панельдердің қасиеттерін форма ашылғанда көрінбейтін етіп өзгертіңіз. Ал жазулар жанған кезде олар көрінуі керек.

 

 

ПРАКТИКАЛЫҚ ЖҰМЫС №2

 

«Формада объект басқаруды құру және бұл объектілердің қасиет мәндерін орнату.

 

  1. Жаңа проект құрыңыз.
  2. Формаға суретте көрсетілген компоненттерді орналастырыңыз.
 
  
  1. Программа кодын және проектіні Unit2.pas и Pr2.dpr деген тапен сақтаңыз.

 

  1. Келесі әрекеттерді орында:
ОбъектObject Inspector терезесінің бөліміҚасиет/ ОқиғаМәні/Әрекет
Form1PropertiesCaptionДиалог
BitBtn1PropertiesCaption&Выход
KindbkClose
Label1PropertiesCaptionВведи свое имя и нажми Enter
Edit1EventsOnKeyPressIf key=#13 then

begin

Label2.Caption:=Edit1.Text+’,ты любишь читать?’;

End;

Button1PropertiesCaptionДа
EventsOnClickLabel3.Caption:=’Молодец!’;
Button2PropertiesCaptionНет
EventsOnClickLabel3.Caption:=’Почему же? Надо читать.’;
Label2PropertiesCaptionОбъект атауын өшіріңіз
Label3PropertiesCaptionОбъект атауын өшіріңіз
 
  
  1. Проектіні сақтап, орындаңыз (F9).

 

Өздік жұмыс

ТапсырмаКөмек
1Да және Нет батырмаларын адам атын енгізгеннен кейін белсенді болатындай етіп өзгертіңіз.Да және Нет батырмаларының Enabled қасиеті үшін False мәнің орнатыңыз.

Edit1KeyPress процедурасын келесі жолдармен толықтырыңыз:

Button1.Enabled:=true;

Button2.Enabled:=true;

2Сұхбатты қайалау үшін Edit1, Label2, Label3 атауларын өшірілетін болсын.Формаға BitBtn компонентін орналастырып, оның қасиеттерін өзгертіңіз: Kind-bkRetry, Caption-&Повторить.

Басу оқиғасына келесі кодты жазыңыз:

Label2.Caption:=’ ’;

Label3.Caption:=’ ’;

Edit1.Text:=’ ’;

3Сұхбатты қайталау кезінде енгізу жолы белсенді болсын.BitBtn2Click оқиғасына келесі кодты епгізіңіз:

Form1.ActiveControl:=Edit1;

 

2 программа листингі

var

Form1: TForm1;

implementation

{$R *.DFM}

 

procedure  TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

If key=#13 then begin

Label2.Caption:=Edit1.Text+’, ты любишь читать?’;

Button1.Enabled:=true;

Button2.Enabled:=true;

end;

end;

 

procedure  TForm1.Button1Click(Sender: TObject);

begin

Label3.Caption:=’Молодец !’;

end;

 

procedure  TForm1.Button2Click(Sender: TObject);

begin

Label3.Caption:=’Почему же? Надо читать.’;

end;

 

procedure  TForm1.BitBtn2Click(Sender: TObject);

begin

Edit1.Text:=»;

Label2.Caption:=»;

Label3.Caption:=»;

Button1.Enabled:=false;

Button2.Enabled:=false;

Form1.ActiveControl:=Edit1;

end;

end.

 

 

ПРАКТИКАЛЫҚ ЖҰМЫС №3

 

Сіздің салмағыңыз жобасы

 

Мақсаты:

Айнымалылар типін қолдану – бүтін және нақты (integer және real);

Жолдық деректерді сандарға және сандарды жолдық қатарларға ауыстыру үшін StrToInt; StrToFloat, IntToStr FloatToStr ; Format() функцияларын қолдану;

Хабарламаны жеке терезеде шығару үшін ShowMessage процедурасын пайдалану.

 

Тапсырма

Адамның оптимальді салмағы есептеу үшін адам бойынан 100 алып тастау керек. Егер адамның нақты салмағы оптимальді салмақтан үлкен болса онда адам толық, егер кем болса арық болып саналады.

  1. Жаңа проект құрыңыз
 
  
  1. Формаға суретте көрсетілген компоненттерді орналастырыңыз.

 

Edit1 – салмақ, Edit2-ге – бойының ұзындығы (см) енгізіледі .

  1. Программа кодын және проектіні Unit2.pas и Pr3.dpr деген тапен сақтаңыз.
  2. Программа коды терезесінің VAR бөліміне нақты салмақты (faktW), оптимальді салмақты (optW), бойының мәнін (Rost) және оптимальді салмақ пен нақты салмақ айырмасын (Delta) сақтайтын айнымалыларды енгізіңіз. VAR factW, optW, Rost, Delta : integer;
  3. Button1 батырмасын шерту процедурасына келесі кодты жазыңыз:
ОбъектObject Inspector терезесінің бөліміҚасиет/ОқиғаМәні/Әрекет
ButtonEventsOnClickfactW := StrToInt(Edit1.text);

Rost := StrToInt(Edit2.Text);

OptW :=Rost — 100;

Delta := abs(factW — OptW);

if OptW = factW then

Label3.caption := ‘Ваш вес идеален!’

else

if OptW > factW then

Label3.caption := ‘Вам надо поправиться на ‘+IntToStr(Delta)+’ кг.’

else

Label3.caption := ‘Вам надо похудеть на ‘+IntToStr(Delta)+’ кг.’

Түсініктеме:

StrToInt функциясы жолды бүтін санға аударады, IntToStr функциясы керісінше – бүтін санды жолға ауыстырады.

  1. Программаға кез келген ондық сандар енгізу үшін айнымалылардың типін нақты типке — Real өзгертеміз: VAR factW, optW, Rost, Delta : real;

Жолды  нақты типке және нақты сандарды жолға ауыстыру үшін FloatToStr және StrToFloat функциялары қолданылады. Button1 компонентінің OnClick оқиғасына сәйкес өзгертулер енгізіңіз.

  1. Проектіні сақтап, орындаңыз.

Өздік жұмыс

ТапсырмаКөмек
1Нақты сандарды форматтау және ауыстыру үшін FloatToStr() функциясының орнына Format(‘ %f ’,[айнымалы]) функциясын қолданыңыз. Мысалы, Format(‘%f ‘, [Delta]) 
2Форматтау және ауыстыру үшін  Format  функциясын келесі түрде қолданыңыз: Format(‘Строка %f’,[айнымалы]).

Мысалы, Format(‘Вам надо похудеть %f’,[Delta]) .

 
3Жобаны жақсарыңыз:

Программа тақырыбын жазыңыз;

Шығарылатын хабар мәтінінің қарпін (шрифт) өзгертіңіз (түсін, өлшемін);

Программадан шығу батырмасын қойыңыз;

Программаны қайта орындау жағдайын жасаңыз (Сұхбат жобасын қараңыз).

 
4Салмақ және бойының ұзындығы мәні ретінде теріс сан қабылданбайтын етіп өзгертіңіз.ShowMessage(‘Ошибочная запись числа: ‘ + Edit1.Text);
  1. Массаны есептеу үшін дене массасының индексі қолданыңыз.

Салмақ – X,

Бойының ұзындығы – Y (метр).

Дене массасының индексі – A, мұндағы A = X / Y2 (кг/м2)

Нәтиже келесі кесте бойынша анықталады:

Индекс мәніНәтиже (экранға шығарылатын хабар)
1A<18Большой недовес
218<=A<20Маловато и небезопасно, можно получить истощение
320<=A<=25Идеально
426<A<=30Легкий недобор
530<AСрочно нужно худеть

 

 

3 программа листингі

 

unit Unit 5 ;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons;

type

TForm1 = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Button1: TButton;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

procedure  Button1Click(Sender: TObject);

procedure  BitBtn2Click(Sender: TObject);

procedure  Edit2Click(Sender: TObject);

procedure  Edit1KeyPress(Sender: TObject; var Key: Char);

procedure  Edit2KeyPress(Sender: TObject; var Key: Char);

 

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

procedure  TForm1.Button1Click(Sender: TObject);

VAR

x,y,k : real;

begin

x:=StrToFloat(Edit1.Text);

y:=StrToFloat(Edit2.Text);

y:= S qr(y/100);

k:=x/y;

if k<18 then   Label3.caption := ‘Большой недовес’

else

if (k>=18)and (k<20)then Label3.caption := ‘Маловато и небезопасно, можно получить истощение’

else

if (k>=20)and(k<=25)then Label3.caption := ‘Идеально’

else

if (k>25)and(k<=30) then Label3.caption := ‘Легкий перебор’

else

if k>30 then Label3.caption := ‘Срочно нужно худеть’;

end;

 

 

procedure  TForm1.BitBtn2Click(Sender: TObject);

begin

Label3.Caption := »;

Edit1.Text := »;

Edit2.Text := »;

Form1.ActiveControl := Edit1;

Button1.Enabled := false;

Label2.Visible := false;

Edit2.Visible := false;

 

end;

 

procedure  TForm1.Edit2Click(Sender: TObject);

begin

if Edit1.Text = » then else

Button1.Enabled := true;

end;

 

procedure  TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

VAR x:real;

begin

if key=#13 then

begin

try

x:=StrToFloat(Edit1.Text);

except

ShowMessage(‘Ошибочная запись числа: ‘ + Edit1.Text);

Edit1.SetFocus;

Exit;

end;

Label2.Visible:=true;

Edit2.Visible:=true;

Form1.ActiveControl := Edit2;

end;

end;

 

procedure  TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);

VAR y:real;

begin

if key=#13 then

begin

try

y:=StrToFloat(Edit2.Text);

except

ShowMessage(‘Ошибочная запись числа: ‘ + Edit2.Text);

Edit2.SetFocus;

Exit;

end;

Button1.Enabled:=true;

end;

end;

 

end.

 

 

 

ПРАКТИКАЛЫҚ ЖҰМЫС №4

 

RGB ФОРМАТЫНДАҒЫ ТҮСТЕР жобасы

 

Мақсаты:

 
  

ScrollBar, Panel компоненттерімен таныстыру. Түс құраушыларының мәндердің ауыстыру үшін TColorRef функциясын қолдану.

Программаны құру жоспары:

  1. Жаңа проект құрыңыз.
  2. Суретте көрсетілген компоненттерді формаға орналастырыңыз.
  3. ScrollBar айналдыру жолағы горизонтальді (үнсіз келісім бойынша) және вертикальді бола алады. Оның түрі Kind қасиетімен анықталады. Осы программада вертикальді айналдыру жолағы қолданылады.
  4. Программа коды және проектіні сақтаңыз: Unit3.pas и Pr3.dpr.
  5. Келесі әрекеттерді орындаңыз:
ОбъектObject Inspector терезесінің бөліміҚасиеті/ ОқиғасыМәні/Әрекеті
ScrollBar1PropertiesNameАйналдыру жолағының атын RedBar деп өзгертіңіз.
Max255 – RGB градацияларының саны
Position122 — бастапқы мәні

Жоғарыдағы әдіспен ScrollBar2 және ScrollBar3 мәндерін орнатып, компоненттердің атын GreenBar және BlueBar деп өзгертіңіз.

  1. Формадағы барлық Label компоненттері үшін Caption қасиетінің мәнін ‘ ‘ деп өзгертіңіз.
  2. Келесі әрекеттерді орындаңыз:
ОбъектObject Inspector терезесінің бөліміҚасиеті/ ОқиғасыМәні/Әрекеті
RedBarEventsOnChangePanel1.Color:=TColorRef(RGB(RedBar.Position,0,0));

Label1.Caption:=IntToStr(RedBar.Position);

Panel4.Color:=TColorRef(RGB(RedBar.Position, Greenbar.Position, BlueBar.Position));

Жоғарыдағы әдіспен ScrollBar2 және ScrollBar3 үшін OnChange оқиғасын мәнін жазыңыз, бірақ  RGB и IntToStr.

Түсініктеме:

ScrollBar1 жолағы жылжығанда, Panel1 түсі өзгеріп, түстің сандық мәнін Label компоненті көрсетеді. Сонымен қатар Panel4 компонентінің түсі  де өзгереді.

  1. Проектіні сақтап, орындаңыз.

 

 

Өздік жұмыс

ТапсырмаКөмек
1Программа орындалғанда панельдер бастапқы түстерге боялып тұруы керек.Форманы құру оқиғасына (Form1 үшін OnCreate оқиғасы) ScrollBar1, ScrollBar2, ScrollBar3 компоненттерінің позициясын өндеу кодын жазыңыз.

 

4 программа коды

 

unit Unit6;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, ExtCtrls, Buttons;

 

type

TForm1 = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

Panel3: TPanel;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Panel4: TPanel;

RedBar: TScrollBar;

GreenBar: TScrollBar;

BlueBar: TScrollBar;

BitBtn1: TBitBtn;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

procedure  RedBarChange(Sender: TObject);

procedure  GreenBarChange(Sender: TObject);

procedure  BlueBarChange(Sender: TObject);

procedure  FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

 

implementation

 

{$R *.DFM}

 

procedure  TForm1.RedBarChange(Sender: TObject);

begin

Panel1.Color:=RGB(RedBar.Position,0,0);

Label1.Caption:=IntToStr(RedBar.Position);

Label4.Caption:=Format(‘0x%x’,[RedBar.Position]);

Panel4.Color:=RGB(RedBar.Position,GreenBar.Position,BlueBar.Position);

end;

 

procedure  TForm1.GreenBarChange(Sender: TObject);

begin

Panel2.Color:=RGB(0,GreenBar.Position,0);

Label2.Caption:=IntToStr(GreenBar.Position);

Label5.Caption:=Format(‘0x%x’,[GreenBar.Position]);

Panel4.Color:=RGB(RedBar.Position,GreenBar.Position,BlueBar.Position);

end;

 

procedure  TForm1.BlueBarChange(Sender: TObject);

begin

Panel3.Color:=RGB(0,0,BlueBar.Position);

Label3.Caption:=IntToStr(BlueBar.Position);

Label6.Caption:=Format(‘0x%x’,[BlueBar.Position]);

Panel4.Color:=RGB(RedBar.Position,GreenBar.Position,BlueBar.Position);

end;

 

procedure  TForm1.FormCreate(Sender: TObject);

begin

Label4.Caption:=Format(‘0x%x’,[RedBar.Position]);

Label5.Caption:=Format(‘0x%x’,[GreenBar.Position]);

Label6.Caption:=Format(‘0x%x’,[BlueBar.Position]);

Panel1.Color:=RGB(RedBar.Position,0,0);

Label1.Caption:=IntToStr(RedBar.Position);

Panel2.Color:=RGB(0,GreenBar.Position,0);

Label2.Caption:=IntToStr(GreenBar.Position);

Panel3.Color:=RGB(0,0,BlueBar.Position);

Label3.Caption:=IntToStr(BlueBar.Position);

Panel4.Color:=RGB(RedBar.Position,GreenBar.Position,BlueBar.Position);

end;

 

end.

 

 

 

Лабораторлық жұмыс № 5