Главная страница
Навигация по странице:

  • Writeln(f, )

  • 2.3 ЛАБОРАТОРИЯЛЫҚ САБАҚТАРДЫҢ ЖОСПАРЫ Лабораториялық жұмыс № 1. Қосымшаның интерфейсін құру.

  • Лабораториялық жұмыс № 2. Қосымшада мәндер диапозонын қолдану. Модальді формалар.

  • УМК ВП. казПОС. Пніні Оу программасы syllabus оытушы жнінде мліметтер


    Скачать 6.17 Mb.
    НазваниеПніні Оу программасы syllabus оытушы жнінде мліметтер
    АнкорУМК ВП. казПОС.doc
    Дата01.04.2018
    Размер6.17 Mb.
    Формат файлаdoc
    Имя файлаУМК ВП. казПОС.doc
    ТипДокументы
    #17493
    страница9 из 12
    1   ...   4   5   6   7   8   9   10   11   12

    Procedure TForm1.ButtonClick(Sender: TObject);

    var f: TextFile;

    begin

    AssignPrn(f); Rewrite(f); Writeln(f,); CloseFile(f);

    end;

    мұндағы AssignPm(f) - мәтіндік айнымалыны принтермен байланыстыру, Rewritetf) – мәтінді оқу, Writeln(f,) -программа мәтінін басып шығару (<атау - модуль атауы>) CloseFile(f) - мәтіндік файлды жабу операторлары



    2.31-сурет.Баспаны шығару.

    Негізгі әдебиеттер: 2[37-56], 12[15-35], 7[17-32]

    Бақылау сұрақтары:

    1. Блокты қорғау механизмі дегеніміз не? Оның программада жазылу түрі.

    2. N! мәнін есептеу программасын блокты корғау механизмін пайдаланып жазыңыз.

    3. Форманы және программаны принтерде басып шығу тәсілдері.



    2.3 ЛАБОРАТОРИЯЛЫҚ САБАҚТАРДЫҢ ЖОСПАРЫ
    Лабораториялық жұмыс № 1. Қосымшаның интерфейсін құру.

    Жұмыстың мақсаты: көпмәтіндік редактор мысалында интерфейсті құратын компоненталармен танысу.

    1 Негізгі бөлім

    DELPHI - Windows –қа арналған қосымшаларды жүктеу ортасы, сондықтан қосымшалар автоматты түрде формалар жүктеледі. Қосымшаларды орындау барысында орындаушы оған жаңа формалар, басқару элементтерін және оқиғаны орындау компоненттерін қоса алады. Интерфейсті құру барысында WYSIWYG (What You See Is What You Get – Что видите, то и получите) принципі қарастырылады және сондықтан қосымшаны жүктеу кезінде орындуашы оны орындалу кезігдегідей көреді.

    VCL компоненттерінің палитрасы – Delphi визуалды компоненттерінң кітапханасының бірнеше беттерінде бүкіл компоненттердің пиктограммалары жазылған.

    Интерфейсті құру кезінде әр компонент үшін келесі операциялар орындалады:

    • Палитрада компонентті таңдау және оны формаға орналастыру;

    • Объектер Инспекторы арқылы компоненталардың құрамын өзгерту.

    Компоненталар структуралық бірліктер болып табылады және олар визуальді және визыульді емес болып бөлінеді. Визуальді компоненттер қосымшалар интерфейсін құруының негізі. Олар: Label, StaticText, Panel, Edit, ListBox және басқалар. Аталғандардан бөлек Canvas (холст) құрылымын қолдануға болады.

    Барлық компоненталарда мәтін тексті, өлшемі, түсі Font құрылымымен анықталады және олар жұмыс орындау барысында орындаушымен өзгертіледі.
    2 Тапсырма және оларды орындау реті
    Қосымшаны құру және жұмыс істеу алгоритмі

    1. бастапқы формада көпмәтіндік текстілік редакторды құру;

    2. программаға бас менюді қосу;

    3. диалог терезесімен жұмыс істеу;

    4. шрифт опцияларын өзгерту кезінде екінші формаға көшу;

    5. шрифт опцияларынының өзгеруін қарастыру;

    6. бас формаға көшіп, өзгерістерді зерттеу;

    7. Лабораториялық жұмысты тапсыру үшін өзіндік жұмысты жасау;


    Орындау тәртібі
    2.1 Form1 жаңа формасынқұрыңыз. Standard вкладкасынан келесі компоненталарды формаға орналастырыңыз:

    - Memo1 көпмәтіндік редактор;

    - MainMenu1 бас менюі;

    2.2 Memo1 Align құрылымын өзгерту: alNone - alClient.
    F
    orm1 формасының түрі

    2.32- ші сурет
    2.3 File, Format – екі менюін құрыңыз.

    File меню пункттінде - – Open (Ашу), Save (Сақтау), Close (Жабу) үш опциясын қарастыру, Format меню пункттінде - Font ( Шрифт) опциясын қарастыру.

    Save опциясы үшін қарапайым мысал:

    memo1.Lines.SaveToFile (C:\lab1.txt);
    Open опциясы үшін

    memo1.Lines.LoadFrom File (C:\lab1.txt);
    Close опциясы үшін

    Form1.Close;
    2.4 Прогармманы орындалуға жіберіңіз. Текстті жазып, оны сақтаңыз және басқа опцияларды тексеріңіз.

    uses Unit2;

    {$R *.DFM}
    procedure TForm1.close1Click(Sender: TObject);

    var a: word;

    begin

    a:= Messagedlg('Save to file',mtConfirmation,[mbYes,mbNo],0);

    if a=mrYes then

    memo1.Lines.SaveToFile(inputBox('Сохранение файла', 'Введите имя файла',''));

    form1.close;

    end;
    procedure TForm1.save1Click(Sender: TObject);

    begin

    memo1.Lines.SaveToFile(inputBox('Сохранение файла', 'Введите имя файла',''));

    end;
    procedure TForm1.open1Click(Sender: TObject);

    begin

    memo1.lines.LoadFromFile(inputBox('Открыть файл','Введите имя файла',''))

    end;
    procedure TForm1.font1Click(Sender: TObject);

    begin

    form2.show;

    end;
    end.
    2.6 Қомысшаны орындалуға жіберіңіз.

    2
    .7 Form2 формасын құрыңыз, оған ComboBox1,Button1,GroupBox1, CheckBox1,CheckBox3, Samples – SpinEdit1 компоненттерін оранластырыңыз.

    2.33-ші сурет
    Объектер инспекторы арқылы компоненталарды суреттегідей орналастырыңыз.
    2.8 Format меню пунктін Font опциясымен құрыңыз.
    uses Unit1;
    {$R *.DFM}
    procedure TForm2.Button1Click(Sender: TObject);

    begin

    form1.memo1.font.size:= SpinEdit1.Value;

    if (CheckBox1.Checked=true) and (CheckBox2.Checked=false)

    and (CheckBox3.Checked=false)then

    form1.memo1.font.style:= [fsBold]

    else

    if (CheckBox1.Checked=true) and (CheckBox2.Checked=true)

    and (CheckBox3.Checked=false)then

    form1.memo1.font.style:= [fsBold, fsItalic]

    else

    if (CheckBox1.Checked=true) and (CheckBox2.Checked=true)

    and (CheckBox3.Checked=true)then

    form1.memo1.font.style:= [fsBold, fsItalic,fsUnderline]

    else

    if (CheckBox1.Checked=false) and (CheckBox2.Checked=true)

    and (CheckBox3.Checked=false)then

    form1.memo1.font.style:= [ fsItalic]

    else

    if (CheckBox1.Checked=false) and (CheckBox2.Checked=true)

    and (CheckBox3.Checked=true)then

    form1.memo1.font.style:= [ fsItalic,fsUnderline]

    else

    if (CheckBox1.Checked=false) and (CheckBox2.Checked=false)

    and (CheckBox3.Checked=true)then

    form1.memo1.font.style:= [fsUnderline]

    else

    if (CheckBox1.Checked=false) and (CheckBox2.Checked=false)

    and (CheckBox3.Checked=false)then

    form1.memo1.font.style:= [];

    form1.memo1.font.name:= comboBox1.Items[comboBox1.Itemindex];

    form2.close;

    end;
    procedure TForm2.FormCreate(Sender: TObject);

    var

    a:integer;

    begin

    for a:=0 to screen.fonts.count-1 do

    comboBox1.Items.add(screen.fonts[a]);

    comboBox1.Itemindex:=2;

    end;

    end.

    Қомысшаны орындалуға жіберіңіз және меню опцияларын тексеріңіз.
    Тапсырма:



    1. менюге өзгерістер беру және оған горячие клавишаларды орналастыру;

    2. қосымша интерфейсін өзгертіңіз, Dialogs беттерінен диалогты терезелерін арқысанда Палитра компоненттерін: OpenDialog, SaveDialog, FontDialogs жүктеу;

    Begin

    If OpenDialog1.Execute then

    Memo1.Lines.LoadFromFile (OpenDialog1.FileName);

    End;

    1. (AboutForm) формасында келесі қосымша ақпаратты орналастырыңыз:ол үшін менюге бір пункт қосыңыз, мысалы (Программа жайлы).


    Лабораториялық жұмыс № 2. Қосымшада мәндер диапозонын қолдану. Модальді формалар.

    Жұмыстың мақсаты: қолданушы интерфейсінің күрделі элементтерімен танысу.


    1. Негізгі бөлім


    Форма – Delphi-дің негізгі компоненті, мұнда орындалатын жұмыстың барлығы көрсетіледі және орындалады. Форма көптеген опциялар, құрылымдарға ие.
    Кесте 2.7

    Оқиға

    Мақсаты

    OnActivate

    Актикті форма

    OnClose

    Форма жабылуда

    OnCloseQuery

    Форманы жабуға сұраңыз

    OnCreate

    Форманы құру

    OnDeactivate

    Форма енгізу фокусын жоғалтты

    OnDestroy

    Форма жоюлуда

    OnHide

    Форма көрінбей қалды

    OnPaint

    Форма қайта салынуы керек

    OnShow

    Форма көрінеді


    Жаңа форма құру: NewForm (Новая форма) немесе File -> NewForm командасымен құрылады. Ол Form2 деп аталады.

    Программада тек бір дас форма бола алады және ол жүктеу кезінде көрінеді.

    Мысалы, ба формаға Button1 түмесін орналастырып, оны басу кезінде Form2 ашылуы керек.

    Procedure Form1.Button1Click(Sender: TObject);

    Begin

    Form2.Visible := true;

    End;

    Форманы модальді терезе негізігде көрсету: Form2 және бас форма арасында жүру еркін түрде жүргізіледі. Ол ыңғайсыз болып табылады.

    Комекші формалар диалогты терезелерді көрсету кезінде қолданылады және бір формамен жұмыс істеу кезінде басқа формаға өту мүмкін емес. Осы модальді терезе деп аталады. Форманы модальді терезе ретінде шақыру үшін ShowModal методын қолдану керек:

    Procedure Form1.Button1Click(Sender: TObject);

    Begin

    Form2.ShowModal;

    End;

    Модальді терезелерді қолданудың тәртіптері. Диалогты терезе өлшемді өзгертуге мүмкіндік бермеу керек. Ол үшін BorderStyle-де кез келген мән жазу керек. BorderWidth құрылымында басқару элеметтерін қою рұқсаттамасы қарастырылмаған.

    Модальді терезе дегеніміз жабылмай басқа терезеге көшей алмайтын терезені айтамыз.

    Delphi жүйесінде Scrollbar (Полоса прокрутки) и TrackBar (Шкала) компоненттерін қою қарастырылған. Олар форманы бегунок арқылы жүргізуге мүмкіндік береді.

    Scrollbar компоненті ақпаратты айналдыру үшін керек.

    TrackBar компоненті, көрсетілген диапозонда мәндерді өзгерті үшін керек.

    Бұл екі компонента бір-біріне ұқсас болып келеді. Екеуі үшін Min және Max Integer типті мәндері диапозон ретін көресте алады.
    2 Тапсырма және оларды орындау реті
    Графикалық компонениталардың түрін және түсін өзгерте алатын қосымша құру:

    • түс мәнін енгізу арқылы:қызыл, жасыл, көк;

    • бегунокьы үш шкалада орналастыру және оғын түс тағайындау.


    Орындау тәртібі
    2.1 Form1 қомысшасына келесі компонеталарды қосу:

    Standard - Button1, Edit1, Edit2, Edit3, Label1-Label6

    Win32 – Trackbar1, Trackbar2, Trackbar3

    Additional – Shape1.

      1. Компоненталар құрамын анықтау(Object Inspector/ Properties).

    Button1 – Caption құрамын “Цвет” (Color)-на

    Edit1, Edit2, Edit3 – Text құрамымен мәнді жою

    Label1, Label2, Label3 –Caption құрамымен Red, Green, Blue түстеріне

    Trackbar1, Trackbar2, Trackbar3 –Min құрамымен 0 Max 255 орнату
    Form1 формасының түрі

    2
    .34-ші сурет


      1. Оқиғаларды өңдеуді қосу (Object Inspector/ Events).

    А)Тышқан көмегімен формада компонентаны таңдау.

    Б)Тышқанды таңдалған оқиғаға екі рет шерту.

    В) код денесін енгізу.

    Button1 – OnClick оқиғасын таңдау, код денесін жазу:

    procedure TForm1.Button1Click(Sender: TObject);

    begin

    shape1.brush.color :=

    rgb ( strtoInt ( edit1.text ), strtoInt(edit2.text),strtoInt(edit3.text));
    end;

    Trackbar1- OnChange оқиғасын

    procedure TForm1.TrackBar1Change(Sender: TObject);

    begin

    shape1.brush.color:= rgb(trackbar1.position,trackbar2.Position,trackbar3.Position);

    label4.caption:= inttostr(trackbar1.position);

    label5.caption:= inttostr(trackbar2.position);

    label6.caption:= inttostr(trackbar3.position);

    end;
    Trackbar2,Trackbar3 – OnChange оқиғасын TForm1.TrackBar1Change мәнін таңдау.
    Form1 – OnCreate оқиғасы

    procedure TForm1.FormCreate(Sender: TObject);

    begin

    shape1.brush.color:=rgb(trackbar1.position,trackbar2.Position,trackbar3.Position);

    label4.caption:= inttostr(trackbar1.position);

    label5.caption:= inttostr(trackbar2.position);

    label6.caption:= inttostr(trackbar3.position);

    end;
    Form1 – OnShow оқиғасы

    procedure TForm1.FormShow(Sender: TObject);

    begin

    form2.showmodal;

    end;
    2.4 Өзіміздің қосымшамыз үшін программалық заставк құрамыз. Ол белгіленген уақыт ішінде немесе басу кезінде жабылатын болады.

    Ол үшін Form2 қосымшасына компоненталарды қосу:

    Additional – BitBtn1, StaticText1, Image1

    System – Timer

      1. Компоненттер құрылымын анықтау (Object Inspector/ Properties).

    BitBtn1 – Caption құрылымы үшін Ok.

    StaticText1 - Caption үшін Calc_Color (“Калькулятор цвета”)

    Timer – Interval 5000

    Image1 –Picture


      1. Оқиғаны өңдеуішті қосу (Object Inspector/ Events)

    BitBtn1- OnClick оқиғасы

    procedure Tform2.BitBtn1Click(Sender: TObject);

    begin

    form2.close;

    end;

    Timer - On Timer – BitBtn1Click процедуралар тізімінен алу

    Form2 –OnClick - BitBtn1Click процедуралар тізімінен алу

    Form2 –OnKeyPress оқиғасы

    procedure Tform2.FormKeyPress(Sender: TObject; var Key: Char);

    begin

    form2.close;

    end;

    Form2 формасының түрі

    2
    .35-ші сурет

    Тапсырма


    1. Геометриялық фигуралардың өлшемін басқару үшін TrackBar4 компонентасын қосу.

    2. Оқиғаны өңдеуішті қосу

    procedure TForm1.TrackBar4Change(Sender: TObject);

    begin

    shape1.Height:=trackbar4.position;

    shape1.Width:= trackbar4.position;

    end;

    1. ОnCreate өңдеуішін қосу Form1 үшін.


    Лабораториялық жұмыс № 3. Визуальді компоненталарды қолдану.

    Жұмыс мақсаты: Орын ауыстыру және қосу механизмімен танысу.


    1. Негізгі бөлім


    Delphi көмегімен орындалатын программада тасудың 2 механизмі жұмыс істей алады.

    1-шісі ол әрине тасу (drag-and –drop). Оны орындату үшін керек объект белгіленіп, тышқанның сол жағы басылады. Ол басылып тұрып, объект жаңа орынға ауыстырылады. Одан кейін тышқаг жіберіледі.

    2-шісі – ол қосу мехинизмі (drag-and-dock). Басқару элементтері қосулы палитрасына қосылады. Палитлара бір-біріне қосылады. Палитралар қосылу кезінде өлшемдері тіркеледі.

    TСontrol класында тасудың барлық мүмкіндіктері көрсетілген. Сондықтан олар барлық компоненталар үшін жүктеле алады. DragMode прораммалау барысында dmManual және dmAutomatic тең болады. dmAutomatic (автоматическое) мәні автоматты түрде тышқанның басылу барысында жүктеледі. OnMouseDown оқиғасымен байланысты. dmManual (ручное) тасу барысын програмалаушы анықтайды. BeginDrag методы таңдалады.

    procedure TForm1. ListBox1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

    begin

    if (Button = mbLeft) and (ssAlt in Shift)

    then ListBox1. BeginDrag(false);

    end;

    Жоғарғы мысалда BeginDrag мәні false тең. Ол үшін тасуды қабылдау туралы ақпарат берілуі керек. Ол үшін OnDragOver өңдеуіші қарастырылуы керек. Ол false мәнін беріп, ал өндеуішке Accept параметрін береміз. ListBox1 тізімі үшін келесі мысла қарастырылуы мүмкін:
    procedure TForm1. ListBox1DragOver(Sender, Source: TObject;

    X, Y: Integer;State: TDragState; var Accept: Boolean);

    begin

    if (Sourse as Tcontrol <>Sender)

    then Accept := Source is TListBox

    else Accept := false;

    end;

    Мұнда басында (Sender) және (Sourse) компоненттері бір емес екендігін зертейді. Бұл тасуды бір элемент ішінде жүргізбеу үшін қарастырылған. Егер ол орындалмаса, else-ге тең болады. Кері жағдайда ол true мәнін қабылдайды.

    Accept параметрі OnDragOver өңдеуішінде беріледі. Бұл қабылдайтын ақпарат оны ала алама жайлы ақпаратты береді. Бұл өңдеуіш берілмесе, онда тасылатын ақпарат қабылдана алады дегенді білдіреді.

    OnDragDrop та қабылдайтын компонент жайлы ақпарат қабылдайды. Өңдеуішке Sourse (объект-источник) және Х және У курсор координаталары беріледі. OnDragDrop келесі түрге ие бола алады:

    procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);

    Begin

    (Sender as TListBox).Items.Add((Sourse as TListBox).

    Items[(Sourse as TListBox).ItemIndex]);

    end;

    Бұл өңдеуіште ((Sourse as TListBox).Items[(Sourse as TListBox).ItemIndex]) Sender as TListBox.Items.Add методымен қосады. As арқылы Sender және Sourse параметрі TListBox класымен қосылады. Бұл жарияланған параметрлер TОbject класына жүктелуі үшін керек. бірақ бұл класста ItemIndex құрамы жоқ. Бұл құрам TListBox класынжа жарияланған, олар TОbject мұрагері болып табылады. Сондықтан да біз as операциясымен жұмыс жасаймыз.

    Тасудың жұмысы аяқталған соң немесе тоқтатылған соң OnEndDrag оқиғасы іске қосылады. Мұнда қосымша мүмкіндіктерді қарастыруға болады. OnStartDrag оқиғасы тасу алдында операцияларды жүргізуге мүмкіндік береді.

    Delphi5- тен бастап тасудың жаңа Drag&Dock объектісі қарастырылған. Бұл мүмкіндіктермен Delphi5-те жұмыс жасау кезінже таныса аласыз. Мұнда интерфейсті түбімен өзгерту, екі терезені бір-біріне қосу мүмкіндітері бар.

    Терезелік параметрлерге арнап DockSize құрылымы енгізілген, ол үнсіздікте false – қа тең. Ал егер ол true мәніне ие болса, онда ол контейнер қызметін атқарады. UseDockManager – жаңа құрылым. егер ол true мәніне ие болса, онда басқару диспетчерге жүктеледі, ал кері жағдайда ол программистке жүктеледі.

    Компоненталарда – DragKind құрылымы клиенттер үшін орналастыру үшін керек.

    Компоненталарда – dkDock құрылымы клиенттер үшін орналастыру үшін керек. Егер сіз тасу автоматты түрде жүргізілуі керек болса, онда DragMode в dmAutomatic құрылымдарын орнату керек. DragMode мәні dmManual – ға үнсіздікте тең болса, онда Drag&Dock үрдісі Drag&Drop үрдісіндей болады.

    Мысалы, қосымшада 6 панель қарастырылған. Panel1 DockSize құрылымы орнатылған және ол true мәніне ие. Panel2- Panel6 панельдерінде DragKing ішінде dkDock және DragMode ішінде dmAutomatic орналастырылған. 1-ші панель басқа панельдерді қабылдай алады. Орналастырылған клиенттер бөлгіштер орнатылған, олар арқылы өлшемдерді өзгертуге мүмкіндік береді. Компоненталарды басу кезінде олар жылжымалы терезеге айналады. Оларды жаңа орындауға қоюға, жабуға, өлшемдерді өзгертуге болады.

    Алушы форамның өзі де бола алады. Егер біз DockSize true мәніне ие деп белгілесек. Басқан соң олар үнсіздікте берілген мәндерге ие болады. Басу


    1. Тапсырма және оны орындау тәртібі

    Тасу механизмі.
    Тасу механизімінің алгоритмі келесілерден тұрады.


    1. BeginDrag – механизм жұмысын белгілейді. DragCursor арқылы тышқан түрін береміз.

    2. Тасу үрдісін орындау. OnDragOver объекттер үшін құрылады. Олар тасылатын объектіні қабылдай алады.

    3. OnDragDrop құрамы тасылатын оюъект тасталатын болса орындалады.

    4. OnEndDrag тасу аяқталғанын білдіреді. Ол тасу дұрыс аяқталған соң жүргізіледі.

    Программалаудың келесі этаптарын жүзеге асырыңыз.

      1. Form1 формасын құрамыз, Edit1, панель Panel1және Button1, Button2 батырмаларын қоямыз.

      2. Edit1 үшін OnMouseDown өңдеуішін береміз:

    • тышқанның сол жақ батырмасының басылғандығы тексеріледі.

    • BeginDrag false мәніне ие. Ол тасу үрдісі басталмағандығын білдіреді.

    Procedure Tform1. Edit1MouseDown (Sender, Source: Tobject;

    Button : TmouseButton;

    Shift : TshiftState; X,Y : Integer);

    begin

    if Button = mbLeft then

    Edit1.BeginDrag (false) ;

    end;

      1. Panel1 объектісі OnDragOver өңдеуішін құрамыз.

    • мұнда тасылатын объект Edit1-де енгізілгендігін тексереді;

    • Accept параметрініне тексеру мәні жазылады.

    procedure Tform1. Panel1DragOver (Sender, Source: Tobject;

    X,Y :Integer;

    State : TdragState; var Accept : Boolean);

    begin

    Accept := Source = Edit1;

    end;

      1. Panel1 объектісі үшін OnDragDrop өңдеуішін құрамыз. Ол тасукезінде тасталу орын алса іске қосылады. Мұнда ақырғы текстін жазылуы орындалады.

    Procedure Tform1. Panel1DragDrop (Sender, Source: Tobject;

    X,Y :Integer);

    begin

    Panel1.Caption := Edit1.Text;

    end;

      1. Button1 батырмасын басқанда орындалатын оқиғаларды құрыңыз:

    • тышқанның сол жақ батырмасының басылғандығы тексеріледі

    • метод шақырылады.

    • Қабылдауды форманың өзі алу керек. Ол үшін ол OnDragOver өңдеуішімен өңделуі керек.

    • Тағы да ол OnDragDrop өңдеуішін алу керек. Ол формадағы орынлы анықтау үшін керек(құрам Left и Top):

    procedure Tform1. FormDragDrop (Sender, Source: Tobject;

    X,Y :Integer);

    begin

    (Source as Tbutton) . Left := X;

    (Source as Tbutton). Top := Y;

    end;


      1. Программаны орындалуға жіберіңіз. Тексті текріп, оны панелге тасу арқылы көшіріңіз. Егер сызылған дөңгелек шықса, онда тастау орын алды деген сөз. Ал квадратты стрелка көрінсе, онда тасу жүзеге асты дегеді білдіреді.


    Тапсырма


    1. Button1 үшін тышқанның оң жағы басылғанда орындалатын оқығаарды беріңіз. Ол форманы жабуы керек немесе процедураны өзгертуі тиіс.

    2. Button2 үшін Form2-ге өту процедурасын жазу.


    Қосу механизмі
    Қосу механизмін программалаусыз орындауға болады. Ол үшін келесілер орындалуы тиіс:

      1. Form2 құрамыз, онда Panel1 және Panel2-ні орналастырамыз. Бірінші панелде 2 батыра Button1 және Button2 орналасады.

      2. Panel1 және Panel2-нің құрылымын өзгерту керек. Ол қосылатын екі палитраны көрсету үшін жасалады.

    Құрамы

    Ауыстыру

    DockSite

    True

    DragMode

    DmAutomatic

    DragKind

    DkDock


    Button1, Button2 компоненттеріне келесі өзгерістер орнату керек: батырмалар толық палитра бола алмайды, сондықтан оларды DockSite құрылымы жоқ.


    Құрылым

    Ауыстыру

    DragMode

    DmAutomatic

    DragKind

    DkDock


    Программаны орындауға жіберу, және қандай өзгерстер болғандығын түсіндіріңіз.

    2.11 Panel2 үшін OnGetSiteInfo оқиғаны өңдеуішін құрыңыз. Ол батырманы қабымау үшін керек:

    procedure TForm2.Panel2GetSiteInfo (Sender: Tobject;

    DockClient : TControl;

    var InfluenceRect :Trect; MousePos :Tpoint;

    var CanDock : Boolean);

    begin

    CanDock := not (DockClient is Tbutton);

    end;

    2.12 Panel1 үшін OnUnDock оқиғаны өңдеуішті құрамыз. Ол палитрадан батырманы алу мүмкіндігінен айырылады:

    procedure TForm2.Panel1UnDock (Sender: Tobject;

    Client : TControl;

    NewTarget : TwinControl; var Allow : Boolean);

    begin

    Allow := not (Client is Tbutton);

    end;

    Тапсырма


      1. Button1 және Button2 батырмасының Form2 формасында орын ауыстыруына тиыи салынғандығын түсіндіріңіз.

      2. CheckBox1, CheckBox2, CheckBox3 –ті Form2 орналастырыңыз. CheckBox1- Panel2-ге батырманы қабылдауға тиым салады, CheckBox2- Form2-ге батырманы қабылдауға тиым салады, CheckBox3 - Panel2-де батырманың орнын ауыстыруға тиым салады

    Begin

    If CheckBox1.Checked = true then

    CanDock := not(DockClient is TButton);

    End;
    1   ...   4   5   6   7   8   9   10   11   12


    написать администратору сайта