Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Мақсаты: Тізімдердің қасиеттері және әдістеріне байланысты мысалмен танысу.
Обьектілер: Қарапайым тізім (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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!