View Full Version : جا به جا شدن یک فرم همزمان با فرم دیگر
pezhvakco
جمعه 02 مهر 1389, 18:40 عصر
درود :
چه طور میشه یک فرم رو همزمان با یک فرم دیگه جا به جا کرد .
یعنی می خوام دو تا فرم که روی صفحه است، اگه کاربر فرم 1 رو بوسیله موس جابه جا کرد فرم دیگه هم همزمان با این فرم جا به جا بشه .
پیشاپیش سپاس از راهنمای دوستان ...
esmit61
جمعه 02 مهر 1389, 19:12 عصر
اگر فقط با ماوس جابجا میکنه در رویداد onConstrainedResize فرم اول بنویسید:
form2.left:=left
pezhvakco
جمعه 02 مهر 1389, 19:40 عصر
اگر فقط با ماوس جابجا میکنه
اگه روش هایی دیگه ایی که میشه فرم رو جابه جا کرد و اون شرط ابتدایی رو هم داشته باشه بنویسی، سپاس گذار میشم ...
esmit61
جمعه 02 مهر 1389, 20:23 عصر
اگه روش هایی دیگه ایی که میشه فرم رو جابه جا کرد
منظورم این بود که ممکنه یک کلید روی فرم گذاشته باشید که وقتی کاربر روش کلیک کرد، فرم مثلاً 100 پیکسل بره به سمت راست که اونوقت دیگه روش بالا جواب نمیده و باید با پیام ها کار کنید
اگر هم همچین گزینه ای وجود نداره که به مشکلی برخورد نخواهید کرد
MohsenB
دوشنبه 05 مهر 1389, 01:37 صبح
استفاده از پیامها روش بسیار مناسبتر و بهتریه چون تغییر موقعیت فرم رو ریل تابم اعلام میکنه .
یعنی اگر فرم اول رو جابجا کنید توحین جابجا کردن فرم دومم جابجا میشه انگار که اونیکی رو هم گرفته باشین .
pezhvakco
دوشنبه 05 مهر 1389, 08:21 صبح
ستفاده از پیامها روش بسیار مناسبتر و بهتریه چون تغییر موقعیت فرم رو ریل تابم اعلام میکنه .
میشه روش کار رو بنویسین ؟
Felony
دوشنبه 05 مهر 1389, 08:58 صبح
میشه روش کار رو بنویسین ؟
باید Message Handler فرم 1 تون رو بازنویسی کنید ، تعریف زیر رو در قسمت Public فرم 1 بنویسید :
Procedure WNDProc(Var Message: TMessage); Override;
و تابع مربوط به Message Handler رو به صورت زیر بازنویسی کنید :
procedure TForm1.WNDProc(var Message: TMessage);
begin
if Assigned(Form2) then
if Message.Msg= WM_MOVE then
begin
Form2.Left:= Self.Left;
Form2.Top:= Self.Top;
end;
inherited;
end;
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.