الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يمكن تحريك الفورم مع حركة الماوس ؟

مغلق
بدأه frh في 23 مارس 2003 · 8 رد · 947 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

و شكرا

#2

يمكن ذلك بأن تقوم بوضع الكود التالي

procedure TForm.ImageMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

ToDrag:= True;

Dx:= X;

Dy:= Y;

end;

procedure TForm.ImageMouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

begin

If ToDrag Then

Begin

TWinControl(Self).Left:= TWinControl(Self).Left+X-Dx;

TWinControl(Self).Top := TWinControl(Self).Top +Y-Dy;

End;

end;

procedure TForm.ImageMouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

ToDrag:= False;

end;

#3

شكرا على الرد و ساجرب الكود و ارد عليك

بارك الله فيك

#4

السلام عليكم و رحمة الله و بركاته

اخ Barca قمت بتجربت الكود الذي تفضلت بكتابته و هو يعمل و لكنه يعتمد على حركة الimage اي ان الform تتحرك مع ال image و ليس مع الماوس .

الا اني قمت بتجربت طريقة ثانية و هي بوضع timer ثم كتبت فيه

procedure TForm1.Timer1Timer(Sender: TObject);

var

mypoint : Tmouse;

begin

form1.Left:= Mypoint.CursorPos.x;

form1.Top := Mypoint.CursorPos.y;

end;

طبعا عند التنفيذ تظهر لي رسالة تنبيه لان المتغير mypointer ليس لديه قيمة ابتدائية , الا ان هذا الكود يعمل المطلوب و بالتاكيد يوجد طرق اخرى خصوصا بالتعامل مع دوال الويندوز الا اني لا اعرفها .

و شكرا

#5

جرب هذا الكود اخي

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  ReleaseCapture;
  SendMessage(Self.Handle, wm_SysCommand,$f012,0);
  Application.ProcessMessages;

end;
#6

بارك الله فيك يا ابو هاني , و راح اجرب الكود و ارد عليك

و شكرا

#7

العزيز أبو هاني . . .

ما هي وظيفة التعليمة التالية بشكل عام ؟

Application.ProcessMessages;

و شكرا لك .

#8

يمكن أن تضع التعليمات التي وضعتها لك في خصائص الفورم أي

procedure TForm.FormMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

ToDrag:= True;

Dx:= X;

Dy:= Y;

end;

procedure TForm.FormMouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

begin

If ToDrag Then

Begin

TWinControl(Self).Left:= TWinControl(Self).Left+X-Dx;

TWinControl(Self).Top := TWinControl(Self).Top +Y-Dy;

End;

end;

procedure TForm.FormMouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

ToDrag:= False;

end;

#9

اولا شكرا للرد و لكني اقصد بتحريك الفورم مع حركة الماوس ان تتحرك حتى عندما يتحرك الماوس خارج الفورم و ليس بالضرورة ان تتبع حركته و هو يمر فوقها ؟؟

و شكرا

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…