المشاركات : 778
المواضيع 97
:
: 0
الإنتساب : Nov 2008
السلام عليكم روحمة الله
اخواني الكرام,, هل ممكن استخدآم Procedure دآخل Procedure آخر تحت قسم ال implementation ؟
وكيف السبيل الى ذلك ؟
بختصار,, عندي بروسيدور اسمه
وبه بعض الأوآمر,,
والآن انشئت procedure آخر,, وإسمه
عندما أكتب هذا الكود
PHP كود :
Procedure AfterClick;
begin
form1.advGlowbutton42.Down:= false;
form1.advGlowbutton53.Down:= false;
OnShiftLeft;
end;
يعترض الدلفي على ذلك,, يا ترى ما السبب ؟
هل يكون هذا بسبب ان ال 2 Procedure معرفيّن مبآشرة تحت implementation ام مآذا ؟
بارك الله لكم
فرّج همّ المهمومين يا الله
اللهم فك قيد اسرانا و اسرى المسلمين
المشاركات : 452
المواضيع 69
:
: 0
الإنتساب : Feb 2008
و عليكم السلام و رحمة الله
ما هو الاعتراض ؟
الاجراء المستدعى
كود :
OnShift[COLOR=red]Left[/COLOR]
الاجراء المعرف
كود :
OnShift[COLOR=red]Press[/COLOR]
اظن انه خطأ كتابي في اسم الاجراء فقط
المشاركات : 778
المواضيع 97
:
: 0
الإنتساب : Nov 2008
نعم صحيح اخي,, خطأ مطبعي :eek:
تم حل الإشكآل ولله الحمد,,
الخطأ هو انه كان الدلفي يقول ان البروسيدور غير معرّف,,
PHP كود :
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
------------------------ هنا procedure OnShiftLeft;
//s : string;
implementation
فعرّفت البروسيدور كما هو وآضح في الأعلى,, ومشي معي الحآل,,
لا ادري ان كان بالصدفة,, لكن مشي الحآل على كل حال :eek:
شكرا لكم
فرّج همّ المهمومين يا الله
اللهم فك قيد اسرانا و اسرى المسلمين
المشاركات : 452
المواضيع 69
:
: 0
الإنتساب : Feb 2008
12-07-2009, 11:27 AM
(آخر تعديل لهذه المشاركة: 12-07-2009, 11:34 AM بواسطة STRELiTZIA.)
إقتباس :لا ادري ان كان بالصدفة
لو كان هنا اخي 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;
كتابة الكود بهذه الطريقة يولد الخطأ...
بالتوفيق ان شاء الله
المشاركات : 2,293
المواضيع 157
:
: 81
الإنتساب : Dec 2008
12-07-2009, 03:50 PM
(آخر تعديل لهذه المشاركة: 13-11-2010, 09:21 AM بواسطة kachwahed.)
السلام عليكم
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 ويمكن استعماله بطريقة أخرى في إجراءات أخرى.
المشاركات : 778
المواضيع 97
:
: 0
الإنتساب : Nov 2008
شكرا لكما اخواني هلى التوضيح,,
وآضح جدا اخي STRELiTZIA ,, فهمت 100% ولله الحمد
اخي كاش,,
إقتباس :OnShiftPress ماذا تريد أن تفعل...
هههه,, هذا سر للغآية,,
هذه تسمية فقط,, كان بلإمكان ان يكون الإسم شئ آخر ,,,
فرّج همّ المهمومين يا الله
اللهم فك قيد اسرانا و اسرى المسلمين