17-02-2009, 12:38 PM
18-02-2009, 02:59 PM
هذا مثال صغير حول طريقة استعمال خاصية السحب والافلات (Drag & Drop)، ضع في مشروع جديد مكونين TListBox واكتب في الحدث OnDragOver والحدث OnDragDrop لكلا المكونين ما يلي:
ولا تنسى أن تضبط الخاصية DragMode على dmAutomatic لكلا المكونين، أو أكتب مباشرة هذا الكود في الحدث OnCreate للنموذج الرئيسي:
ملاحظة: للكتابة في حدث معين لعدة مكونات دفعة واحدة، قم بتحديد (Select) مجموعة من المكونات وانقر مرتين في الحدث الذي تريد.
والسلام عليكم.
PHP كود :
procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept := Sender is TListBox;
end;
procedure TForm1.ListBox2DragDrop(Sender, Source: TObject; X, Y: Integer);
var
iTemp: Integer;
ptTemp: TPoint;
szTemp: string;
begin
{ change the x,y coordinates into a TPoint record }
ptTemp.x := x;
ptTemp.y := y;
{ Use a while loop instead of a for loop due to items possible being removed
from listboxes this prevents an out of bounds exception }
iTemp := 0;
while iTemp <= TListBox(Source).Items.Count-1 do
begin
{ look for the selected items as these are the ones we wish to move }
if TListBox(Source).selected[iTemp] then
begin
{ use a with as to make code easier to read }
with Sender as TListBox do
begin
{ need to use a temporary variable as when the item is deleted the
indexing will change }
szTemp := TListBox(Source).Items[iTemp];
{ delete the item that is being dragged }
TListBox(Source).Items.Delete(iTemp);
{ insert the item into the correct position in the listbox that it
was dropped on }
Items.Insert(itemAtPos(ptTemp, True), szTemp);
end;
end;
Inc(iTemp);
end;
end;
PHP كود :
procedure TForm1.FormCreate(Sender: TObject);
begin
ListBox1.DragMode := dmAutomatic;
ListBox2.DragMode := dmAutomatic;
end;
والسلام عليكم.
18-02-2009, 07:19 PM
بارك الله فيك اخي الكريم kachwahed
في الحقيقة ما شاء الله عليك...
امّا بخصوص الملاحظة
فهذا شئ جديد بنسة لي...
فشكرا لك كثيرا...
في الحقيقة ما شاء الله عليك...
امّا بخصوص الملاحظة
PHP كود :
ملاحظة: للكتابة في حدث معين لعدة مكونات دفعة واحدة، قم بتحديد (Select) مجموعة من المكونات وانقر مرتين في الحدث الذي تريد.
والسلام عليكم.
فهذا شئ جديد بنسة لي...
فشكرا لك كثيرا...
19-02-2009, 08:23 AM
بارك الله فيك اخي الكريم وجزاك الله كل خير