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

سؤال حول كيفية استعمال حدث داخل حدث آخر

بدأه sofiane_ism في 2 مايو 2009 · 4 رد · 590 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

عندي 2 صور في الفورم وتايمر ، أنا أريد كيفية كتابة كود في التايمر بحيث عند مرور الماوس على الصورة الاولي يقوم بعمل ما وإذا تم الضغط على الصورة الثانية يقوم بعمل آخر

مع العلم أني أعلم كيف يمكن ذلك من حيث حدث مرور الماوس على الصورة

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

begin

// أي أمر

end;

ولكني أريد من التايمر عمل ذلك

procedure TForm1.Timer1Timer(Sender: TObject);

begin

//إذا الفأرة فوق الصورة الاولى إذن

إذا تم الضغط على الصورة الثانية إذن

end;

#2

قم بتعريف متحول بوليان IsAbovePicture و تقوم بإسناد القيمة له في الحدث MouseMove للصورة الاولى

و متحول اخر IsPicture2Clicked و تقوم بإسناد القيمة له في الحدث Onclick للصورة الثانية

وفي OnTimer تقوم بفحص هذين المتحولين و تقوم بتنفيذ المطلوب...

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#3

شكرا الأخ

Wael Dalloul

لكن واجهتني صعوبة في تنفيذ الشيفرة ، ياريت لو تكرمت وأدرجتها هنا

وشكرا

#4

السلام عليكم

أعرف أن الرد جاء متأخر لكن السؤال لم يتم الرد عليه بشكل كامل

أخي الكريم هذا الحل مشابه لحل الأخ وائل لكني أعتمدت فيه على متحول رقمي واحد

أتطلع على الكود و أرجو أن يفيدك كما قمت بوضع المحاولة في المرفقات ( بإستخدام دلفي 7)

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, jpeg, ExtCtrls;

type
  TForm1 = class(TForm)
	Image1: TImage;
	Image2: TImage;
	Timer1: TTimer;
	procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
	  Y: Integer);
	procedure Image2Click(Sender: TObject);
	procedure Timer1Timer(Sender: TObject);
  private
	{ Private declarations }
  public
	{ Public declarations }
  end;

var
  Form1: TForm1;
  a : integer = 0;

implementation

{$R *.dfm}

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
   a := 1;
   timer1.Enabled := true;
end;

procedure TForm1.Image2Click(Sender: TObject);
begin
  a := 2;
  timer1.Enabled := true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if a = 1 then
  begin
	timer1.Enabled := false;
	a := 0;
	showmessage('pass at picture no 1');
  end;
  if a = 2 then
  begin
	timer1.Enabled := false;
	a := 0;
	showmessage('click on picutre no 2');
  end;
end;

end.

أرجو أن يفيدك

1.rar

تم تعديل هذه المشاركة بواسطة rober في 18 مايو 2009 في 16:33

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#5

شكرا الأخ rober لقد تم تجربة الكود وهو يعمل ، جزاك الله كل خير

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