Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Практикалық жұмыс №7-8. Тізімдермен жұмыс. Таңдау алгоритмін программалау



Мақсаты: Тізімдердің қасиеттері және әдістеріне байланысты мысалмен танысу.

Обьектілер: Қарапайым тізім (ListBox компоненті) және батырмалар.

Тізімдермен жұмысты бейнелеп көрсету үшін ListBox1 және ListBox2 екі тізімнің өзара әрекеттесуі ұйымдастырылған қосымшаны қарастырайық (1-сурет). Қосымшаны жүктеу кезінде бірінші тізім айлардың аттарымен толтырылады да, ал екінші тізім тазаланады. Екі тізім де элементтердің топтан таңдауын рұқсат етеді. ----> тақырыбы бар btnRight батырмасын басқанда бірінші тізімде таңдалынған элементтер екінші тізімге көшеді. <---- тақырыпты btnLeft батырмасын басу таңдалған элементтердің кері бағытта өтуін шақырады. Екі тізім де drag-and-drop технонлогиясын ұстанады, яғни тізімдер арасында тышқанның көмегімен бірлік элементтердің алмасуын қамтамасыз етеді.

1-сурет.Тізімдердің өзара әрекеттесуін ұйымдастыру

Қосымша модулінің мәтіні төменде көрсетілген.

Unit unit1;

interface

Uses Windows, Messagea, SysUtils, Classes, Graphics, Forms, Dialogs, SdtCtrls;

Type

Tform1=class(Tform);

ListBox1:Tlistbox;

ListBox2:Tlistbox;

BtnRight:Tbutton;

BtnLeft:Tbutton;

Label1:Tlabel;

Label2:Tlabel;

Procedure btnRightClick(Sender:Tobject);

Procedure btnLeftClick(Sender:Tobject);

Procedure FormCreate(Sender:Tobject);

Procedure ListBox2DragOver(Sender, Source:Tobject; x,y:integer;State:TdragState;var Assept:Boolean);

Procedure ListBox2DragDrop(Sender, Source:Tobject; x,y:integer);

Procedure ListBox1DragOver(Sender, Source:Tobject; x,y:integer; State:TdragState; var Assept:Boolean);

Procedure ListBox1DragDrop(Sender, Source:Tobject; x,y:integer);

private

{Private declarations}

public

{public declarations}

end;

var

Form1:Tform1;

implementation

{$R*.DFM}

procedure TForm1.FormCreate(Sender:Tobject);

begin

label1.FocusControl:=ListBox1;

Label2.FocusControl:=listBox2;

//Элементтерді іріктеуді өшіру

ListBox1.Sorted:=false;

ListBox2.Sorted:=false;

//элементтерді көптеп таңдауды қосу

ListBox1.MultiSelect:=true;

ListBox2.MultiSelect:=true;

//элементтерді пернетақта көмегімен таңдауға рұқсат беру

ListBox1.ExtendedSelect:=true;

ListBox2.ExtendedSelect:=true;

//бірінші тізімді толтыру

ListBox1.Clear;

ListBox1.Items.Add (‘Қаңтар’);

ListBox1.Items.Add (‘Ақпан’);

ListBox1.Items.Add (‘Наурыз’);

ListBox1.Items.Add (‘Сәуір’);

ListBox1.Items.Add (‘Мамыр’);

ListBox1.Items.Add (‘Маусым’);

ListBox1.Items.Add (‘Шілде’);

ListBox1.Items.Add (‘Тамыз’);

ListBox1.Items.Add (‘Қыркүйек’);

ListBox1.Items.Add (‘Қазан’);

ListBox1.Items.Add (‘Қараша’);

ListBox1.Items.Add (‘желтоқсан’);

//екінші тізімді тазалау

ListBox2.Clear;

//элементтерді тышқан көмегімен орын алмасу операциясының автоматты басталуына рұқсат

ListBox1.DragMode:=dmAutomatic;

ListBox2.DragMode:=dmAutomatic;

end;

//элементтерді екінші тізімге тасымалдау

Procedure TForm1.btnRightClick(Sender:Tobject);

Var i:integer;

begin

for i:=ListBox1.Items.Count-1 down to 0 do

if ListBox1.Selected[i] then begin

ListBox2.Items.Add(ListBox1.Items[i]);

ListBox1.Items.Delete(i);

end;

end;

//элементтерді бірнші тізімге тасымалдау

Procedure TForm1.btnLeftClick(Sender:TObject);

var i:integer;

begin

for i:=ListBox2.Items.Count-1 downto 0 do

if ListBox2.Selected[i] then begin

ListBox1.Items.Add(listBox2.Items[i]);

ListBox2.Items.delete(i);

end;

end;

//элементтерді екінші тізімге тасымалдауға рұқсат беру немесе тыйым салу

Procedure ListBox2DragOver(Sender, Source:Tobject; x,y:integer; State:TdragState; var Assept:Boolean);

begin

if Source=ListBox1 then Accept:=true else Accept:=false;

end;

//Тышқан батырмасын жібергеннен кейін элементтердің екінші тізімге тасымалдануы

Procedure ListBox2DragDrop(Sender,Source:Tobject;x,y:integer);

begin

with Source as TListBox do begin

ListBox2.items.Add(Items[ItemIndex]);

Items.Delete(ItemIndex);

end;

end;

//элементтердің бірінші тізімге тасымалдануына рұқсат беру немесе тыйым салу

Procedure ListBox1DragOver(Sender, Source:Tobject; x,y:integer; State:TdragState; var Assept:Boolean);

If Source=listBox2 then Accept:=true else Accept:=false;

end;

//Тышқан батырмасын жібергеннен кейін элементтердің бірінші тізімге тасымалдануы

Procedure ListBox1DragDrop(Sender,Source:Tobject;x,y:integer);

with Source as TListBox do begin

ListBox1.items.Add(Items[ItemIndex]);

Items.Delete(ItemIndex);

end;

end;

end.





Дата публикования: 2015-10-09; Прочитано: 1013 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...