HomeWork_08 تمرين تطبيقي
#1
السلام عليكم و رحمة الله
اظن ان هذا التطبيق هو اسهل تطبيق Big Grin

المطلوب :
- وضع افكار و طرق صحيحة و جيدة لتنظيم مشروع دلفي و جعله احترافي Smile ليس الملف التنفيذي بل الملفات المصدرية و الأوامر الموضوعة فيه و كيفية جعله مشروع عمل جماعي.

هيا الكل يشارك :p

بالتوفيق ان شاء الله
الرد
#2
على الاقل اظن انني اول من حل هذا التطبيق
الرد
#3
السلام عليكم ,,

حقيقة لم أفهم المطلوب بالظبط ؟ Big Grin

إقتباس :و كيفية جعله مشروع عمل جماعي.

هل تقصد نفس النقاط الموجوجهـ في الدرس ؟ :eek:

كــ وضع الأحرف الكبيرهـ ؟

ShowMessage بدلا من showmessage

أول نقطه وأول حل صحيح :p
شكوت إلى وكيع سوء حفظي ... فأرشدني إلى ترك المعاصي
وأخــبـرنـي بــأن الـعـلـم نـور ... ونـور الله لا يـهدى لـعـاصي
الرد
#4
إقتباس :حقيقة لم أفهم المطلوب بالظبط ؟
وضع افكار و طرق صحيحة و جيدة لتنظيم مشروع دلفي... يعني افكار ليست من الدرس تساعد في تنظيم المشروع، اي فكرة : طريقة كتابة الأوامر، اعدادات دلفي و اي شئ نستفيد منه جميعا ان شاء الله.

إقتباس :على الاقل اظن انني اول من حل هذا التطبيق
Smile
إقتباس :أول نقطه وأول حل صحيح
Smile


بالتوفيق ان شاء الله
الرد
#5
السلام عليكم ,,

مممم لا أعرف كيف أعبر عنها ,, لكن هي تنظيم الأوامر بين البلوك ,,

بحيث تكون :

PHP كود :
procedure TForm1.SpeedButton1Click(SenderTObject);
begin
  
if Edit1.Text='Delphi4Arab' Then
  begin
    ShowMessage
('Hi Programmer''s');
    
Edit1.Text:='www.Delphi4Arab.com';
    
Form1.Caption:='Hello';
  
end;
end


بدلا من :

PHP كود :
procedure TForm1.SpeedButton1Click(SenderTObject);
begin
if Edit1.Text='Delphi4Arab' Then
begin
ShowMessage
('Hi Programmer''s');
Edit1.Text:='www.Delphi4Arab.com';
Form1.Caption:='Hello';
end;
end


بالتوفيق Wink
شكوت إلى وكيع سوء حفظي ... فأرشدني إلى ترك المعاصي
وأخــبـرنـي بــأن الـعـلـم نـور ... ونـور الله لا يـهدى لـعـاصي
الرد
#6
[COLOR="RoyalBlue"]السلام عليكم و رحمة الله و بركاته

اعتقد لتنظيم العمل الجماعي فى المشروع, يجب اضافة ملاحظات (Comments), الكثير من الملاحظات, باستخدام ال // ![/COLOR]
الرد
#7
السلام عليكم
من أجل تقليص الكود توجد عدة حلول لاستعمال نفس الحدث لعدة المكونات:
1- أن نرفق نفس الحدث لكل المكونات بتحديد مجموعة المكونات واختيار نفس الحدث المرغوب فيه (من Object Inspector) أو:
2- إنشاء مكون TActionList وتحديد خاصية Action لكل مكون بالحدث المرغوب فيه (وبهذا نستغل خاصية ShortCut مثلا وخصائص أخرى)

وإذا كانت الأحداث متشابهة في الشكل ومختلف في القيم، فنجعل لها إجراء أو دالة مستقل (Fonction أو procedure ) ونعطيه معالم (paramters) نمرر من خلالها القيم المتغيرة.

أنا استعمل الدالة FindComponent مع خاصية Caption والاستفادة من المتغير Sender: TObject

مثلا في برنامج آلة حاسبة لا نكتب في حدث النقر على كل زر
كود :
Edit1.text := Edit1.text +Button[i].caption
حيث i تمثل رقم الزر الذي تم النقر عليه...، بل نكتفي بكتابة:
PHP كود :
Edit1.text := Edit1.text + (Sender as TButton).Caption
في أي زر ونمرر هذا الحدث لباقي أزرار الأرقام في الآلة الحاسبة.
ونكتب في OnKeyPress للنموذج Form1 الأمر:
PHP كود :
if key in ['0'..'9'then
    
(FindComponent('Button'Key) as TButton).Click
وهكذا نختصر العشرات من الأسطر.

ولا ننسى عندما نريد وضع عشرة مكونات TButton دفعة واحدة، ننقر على الزر مع الضغط على مفتاح Shift ثم ننقر على النموذج Form1 عشرة مرات.

أيضا ما يلاحظ كثيرا استعمال مثل:
كود :
if CheckBox1.Checked = True then
  Edit1.Visible := True else  Edit1.Visible := False;
ويمكن اختصاره بـ:
PHP كود :
Edit1.Visible := CheckBox1.Checked 

انتظروا...Smile فاتني التنبيه على أمر مهم جداما يحدث، أحيانا نريد تجربة مكون ما وعند إضافة بعض مكونات في النموذج (Form) يضيف Delphi اسم الوحدة العائدة لذلك المكون، ولكن عند حذفها لا يحذفها الدلفي فيبقى اسم الوحدة في قائمة Uses يثقل حجم البرنامج وقد يستغرب البعض لذلك.
فلا تنسى أن تحذف اسم الوحدات غير المستعملة في برنامجك.

الموضوع مهم، وهناك أشياء كثيرة يمكن قولها في هذا الشأن بعضها أكثر أهمية مما ذكرت، حاليا هذا ما يحضرني الآن.
والله أعلم.
شكرا كثيرا.
الرد
#8
إقتباس : وضع افكار و طرق صحيحة و جيدة لتنظيم مشروع دلفي و جعله احتراف

واجهة الدالفى ايضا تساعد فى تنضيم المشروع . كل واحد يعمل فى البيئة التى تريحه .
انا افضل ان تكون واجهة الدالفى على هذا الشكل ... احسن من الواجهة الافتراضية . Smile

[صورة: sanstitreh.jpg]

خارج الموضوع Big Grin
الرد
#9
السلام عليكم
من المهم معرفة الحجم الذي يحجزه البرنامج من الذاكرة (لا أقصد حجم الملف التنفيذي)، وكذلك استعمال المكونات والأكواد الأصغر قدر الإمكان.
فلا ننسى مراقبة الحجم الذي يحجزه البرنامج من الذاكرة (ننظر في Task Manager باستمرار)
في الصورة حجم مشروع جديد فارغ:

[صورة: memoryt.jpg]
الرد
#10
السلام عليكم
من الطرق التي أستعملها هو كتابة أفكار في ورقه و من الاحسن أن يتوفر لدينا كناش و قلم في الجيب لي عدم تضييع الافكار عندما تكون في الباس أو قبل النوم...إلخ
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم