delphi4arab منتديات دلفي للعرب
استخدآم procedure دآخل procedure آخر ؟ الدلفي يعترض؟ - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : استخدآم procedure دآخل procedure آخر ؟ الدلفي يعترض؟ (/showthread.php?tid=1043)



استخدآم procedure دآخل procedure آخر ؟ الدلفي يعترض؟ - AL-MOB4RM3G - 12-07-2009

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

اخواني الكرام,, هل ممكن استخدآم Procedure دآخل Procedure آخر تحت قسم ال implementation ؟

وكيف السبيل الى ذلك ؟

بختصار,, عندي بروسيدور اسمه
PHP كود :
procedure OnShiftPress; 

وبه بعض الأوآمر,,

والآن انشئت procedure آخر,, وإسمه
PHP كود :
Procedure AfterClick; 

عندما أكتب هذا الكود

PHP كود :
Procedure AfterClick;
  
begin
    form1
.advGlowbutton42.Down:= false;
    
form1.advGlowbutton53.Down:= false;
    
OnShiftLeft;
  
end; 

يعترض الدلفي على ذلك,, يا ترى ما السبب ؟

هل يكون هذا بسبب ان ال 2 Procedure معرفيّن مبآشرة تحت implementation ام مآذا ؟

بارك الله لكم


استخدآم procedure دآخل procedure آخر ؟ الدلفي يعترض؟ - STRELiTZIA - 12-07-2009

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

الاجراء المستدعى
كود :
OnShift[COLOR=red]Left[/COLOR]

الاجراء المعرف
كود :
OnShift[COLOR=red]Press[/COLOR]


اظن انه خطأ كتابي في اسم الاجراء فقط Big Grin


استخدآم procedure دآخل procedure آخر ؟ الدلفي يعترض؟ - AL-MOB4RM3G - 12-07-2009

نعم صحيح اخي,, خطأ مطبعي :eek:

تم حل الإشكآل ولله الحمد,,

الخطأ هو انه كان الدلفي يقول ان البروسيدور غير معرّف,,

PHP كود :
private
    { Private 
declarations }
  public
    { Public 
declarations }
  
end;

var
  
Form1: TForm1;
------------------------ 
هنا  procedure OnShiftLeft;
  
//s : string;
implementation 

فعرّفت البروسيدور كما هو وآضح في الأعلى,, ومشي معي الحآل,, Smile

لا ادري ان كان بالصدفة,, لكن مشي الحآل على كل حال :eek:

شكرا لكم


استخدآم procedure دآخل procedure آخر ؟ الدلفي يعترض؟ - STRELiTZIA - 12-07-2009

إقتباس :لا ادري ان كان بالصدفة
لو كان هنا اخي Delta لقال لك : لا يوجد شئ اسمه صدفة في البرمجة :mad:

كود :
implementation procedure test; begin end; procedure testing; begin [COLOR=red]test;[/COLOR] end;

هذا المثال لا يولد خطأ....
يجب مراعاة سلسلة الترتيب، الاجراء المستدعى يجب ان يكون قبل الاجراء المستدعي

----
و في حالة عدم مراعاة ترتيب الاجراءات يمكنك جعل الاجراء Global قبل implementation كما هو الحال مع الحل الذي ارفقته...
نستعمل هذه الطريقة فقط في حالة تصدير الاجراء الى وحدات اخرى من المشروع.
----


كود :
implementation procedure test; begin [COLOR=red]testing;[/COLOR] end; procedure testing; begin end;

كتابة الكود بهذه الطريقة يولد الخطأ...
بالتوفيق ان شاء الله


استخدآم procedure دآخل procedure آخر ؟ الدلفي يعترض؟ - kachwahed - 12-07-2009

السلام عليكم
OnShiftPress ماذا تريد أن تفعل...
هناك متغير TShiftState معرف باسم Shift يسمح لك بالتعرف على زر التحكم المضغوط، مثال (بطريقتين للاستعمال):
كود :
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if ssCtrl in Shift then ShowMessage('[Ctrl] in hold!'); if Shift = [ssAlt, ssShift] then ShowMessage('[Alt] and [Shift] are in hold!'); end;
تجده في الحدث OnKeyDown و OnKeyUp ويمكن استعماله بطريقة أخرى في إجراءات أخرى.



استخدآم procedure دآخل procedure آخر ؟ الدلفي يعترض؟ - AL-MOB4RM3G - 12-07-2009

شكرا لكما اخواني هلى التوضيح,,

وآضح جدا اخي STRELiTZIA ,, فهمت 100% ولله الحمد

اخي كاش,, Smile

إقتباس :OnShiftPress ماذا تريد أن تفعل...

هههه,, هذا سر للغآية,, Wink

هذه تسمية فقط,, كان بلإمكان ان يكون الإسم شئ آخر ,,, Wink