09-01-2009, 09:18
|
المشاركة رقم: 1 | | المعلومات | | الكاتب: | | | اللقب: | :: عضو محترف :: | | الصورة الرمزية | | | | البيانات | | التسجيل: | Jul 2008 | | العضوية: | 188848 | | المشاركات: | 613 [+] | | بمعدل : | 0.35 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | المنتدى :
منتدى الدلفي شرح برمجة بعض البرامج المشهورة والمفيدة بالدلفي ,, 
اليوم قلت أعمل لكم موضوع يكون سهل و ممتع في نفس الوقت و هو برمجة بعض البرامج المعروفة
مثل Run و ساعة و آلة حاسبة و مصور للشاشة (طلب أخي moh__) ووو إلخ ... 
و بإسم الله نبدأ بـ Run :
أولاا نفتح الدلفي و مشروع جديد من نوع (Application) مثل هذه الصورة : 
و الآن أدرج و سمي الكائنات مثل هذه الصورة : 
و تذكر أن تعملها مثل برنامج تشغيل الويندوز ,,
المهم بعد أن تعدل على الكائنات نبدأ بكتابة الشيفرة ( المرحلة المفضلة عندي )
أولاا لا تنسى أن تصرح في Uses و الآن ضع هذه الشيفرة في زر Ok كود: shellexecute(0,nil,pchar(combobox1.Text),nil,nil,1);
combobox1.Items.Add(combobox1.text); و هذه الشيفرة في زر Cancel كود: application.Terminate; و هذه الشيفرة في زر Browser كود: cd.Execute;
if cd.FileName <> '' then
combobox1.Text:=cd.FileName; و في Timer كود: if combobox1.Text = '' then
button1.Enabled:=false else
button1.Enabled:=true; و في combobox1 الحدث Keypress هذه كود: if key=#13 then begin
shellexecute(0,nil,pchar(combobox1.Text),nil,nil,1);
combobox1.Items.Add(combobox1.text);
end; و لا تنسى أن تسمي Opendialog بـ cd
و تضبط Intreval الخاصة بـ Timer على 50 أو 100
و في الآخر جرب و رد علي ,,
و هذه صورة توضح الفرق Run التي برمجناها و Run للويندوز : 
ههههه أظن لو Microsoft لن تكشفها هه
و هذا السورس كود : هــــــــــــــــــــــــــنـــــــــــــا و أي أخطاء في هذا الدرس أرجو تنبيهي ,, 
البرنامج الثاني ( ساعة ) :
أولاا نفتح الدلفي و مشروع جديد من نوع (Application) مثل هذه الصورة 
و ندرج و نعدل الكائنات مثل هذه الصورة : 
و الآن حان وقت كتابة الشيفرة :
شيفرة Timer كود: label1.Caption:='Time : ' + timetostr(time);
label2.Caption:='Date : ' + datetostr(date); و شيفرة التعديل على الوقت و التاريخ :
نعرف أولا بعض الأشياء و نضع هذه قبل Begin كود: var
SystemTime: TSystemTime;
NewTime, NewDate: string; و الآن تحت Begin كود: if (edit1.text = '' ) or (edit2.Text = '' ) then
MessageDlg('Please Insert New Time and Date first ! / SAIF5',mtwarning,[mbOk],0) else begin
NewTime := edit1.text;
NewDate := edit2.text;
DateTimeToSystemTime(StrToDate(NewDate) + StrToTime(NewTime), SystemTime);
SetLocalTime(SystemTime);
end;
و مبروووك عليك البرنامج الجديد ههه
و هذا السورس كود : هـــــــــــــــــــــنــــــــــــا و أي أخطاء في هذا الدرس أرجو تنبيهي ,, 
البرنامج الثالث ( آلة حاسبة )
أولاا نفتح الدلفي و مشروع جديد من نوع (Application) مثل هذه الصورة 
و ندرج و نعدل الكائنات مثل هذه الصورة : 
و الآن حان وقت البرمجة ,,
أولاا في زر = نكتب هذه الشيفرة : كود: if (edit1.Text = '') or (edit2.Text = '') then
MessageDlg('Please Insert Numbers First ! / SAIF5',mtinformation,[mbOk],0)
else if RadioButton1.Checked = true then
label1.Caption:=floattostr(strtofloat(edit1.Text) + strtofloat(edit1.Text))
else if RadioButton2.Checked = true then
label1.Caption:=floattostr(strtofloat(edit1.Text) - strtofloat(edit1.Text))
else if RadioButton3.Checked = true then
label1.Caption:=floattostr(strtofloat(edit1.Text) * strtofloat(edit1.Text))
else if RadioButton4.Checked = true then
label1.Caption:=floattostr(strtofloat(edit1.Text) / strtofloat(edit1.Text)); و لكي نتجنب حدث أخطاء نكتب في حدث Keypress الخاص بـ Edit1 و Edit2 هذه الشيفرة : كود: if (key <#48) or (key >#57) then
if key<>#8 then
begin
key:=#0;
end; طبعاا هذه الشيفرة لا تسمح إلا بكتابة الأرقام فقط !
و هذا السورس كود : هــــــــــــــــــــنــــــــــــــــا و أي أخطاء في هذا الدرس أرجو تنبيهي ,, 
البرنامج الرابع ( مصور الشاشة ) :
طبعاا هذا الدرس الخاص بتصوير الشاشة عملته للأخ moh__ لأنه طلب مني ذلك في قسم الفيجوال بيسك ,,
و هذا الدرس إهداء له , و أيضاا لجميع الأعضاء و المشرفين القائمين على هذا المنتدى العزيز ,,
المهم , أولاا نفتح الدلفي و مشروع جديد من نوع (Application) مثل هذه الصورة 
و ندرج و نعدل الكائنات مثل هذه الصورة : 
و الآن حان وقت البرمجة ,,
أولاا راح نضع هذه procedure في هذا المكان لمن الذي لا يعرف ,, 
و هذه هي : كود: {Procedure ScreenShot version 0.0.1
Codey BY SAIF5 !}
procedure ScreenShot(DestBitmap : TBitmap) ;
var
DC : HDC;
begin
DC := GetDC (GetDesktopWindow) ;
try
DestBitmap.Width := GetDeviceCaps (DC, HORZRES) ;
DestBitmap.Height := GetDeviceCaps (DC, VERTRES) ;
BitBlt(DestBitmap.Canvas.Handle, 0, 0, DestBitmap.Width, DestBitmap.Height, DC, 0, 0, SRCCOPY) ;
finally
ReleaseDC (GetDesktopWindow, DC) ;
end;
end; و طبعا الآن راح نستدعيها من زر التصوير , يعني هذه الشيفرة في زر Capture
أولاا قبل Begin و الآن بعد Begin كود: b := TBitmap.Create;
try
ScreenShot(b) ;
Image1.Picture.Bitmap.Assign(b) ;
finally
b.FreeImage;
FreeAndNil(b) ;
end; و جرب و شوف سرعة التصوير !!!
فقط و طبعا إذا أراد أحد يعمل تصوير فيديو يضع الشيفرة السايقة في Timer و خلاااص ,,
و هذا السورس كود : هــــــــــــنـــــــــــــا و أي أخطاء في هذا الدرس أرجو تنبيهي ,, 
و الله كنت راح شرح المزيد مثل عمل برنامج تشغيل صوتيات mp3 و عمل الإيديت سيرفر و تغيير الأيقونات وو ..
لكني هذه الأيام مشغول قليلاا لذلك قلت مواضيعي في هذا القسم , و إن شاء الله لم أكون فاضي و رائق أنا راح أشرح بالتفصيل الممل 
و في الآخر هذه الصور إذا لم تظهر لي أحد : هــــــنــــــــــا
و هذه جميع المشروعات المستعملة في الدروس : هـــــــــــنــــــــا
و أي أحد عنده سؤال أو إستفسار في الموضوع فلا يتردد 
و الله يحفظكم جميعااااآ ,,
| توقيع : saif5 | | إنتقلت إلى برمجة الأنظمة ... الوداع يالعاصفة ,, | |
| |
09-01-2009, 03:37
|
المشاركة رقم: 2 | | المعلومات | | الكاتب: | | | اللقب: | :: عضو نشيط :: | | البيانات | | التسجيل: | Apr 2008 | | العضوية: | 168857 | | المشاركات: | 80 [+] | | بمعدل : | 0.04 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | كاتب الموضوع :
saif5 المنتدى :
منتدى الدلفي مـــــــا شــــــــــــــــــاء الـــــــــــــــــلــــــــــــــــه عـــــــلــــــــــيـــــــــــــــــــك
انت اخي دائما مبدع...
ونريد مزيد من هذه الدروس...
لأنها فعلا مفيدة...
في المرة الماضية دخلت الى قسم الدلفي...
وقلت ... ما في دروس جديدة من زمان...
قلت خير ان شاء الله...
حدثت نفسي اني ادخل لأرى اش الفيجواليّين في قسم الفيجوال بيزيك بيعملوا 
فوجتد موضوعك اول شي وفيه ذلك الشرح الرائع...
فقلت مالي الى اطلب الشرح منك يعني سامحني الله يبارك فيك اخي...
وشكرا كثيرا على تلبة طلبي...
وفعلا.. شئ مدهش...
بارك الله فيك
وعذرا مرة اخرى
والسلام عليكم
|
| |
09-01-2009, 06:15
|
المشاركة رقم: 3 | | المعلومات | | الكاتب: | | | اللقب: | :: عضو نشيط :: | | البيانات | | التسجيل: | Nov 2008 | | العضوية: | 209580 | | المشاركات: | 46 [+] | | بمعدل : | 0.03 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | كاتب الموضوع :
saif5 المنتدى :
منتدى الدلفي [align=center]مشكور يا أخ saif5
صحيح انها برامج بسيطه لكن تفيد للفهم
[/align]
|
| |
09-01-2009, 07:55
|
المشاركة رقم: 4 | | المعلومات | | الكاتب: | | | اللقب: | :: عضو مميز :: | | البيانات | | التسجيل: | Jul 2008 | | العضوية: | 190790 | | المشاركات: | 239 [+] | | بمعدل : | 0.14 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | كاتب الموضوع :
saif5 المنتدى :
منتدى الدلفي رائـــــــــع أخي سيف... بارك الله فيك..
المنتدى فعلا تحيينه ضعيف ولكن تأكدوا أن بعد بضعة أشهر سيصير قلعة لتعليم الدلفي خصوصا وإني أرى الجماعة مواظبة على الدلفي في المنتديات المتخصصة صح!?
|
| |
10-01-2009, 04:35
|
المشاركة رقم: 5 | | المعلومات | | الكاتب: | | | اللقب: | :: عضو محترف :: | | الصورة الرمزية | | | | البيانات | | التسجيل: | Jul 2008 | | العضوية: | 188848 | | المشاركات: | 613 [+] | | بمعدل : | 0.35 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | كاتب الموضوع :
saif5 المنتدى :
منتدى الدلفي
| توقيع : saif5 | | إنتقلت إلى برمجة الأنظمة ... الوداع يالعاصفة ,, | |
| |
10-01-2009, 06:46
|
المشاركة رقم: 6 | | المعلومات | | الكاتب: | | | اللقب: | .:: عضو قدير ::. | | الصورة الرمزية | | | | البيانات | | التسجيل: | Jun 2003 | | العضوية: | 11157 | | المشاركات: | 1,225 [+] | | بمعدل : | 0.34 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | كاتب الموضوع :
saif5 المنتدى :
منتدى الدلفي و الله الإبداع من صفاتك
موضوعك 5/5
تصدق شجعتني اتعلم الدلفي لأني انا من هواة الفيجوال
لكن الأن افكر بشكل جدي للإنتقال
بتمنى تعطيني نصيحتك لأني اعتز بنصائحك
| توقيع : donkey85 | | بيتك من قزاز لا ترمي الناس بحجرك لا تلعب بالنار تحرق صابيعك   | |
| |
10-01-2009, 08:11
|
المشاركة رقم: 7 | | المعلومات | | الكاتب: | | | اللقب: | :: عضو محترف :: | | الصورة الرمزية | | | | البيانات | | التسجيل: | Jul 2008 | | العضوية: | 188848 | | المشاركات: | 613 [+] | | بمعدل : | 0.35 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | كاتب الموضوع :
saif5 المنتدى :
منتدى الدلفي اقتباس:
المشاركة الأصلية كتبت بواسطة donkey85
و الله الإبداع من صفاتك
موضوعك 5/5
تصدق شجعتني اتعلم الدلفي لأني انا من هواة الفيجوال
لكن الأن افكر بشكل جدي للإنتقال
بتمنى تعطيني نصيحتك لأني اعتز بنصائحك | و الله أنت العز كله أخي العزيز donkey85 ,,
طبعاا بالنسبة للدلفي فأظن لن توجد لغة برمجة مثله في السهولة و القوة
لأن الدلفي يعطينا سهولة في التعامل مع أنظمة التشغيل و الأجهزة ووو
فالنفرض أنك تريد عمل برنامج يتعامل مع الرجستري بالفيجوال بيسك
طبعااا راح تعمل طن من الأكواد و يمكن لا يشتغل , و لكن لو نأتي للدلفي كل ما علينا هو وضع
كلمة Registry في Uses لكي نخبر الدلفي بأننا نريد أن نتعامل مع محرر التسجيل و خلاااص
نكتب إلا بعض الأسطر السهلة ,, 
و أيضا الدلفي لا يحتاج الي أي ملفات أو مكتبات عن تحويل البرنامج الي ملف تنفيذي، أما فيجوال
بيزيك فإنك تحصل على ملف تنفيذي صغير ولكن مع جيش من مكتبات الربط الديناميكي (DLL) مما يجعل
توزيع ملفات بحاجة إلي تحضير جيد ليعمل برنامجك على أي جهاز و الدلفي مثلها مثل فيجوال سي++ و جافا
لغة برمجة شيئية Full object oriend ولكن فيجوال بيزيك لم تصل إلي مثل هذه المرحلة بعد، سوف تصبح أخيرا
لغة فيجوال بيزيك مع VB .NET ولكن على حساب تغير اللغة نفسها وهذا جعل الكثير من المبرمجين يلومون
ميكروسوفت على هذه الخطوة وهناك منهم من إنتقل الي البرمجة بلغي سي++ أو دلفي حيث ان هذه اللغات
أقوي في هذا المجال.
و أنا سمعت عن الكثير ينتقل من بيئة فيجوال بيزيك إلي الدلفي ولكن لم أسمع بالعكس، وهناك الكثير من
المطورين المحترفين إنتقلو من فيجوال بيزيك إلي بيئة الدلفي ومنهم بروس مكيني Bruce McKinney وهو ألف
كتاب من أقوي الكتب الخاصة بيفجوال بيزيك ولكنه إنتقل إلي الدلفي ,,
و أريد أن أقتبس عبارة منه وهي : اقتباس: |
"Visual Basic makes the easy things easier; Delphi makes the hard things easier"
| " فيجوال بيزيك يجعل الأشياء السهلة أسهل، ولكن الدلفي يجعل الأمور الصعبة أسهل"
و أيضا عندما تريد الوصول إلي موقع معين في الذاكرة أو تتعامل مع مواقع الذاكرة مباشرة أو حتي إذا أردت أن
تتعامل مع الهاردوير مباشرة فإنك سوف تحتاج للتعامل مع مواقع المتغيرات وليس المتغيرات نفسها ولذلك سوف
تستخدم ال pointers ولكن فيجوال بيزيك لا يوجد فيها إمكانية إستخدام ال Pointers أما بالنسبة للهاردوير فإنه
بإمكانك أن تتعامل مع لغة الأسمبلي من خلال دلفي حتى تجعل أجزاء من برامجك تعمل بشكل أسرع وأقوي
ولكن فيجوال بيزيك ليس لديها الإمكانية أن تتعامل مع لغة الأسمبلي.
و الفيجوال بيزيك ليس لديها الإمكانية أن تبني مكتبات DLL ولكن بإمكانك أن تبني فيها ActiveX COM DLL أما
الدلفي فإن لها إمكانية أن تبني الإثنين وأيضا ActiveX Controls وبإستطاعك بعد ذلك إستخدامها في أي لغة
برمجة أو حتى على الإنترنت، يوجد إمكانية لبناء ActiveX Controls في الفيجوال بيزيك، ولكن المصيبة أنها لن
تعمل في حال عدم وجود مكتبات الربط الخاصة بفيجوال بيزيك وهي MSVBVM60.DLL في حال إستخدامك
للفيجوال بيزيك 6 وحجم هذا الملف أكثر من 1MB وأعتقد أنه ليس من المنطق أن تبني أكتف أكس كونترول
وتصحب معه ملف حجمة أكثر من 10 اضعاف حجم الكونترول الذي سو تبنيه !! ,,
و بالنسبة لسهولة اللغة هناك مقولة خاطئة وهي أن الفيجوال بيزيك أسهل في التعلم أما الدلفي لأنها أقوى
هي أصعب، أنا أدرس اللغتين وتقريبا في البرامج البسيطة السهولة متوفرة لكلتا اللغتين، ولكن في البرامج الكبيرة
يصبح العمل مع فيجوال بيزيك أصعب وأعتقد، و أود أن أقول لكل من جرب برمجة قواعد البيانات في فيجوال بيزيك
أنها أصعب بكثير من الدلفي , و هذا موضوع لي أنا يظهر للجميع سهولة قواعد البيانات في الدلفي : http://www.3asfh.net/vb/showthread.php?t=88294
و أيضا في مجال الأنترنت، ليس لدي الكثير من الخبرة في هذا المجال، ولكن الدلفي تعتبر قوية في هذا المجال
وهناك الكثير من المواقع التي صممت بإستخدام الدلفي وبإمكانك أن تستخدم أي تقنية للأنترنت مع الدلفي
مثل CGI, ISAPI,ASP,WEB SNAP, SOAP,XML و غيرهااآ ,,
و أهم شي إن الدلفي طورت دلفي بإستخدام الدلفي أما الفيجوال بيزيك طورت بإستخدام Visual C++ 6.0
و لا أريد أن أطيل عليك أكثر من ذلك ولكن أردت فقط أن أوضح بعض النقاط ، حتي تكون مرتاح بشكل كبير مع إختيارك إخي donkey85 ,,
و الله يحفظك ,,
| توقيع : saif5 | | إنتقلت إلى برمجة الأنظمة ... الوداع يالعاصفة ,, | |
| |
13-01-2009, 10:41
|
المشاركة رقم: 8 | | المعلومات | | الكاتب: | | | اللقب: | :: عضو محترف :: | | الصورة الرمزية | | | | البيانات | | التسجيل: | Sep 2008 | | العضوية: | 200923 | | المشاركات: | 585 [+] | | بمعدل : | 0.34 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | كاتب الموضوع :
saif5 المنتدى :
منتدى الدلفي
| توقيع : Der Tunisiano | | [align=center] [/align]
[align=center] [/align] ©•*˜ÅиŤİ √ĭяцŝ©•*˜ HTTP@donkey.ExE | |
| |
14-01-2009, 05:21
|
المشاركة رقم: 9 | | المعلومات | | الكاتب: | | | اللقب: | :: عضو محترف :: | | الصورة الرمزية | | | | البيانات | | التسجيل: | Jul 2008 | | العضوية: | 188848 | | المشاركات: | 613 [+] | | بمعدل : | 0.35 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | كاتب الموضوع :
saif5 المنتدى :
منتدى الدلفي اقتباس:
المشاركة الأصلية كتبت بواسطة Der Tunisiano
الف شكر يا باشا | لا شكر على وااجب ,,
و منووررر أخي Der Tunisiano
| توقيع : saif5 | | إنتقلت إلى برمجة الأنظمة ... الوداع يالعاصفة ,, | |
| |
15-01-2009, 06:15
|
المشاركة رقم: 10 | | المعلومات | | الكاتب: | | | اللقب: | مشرف اختراق البريد والأجهزة | | البيانات | | التسجيل: | Aug 2007 | | العضوية: | 142593 | | المشاركات: | 3,851 [+] | | بمعدل : | 1.84 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | كاتب الموضوع :
saif5 المنتدى :
منتدى الدلفي جزاك الله كل خير اخي الغالي ,, لكن يا ليت لو سمحت شرح بسيط للأكواد ,,
وشكرا
| توقيع : Dr.MOT | ------------------------------- ------------------------------- يعلم الله الظروف التي أمر بها والتي تجبرني على الانقطاع عن المنتدىآ . . . أسأل الله أن يعجل الفرج | |
| |
15-01-2009, 07:54
|
المشاركة رقم: 11 | | المعلومات | | الكاتب: | | | اللقب: | :: عضو محترف :: | | الصورة الرمزية | | | | البيانات | | التسجيل: | Jul 2008 | | العضوية: | 188848 | | المشاركات: | 613 [+] | | بمعدل : | 0.35 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | كاتب الموضوع :
saif5 المنتدى :
منتدى الدلفي اقتباس:
المشاركة الأصلية كتبت بواسطة Dr.MOT
جزاك الله كل خير اخي الغالي ,, لكن يا ليت لو سمحت شرح بسيط للأكواد ,,
وشكرا | يا أهلااا بالدكتور ,,
و الله أنا كتبت الأكواد بدون شرح لأني كنت مستعجل قليلااآ , و لكن أنا قلت في آخر الموضوع : اقتباس:
و أي أحد عنده سؤال أو إستفسار في الموضوع فلا يتردد | لكي أي شخص يواجه مشكلة يخبرني و أنا راح أشرح بتفصيل أكثر ,,
المهم أنا سوف أشرح الأكواد :
أولااا في درس عمل Run و أول كود بالضبط هو طبعا هذه توضع في Uses لكي نستطيع فتح أو تشغيل أي شي في النظام أو الأنترنت ,,
ثاني كود : كود: shellexecute(0,nil,pchar(combobox1.Text),nil,nil,1);
combobox1.Items.Add(combobox1.text); في أول سطر قمنا بتحديد الإسم أو الوصلة التي سوف تشغل و من ثم شغلناها
في ثاني سطر قمنا بإضافة الإسم المكتوب في Combobox1 إلى Items الخاصة به ,,
الكود الثالث : كود: application.Terminate; طبعاا أظن لا تحتاج شرح و هي لغق البرنامج و يمكن إستبدالها بـ : أو فقط : الكود الرابع : كود: cd.Execute;
if cd.FileName <> '' then
combobox1.Text:=cd.FileName; في السطر الأول قمنا بتشغيل أمر الفتح
و السطر الثاني و الثالث قمنا بإعطاء شرط و هو إذا كان OpenDialog ليس فارغ إذا يتم إضافة الإسم في Combobox1 ,,
الكود الخامس : كود: if combobox1.Text = '' then
button1.Enabled:=false else
button1.Enabled:=true; السطر الأول و الثاني و الثالث قمنا بإعطاء شرط و هو إذا كان Combobox1 فارغ إذا يصبح الزر غير مفعل و إلا يصبح مفعل ,,
الكود السادس و الأخير : كود: if key=#13 then begin
shellexecute(0,nil,pchar(combobox1.Text),nil,nil,1);
combobox1.Items.Add(combobox1.text);
end; في السطر الأول أعطينا شرط و هو إذا تم الضغط على أنتري إذا في السطر الثاني يتم تشغيل ما المكتوب في Combobox1
و السطر الثالث يتم إضافة المكتوب في Combobox1 إلى Items الخاصة به ,, 
الآن في درس عمل الساعة ,,
الكود الأول : كود: label1.Caption:='Time : ' + timetostr(time);
label2.Caption:='Date : ' + datetostr(date); في السطر الأول يتم إظهار الوقت في Label1
و في السطر الثاني يتم إظهار التاريخ في Label2
الكود الثاني : كود: var
SystemTime: TSystemTime;
NewTime, NewDate: string; طبعا في السطر الأول قمنا بتعريف SystemTime على TSystemTime
و السطر الثاني NewTime و NewDate على String (يعني قيم حرفية) ,,
الكود الثالث : كود: if (edit1.text = '' ) or (edit2.Text = '' ) then
MessageDlg('Please Insert New Time and Date first ! / SAIF5',mtwarning,[mbOk],0) else begin
NewTime := edit1.text;
NewDate := edit2.text;
DateTimeToSystemTime(StrToDate(NewDate) + StrToTime(NewTime), SystemTime);
SetLocalTime(SystemTime);
end; في السطر الأول أعطينا شرط و هو إذا كانت Edit1 أو Edit2 فارغة إذا
في السطر الثاني يتم إظهار رسالة أو يتم البدء
في السطر الثالث و هو جعل NewTime تساوي Edit1 ( يعني تأخذ منها الوقت الجديد )
و في السطر الرابع جعل NewDate تساوي Edit2 ( يعني تأخذ منها الوقت الجديد )
و في السطر الخامس و السادس هو أمر التغيير ,, 
في درس الآلة الحاسبة ,,
الكود الأول : كود: if (edit1.Text = '') or (edit2.Text = '') then
MessageDlg('Please Insert Numbers First ! / SAIF5',mtinformation,[mbOk],0)
else if RadioButton1.Checked = true then
label1.Caption:=floattostr(strtofloat(edit1.Text) + strtofloat(edit1.Text))
else if RadioButton2.Checked = true then
label1.Caption:=floattostr(strtofloat(edit1.Text) - strtofloat(edit1.Text))
else if RadioButton3.Checked = true then
label1.Caption:=floattostr(strtofloat(edit1.Text) * strtofloat(edit1.Text))
else if RadioButton4.Checked = true then
label1.Caption:=floattostr(strtofloat(edit1.Text) / strtofloat(edit1.Text)); طبعااا الكود هذا سهل جداااا
في السطر الأول قمنا بإعطاء شرط و هو إذا كانت Edit1 أو Edit2 فارغة إذا يتم إظهار رسالة
في السطر الثاني و إلا إذا كانت Edit1 أو Edit2 ليست فارغة إذا
نقوم بإعطاء شرط جديد في السطر الثالث و هو إذا كانت RadioButton1 معلمة من قبل المستخدم
إذا يتم جمع ما المكتوب في Edit1 و Edit2 و يتم إظهار النتيجة في Label1
و إلا إذا كانت RadioButton2 معلمة من قبل المستخدم إذا يتم طرح ما المكتوب في Edit1 و Edit2
و إظهار النتيجة في Label1
و إلا إذا كانت RadioButton3 معلمة من قبل المستخدم إذا يتم ضرب ما المكتوب في Edit1 و Edit2
و إظهار النتيجة في Label1
و إلا إذا كانت RadioButton4 معلمة من قبل المستخدم إذا يتم تقسيم ما المكتوب في Edit1 و Edit2
و إظهار النتيجة في Label1 ,,
الكود الثاني : كود: if (key <#48) or (key >#57) then
if key<>#8 then
begin
key:=#0;
end;
طبعا في السطر الأول قمنا بإعطاء شرط و هو إذا تم الضغط على مفتاح من لوحة المفاتيح أقل من #48 أو أكبر من #57 إذا نعطي شرط
في السطر الثاني و هو إذا تم الضغط على مفتاح من لوحة المفاتيح أقل أو أكبر من #8 إذا يتم البدء
في السطر الرابع و هو جعل الكتابة في النموذج 0 ( يعني لا يستطيع الكتابة ) ,, 
في درس تصوير الشاشة ,,
الكود الأول : كود: {Procedure ScreenShot version 0.0.1
Codey BY SAIF5 !}
procedure ScreenShot(DestBitmap : TBitmap) ;
var
DC : HDC;
begin
DC := GetDC (GetDesktopWindow) ;
try
DestBitmap.Width := GetDeviceCaps (DC, HORZRES) ;
DestBitmap.Height := GetDeviceCaps (DC, VERTRES) ;
BitBlt(DestBitmap.Canvas.Handle, 0, 0, DestBitmap.Width, DestBitmap.Height, DC, 0, 0, SRCCOPY) ;
finally
ReleaseDC (GetDesktopWindow, DC) ;
end;
end; طبعااا هذه procedure التصوير ,,
الكود الثاني : تعريف B على TBitmap
الكود الثالث و الأخير : كود: b := TBitmap.Create;
try
ScreenShot(b) ;
Image1.Picture.Bitmap.Assign(b) ;
finally
b.FreeImage;
FreeAndNil(b) ;
end; في السطر الأول b تساوي إنشاء TBitmap
في السطر الثاني محاولة
في السطر الثالث إلتقاط من b التي عرفناها من الأول
في السطر الرابع إضافة b إلى Image1.Picture.Bitmap.Assign طبعا بعد التصوير و هذا لكي نظهر الصورة فيها
في السطر الخامس إنهاء
في السطر السادس و السابع الخروج من b ,, 
و خلصنا شرح الأكواد 
الحمد لله ,,
| توقيع : saif5 | | إنتقلت إلى برمجة الأنظمة ... الوداع يالعاصفة ,, | |
| |
16-01-2009, 01:51
|
المشاركة رقم: 12 | | المعلومات | | الكاتب: | | | اللقب: | :: عضو نشيط :: | | البيانات | | التسجيل: | Apr 2008 | | العضوية: | 168857 | | المشاركات: | 80 [+] | | بمعدل : | 0.04 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | كاتب الموضوع :
saif5 المنتدى :
منتدى الدلفي نعم اخي الكريم...
ما شاء الله... في الحقيقة الشرح رائع...
شكرا لك
لكن عندي سؤال في ال ماذا يعني ال 0 هنا ؟
مذا يعدث لو وضعت مثلا 1 او 2 مكانه ؟
بارك الله فيك
|
| |
16-01-2009, 04:28
|
المشاركة رقم: 13 | | المعلومات | | الكاتب: | | | اللقب: | :: عضو محترف :: | | الصورة الرمزية | | | | البيانات | | التسجيل: | Jul 2008 | | العضوية: | 188848 | | المشاركات: | 613 [+] | | بمعدل : | 0.35 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | كاتب الموضوع :
saif5 المنتدى :
منتدى الدلفي اقتباس:
ماذا يعني ال 0 هنا ؟
مذا يعدث لو وضعت مثلا 1 او 2 مكانه ؟
بارك الله فيك
| أهلاا بك أخي moh__ ,,
طبعاا لو ضللت الكلمة في الدلفي و ضغطت F1 كنت سوف تجد الإجابة على سؤالك مثل هذه الصورة ,, 
لكن أنا سوف أشرح لك ماهي , طبعاا هي procedure لا تفعل شي مهم فقط تنهي عمل البرنامج عن طريق ExitCode
و طبعاا يجب أن يكون من نوع Integer و ليس String ...
و أيضا لو تضع عدد أكثر من 0 فهو شي عاادي لأن كل الأعداد تقوم بإغلاق التطبيق
فقط , و لكن أنا أنصحك بـ application.Terminate لأنها تقوم بإغلاق كل التطبيقات المتبعة للبرنامج ,,
و هذا و الله أعلم ,,
| توقيع : saif5 | | إنتقلت إلى برمجة الأنظمة ... الوداع يالعاصفة ,, | |
| |
17-01-2009, 08:52
|
المشاركة رقم: 14 | | المعلومات | | الكاتب: | | | اللقب: | مشرف اختراق البريد والأجهزة | | البيانات | | التسجيل: | Aug 2007 | | العضوية: | 142593 | | المشاركات: | 3,851 [+] | | بمعدل : | 1.84 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | كاتب الموضوع :
saif5 المنتدى :
منتدى الدلفي السلام عليكم ,,
بارك الله فيك اخي الكريم ,,
خبير دلفي ينصح بعدم استخدام لأنها لا تحذف مخلفات البرنامج في الذاكرهـ العشوائيه ,, مما يسبب ثقل على الجهاز ( كما قال ) ,,
وبالله التوفيق
| توقيع : Dr.MOT | ------------------------------- ------------------------------- يعلم الله الظروف التي أمر بها والتي تجبرني على الانقطاع عن المنتدىآ . . . أسأل الله أن يعجل الفرج | |
| |
20-01-2009, 02:31
|
المشاركة رقم: 15 | | المعلومات | | الكاتب: | | | اللقب: | :: عضو نشيط :: | | البيانات | | التسجيل: | Apr 2008 | | العضوية: | 168857 | | المشاركات: | 80 [+] | | بمعدل : | 0.04 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | كاتب الموضوع :
saif5 المنتدى :
منتدى الدلفي نعم ,,, بارك الله فيكم..
اجابة واضحة
|
| | |