PDA

View Full Version : عمل Drag And Drop بین کنترلهای ایجاد شده توسط برنامه



RK977877
یک شنبه 29 مهر 1386, 12:39 عصر
با سلام
من میخواهم برنامه ای بنویسم که توسط آن برنامه بتوانم کنترل مثلا لیست باکس ایجاد کرده (بصورت دینامیک) و بعد بین آنها عمل Drag And Drop انجام دهم
همانند Sql Server که شما جداول را Add کرده و Sql خود آنها را یک CheckListBox ایجاد کرده و کاربر میتواند توسط عمل Drag And Drop بین جداول ایجاد شده لینک برقرار کند
من هم میخواهم چنین برنامه ای بنویسم آیا امکان پذیر است

m-khorsandi
یک شنبه 29 مهر 1386, 15:05 عصر
Handle Dragging From a TListBox to a TEdit (http://clk.about.com/?zi=1/1UH&sdn=delphi&cdn=compute&tm=9&f=22&su=p284.8.150.ip_&tt=1&bt=1&bts=1&zu=http%3A//delphi.about.com/cs/adptips2001/a/bltip0801_4.htm)
How to Move and Resize Controls at Run Time (http://delphi.about.com/library/weekly/aa102505a.htm)

rasool_brn
یک شنبه 29 مهر 1386, 16:30 عصر
برا این کار دو تا ListBox رو تو فرم بذار.به خاصیت DragMode لیست باکس اول مقدار dmAutomatic رو بده . بعد در رویداد OnDragOver لسیت باکس دوم این کد رو بنویس :
Accept := True;یه متغیر سراسری به نام n از نوع Integer تعریف کن بعد در رویدادOnDragDrop لیست باکس دوم این کد رو بنویس :

ListBox2.Items[n]:=(source as TListBox).Items[(source as TListBox).Itemindex];
n:=n+1;
همین کدهایی رم که گفتم برا ListBox اول بنویس خصوصت Dragmode لیست باکس دومم به dmAutomatic تغییر بده.

RK977877
یک شنبه 29 مهر 1386, 17:12 عصر
آقا ببخشید شما منظور من را متوجه نشدید من میخوام که خود برنامه CheclListBox تولید کند یعنی وقتی که مثلا روی یک جدول دوبار کلیک میکنم سریع یک CheckList Box اضافه کرده و تمام فیلدها را درون آن قرار داده و Event - DragOver And DragDrop آن فعال شده تا من بتوانم از آن به سایر ChecklistBox های اضافه شده عمل Drag And Drop را انجام دهم
نکته : ساخت CheckListBox در برنامه بصورت دینامیک و داشتن رویداد Drag And Drop

m-khorsandi
یک شنبه 29 مهر 1386, 21:01 عصر
برای ساخت کنترل در زمان اجرا جستجو کن،
برای مابقی برنامه هم لینکهایی که گذاشتم کمکت می‌کنند.

dkhatibi
دوشنبه 30 مهر 1386, 05:59 صبح
تو مثالهای دلفی هم فکر کنم مثالی در این باره باشه نگاهی کن. دلفی 6

RK977877
دوشنبه 30 مهر 1386, 08:16 صبح
حالا چگونه میتوان بعد از ساخت کنترل در زمان اجرا Event های مربوط به ان را هم فعال کرد مثلا DragOver و یا DragDrop که بتوان در زمان اجرا ابن Event ها را فعال کرد

rasool_brn
دوشنبه 30 مهر 1386, 09:18 صبح
حالا چگونه میتوان بعد از ساخت کنترل در زمان اجرا Event های مربوط به ان را هم فعال کرد مثلا DragOver و یا DragDrop که بتوان در زمان اجرا ابن Event ها را فعال کرد

اول باید یه Procedure تعریف کنی (توجه داشته باش که تمام آرگومانهای این پروسیجر باید مشابه آرگومانهای رویدادی باشه که می خوای ازش استفاده کنی) مثلا برای رویداد OnDragOver به این صورت عمل کن:

procedure eventOnDragOver(OnDragOver تمام آرگومانهای رویداد)
Begin
Accept := True;
End;



بعد از این کار این Procedure را به رویداد OnDragOver کاموننت ChecklistBox که در زمان اجرا ایجاد کردی نسبت بده , به صورت زیر:



ChecklistBox.OnDragOver := EventOnDragOver;

RK977877
دوشنبه 30 مهر 1386, 17:43 عصر
حال اگر من یک لیست باکس داشته باشم و بخواهم وقتی که موس را روی ان میبرم بفهمم که روی کدام ItemIndex از لیست باکس هستم چکونه امکان پذیر است

vcldeveloper
سه شنبه 01 آبان 1386, 03:19 صبح
حال اگر من یک لیست باکس داشته باشم و بخواهم وقتی که موس را روی ان میبرم بفهمم که روی کدام ItemIndex از لیست باکس هستم چکونه امکان پذیر است
قبل از سوال جستجو کنید. در ضمن، هر تاپیک برای مطرح کردن یک سوال است