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

مشكلة مع هذه الفكرة

مغلق
بدأه m-anas في 24 يناير 2005 · 4 رد · 541 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته وكل عام وانتم بألف خير

لقد قمت بانشاء برنامج يحتوي على عدد من الاوامر أو الأحداث المرتبطة بأزرار معينة

وقمت باضافة مؤقت زمني وذلك بهدف ربط كل الاحداث مع بعضها ولكن يفصل بينها فاصل زمني ثابت أي يكفي الضغط على زر المؤق لتقوم كل الأحداث بالعمل بالتتالي وبفارق زمني ثابت

وكتبت الشيفرة التالية في المؤقت

var a :integer;
begin
for a:=1 to 10 do
if a=1 then sButton1.Click else
if a=2 then sButton2.Click else
if a=3 then sButton3.Click else
if a=4 then sButton4.Click else
if a=5 then sButton5.Click else
if a=6 then sButton6.Click else
if a=7 then sButton7.Click else
if a=8 then sButton8.Click else
if a=9 then sButton9.Click else
if a=10 then sButton10.Click;
timer1.Enabled:=false;

كما وقد كتبت في الزر الذي يستدعي حدث المؤقت :

timer1.enabled :=true;

ولكن المشكلة هنا أن المؤقت يقوم بتنفيذ الأمر الأخير من الأوامر الموجودة ضمنة مع فارق زمني

(هذه الفكرة مشابهة لفكرة عداد )

أرجوا الايضاح والتصحيح

جزاكم الله كل خير

بسم الله الرحمن الرحيم

الحمد لله الذي هدانا لهذا وما كنا لنهتدي لولا أن هدانا الله

صدق الله العظيم

#2

مرحبا m-anas .

لم أعرف كيف استعملت هذا الكود و في اية أجرائية..

لقد استعملت متغير a في نفس الأجرائية أي أنه من نوع Lacal variable.

Compiler يقوم ب حجز الذاكرة لها كل ما صادف نداءا لها, ثم يقوم بتحرير المتغير A من الذاكرة عند الإنتهاء من تفيذ اللأجرائية. يعني أنك لو كنت وضعت هذا الكود في المؤقت فأنها ستقوم بتنفيذ كل الأحداث بنفس سرعة المعالج على التوالي. ولن تظهر لك إلا الحدث الأخير الذي يوافق a=10:button10.click

هذا نص الكود يمكن يساعدك

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Timer1: TTimer;
    BitBtn1: TBitBtn;
    Label1: TLabel;
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    index: Integer;
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
 label1.Caption:=('that'' the button 1');;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 label1.Caption:=('that'' the button 2');;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
 label1.Caption:=('that'' the button 3');;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
   label1.Caption:=('that'' the button 4');;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
 label1.Caption:=('that''s the button 5');;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  Timer1.Enabled:= not Timer1.Enabled;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
index:= 1;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if index=6 then index:=1;
  inc(index);
  case index of
    1: Button1.Click;
    2: Button2.Click;
    3: Button3.Click;
    4: Button4.Click;
    5: Button5.Click;
  end;
end;

end.

____________________________________________

(h)

eventsTiming.zip

تم تعديل هذه المشاركة بواسطة ikossan في 24 يناير 2005 في 17:13

سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين

يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.

اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.

الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.

إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.

و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله

أخوكم مراد

27_06_06_05_21_41_1151410901logo_adl_wal_ihsan.jpg

#3

السلام عليكم ... تحية طيبة وشكرا لك على الافادة اخي ikossan

والله يعطيك العافية ... تمام .... وصلي الفكرة وصارت قيد التنفيذ ... تحياتي للكل

بسم الله الرحمن الرحيم

الحمد لله الذي هدانا لهذا وما كنا لنهتدي لولا أن هدانا الله

صدق الله العظيم

#4

فكرة جديدة تابعة للفكرة السابقة ....

أنا بعد ما عملت العداد التصاعدي ..... وبعدين التنازلي ....

الان وضعت زر (توقف) لتوقيف العدادات ....

سؤالي هو ...

هل يمكنني عندما يكون العداد التصاعدي قد بلغ العدة مثلا (5)

وضغطت توقف ثم (تنازلي) ... هل يمكن أن يبدأ العد التنازلي من العدد الذي وصل

إلية العداد التصاعدي ... وما هي الطريقة

أرجوا الافادة .... وشكرا ....

بسم الله الرحمن الرحيم

الحمد لله الذي هدانا لهذا وما كنا لنهتدي لولا أن هدانا الله

صدق الله العظيم

#5

جيد جدا :D .

أحب أن أضطلع على ما قمت به. المهم أنك تحاول أن تجد الحل :rolleyes: .

تحياتيm-anas

;)

سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين

يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.

اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.

الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.

إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.

و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله

أخوكم مراد

27_06_06_05_21_41_1151410901logo_adl_wal_ihsan.jpg

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

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