![]() |
|
كيف أصنع شاشه ترحيبيه لبرآمجي ؟ - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : كيف أصنع شاشه ترحيبيه لبرآمجي ؟ (/showthread.php?tid=173) الصفحات:
1
2
|
كيف أصنع شاشه ترحيبيه لبرآمجي ؟ - merouane - 04-05-2008 أضف windows بعد Forms كود : uses
Forms, [color=Red]windows[/color],هذا السطر مكرر احذف أحدهما كود : Application.CreateForm(TForm1, Form1);كود : Application.CreateForm(TSplashscreen, Splashscreen);كيف أصنع شاشه ترحيبيه لبرآمجي ؟ - محمد عبد العزيز - 04-05-2008 professor DeXTeR كتب :جرب وضع هذه التعلميه ما هذا !!! هده برمجة وليس حقل تجارب bilgads كتب :يا أخي يجب عليك ان لا تدع فراغ بين sleep والقوسيا اخي يمكن وصع فراغ او عشرة دلفي يهمل الفراغات والمسافات يا جماعة من لا يعرف لا يجيب ويترك السؤال لغيره صاحب السؤال يريد التعلم فلا تزيدوه اخطاء وتدخلوه في متاهات delphi4arab كتب : Sleep معرفة في Windows والخطأ بالصورة لانك نست كتابة Windows في Uses مباشرة تحت Forms 1000 تعني ثانية لكي يظهر SlpashScreen ثلاث ثوان مثلا غيرها ب3000 كيف أصنع شاشه ترحيبيه لبرآمجي ؟ - مهدي - 04-05-2008 نعم يجب إضافة windows إلى uses لكي تعمل الوظيفة sleep. كيف أصنع شاشه ترحيبيه لبرآمجي ؟ - snyper - 05-05-2008 تعليمة sleep موجودة في المكتبتين SysUtils و Windows لكن هل من فرق بينهما الاثنين من kernel32 كيف أصنع شاشه ترحيبيه لبرآمجي ؟ - merouane - 08-05-2008 السلام عليكم snyper كتب :تعليمة sleep موجودة في المكتبتين SysUtils و Windows طبعا يوجد فرق (لا شيء مكرر) .. واشكرك على دقة ملاحظتك سأشرح بطريقتين : الاولى بديهية ، والثانية تجربة توضيحية بيديهيا: نفتح الوحدتين SysUtils و Windows (وذلك بـ CTRL + الضغط بالزر الأيسر للفأرة على كلمة SysUtils - نفس الشيء لـ Windows ) ثم نقرأ ما كتب من طرف الشركة على رأس الملفين. كود : SysUtils :
[align=center][COLOR=Blue]Delphi / Kylix Cross-Platform Runtime Library
System Utilities Unit [/COLOR]
Copyright (c) 1995-2002 Borland Softwrare Corporation [/align]كود : Windows :
[align=center][COLOR=Blue]Borland Delphi Run-time Library
Win32 API Interface Unit[/COLOR]
Copyright (c) 1985-1999, Microsoft Corporation
Translator: Borland Software Corporation[/align]لاحظ اللون الأزرق، والمعنى الأولى تتضمن إرجراءات خاصة بدلفي (هنا نستطيع الاستقلال عن ويندوز)، والثانية تتضمن إجراءات النظام أي API لنلقي نظرة على المضمون كود : SysUtils :
[color=SeaGreen]{$IFDEF MSWINDOWS}[/color] [color=Blue]في حال كان البرنامج يعمل تحت نظام ويندوز[/color]
procedure Sleep; external kernel32 name 'Sleep'; stdcall; [color=Blue]هنا نستدعي إجراء النظام العادي[/color]
[color=SeaGreen]{$ENDIF} [COLOR=Blue]أو[/color]
{$IFDEF LINUX}[/COLOR] [color=Blue]في حال كان البرنامج يعمل تحت نظام لينكس[/color]
procedure Sleep(milliseconds: Cardinal);
begin
usleep(milliseconds * 1000); [color=Blue]// usleep is in microseconds[/color] [color=Blue]اما هنا خاص بالنظام لينكس[/color]
end;
[color=SeaGreen]{$ENDIF}[/color]كود : Windows :
procedure Sleep; external kernel32 name 'Sleep'; [color=Blue]استدعاء إجراء النظام ويندوز فقط[/color]هذا بالطريقة البديهية عن طريق استكشاف VCL الأن عن طريق التجريب ، وفي الحقيقة قد تنفع كدرس في استعمال الوحدات، لكن اكتفي بوضعها هنا كرد. لا توجد مشكلة مع Sleep لأنها في الوحدتين تستعملا نفس الإجراء .. لكن هناك مثال سيرينا الفرق. لنعمل مع الإجراء Beep ، وللعلم هناك إجرائين Beep و ( Beep (dwFreq, dwDuration وفي الأغلب نحن نستعمل الأولى.. لماذا ؟؟ لأنه كود : uses
Windows, [color=Blue]سبقت[/color]
SysUtils, [color=Blue]تلغي الأولى[/color]الأن جرب و أكتب (مع العلم أن Windows API يذكر لنا أن Beep تأخذ متغيرين كما - ( Beep (dwFreq, dwDuration -) كود : uses
Windows,
SysUtils,وضع الإجراء التالي عند الضغط على زر كود : procedure TForm1.Button1Click(Sender: TObject);
begin
Beep(400,100);
end;ستفاجأ بخطا في التجميع Compilation وذلك بسبب أن الوحدة المذكورة أولا ستطغى عليها (أو تلغيها) الوحدة التالية ، الأن جرب كود : uses
SysUtils,Windows, . . . .
. . . . . . . . . .
procedure TForm1.Button1Click(Sender: TObject);
begin
Beep(400,100);
end;الآن كل شيء يعمل . هنا أشعر انه قد يختلط الامر على البعض سأوضح ( Beep (400, 100 تابعة للوحدة windows وهذه الوحدة مذكورة بعد SysUtils أي تلغيها ومنه دلفي سيستعمل الإجراء الخاص بالوندوز ولن يأخذ بعين الاعتبار نظام التشغيل. هذا مثال فقط ، و لكن لو كان لدينا إجراءات متداخلة بحيث لا نضمن انها لن تلغى من وحدة ما اي بعبارة اخرى نحن نوجه دلفي أين نريد كود : uses
Windows, SysUtils, . . . . ..
. . . . . . . . . . . . . . . . . . . .
procedure TForm1.Button1Click(Sender: TObject);
begin
Windows.Beep(400,100);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
SysUtils.Beep;
end;بهذه الطريقة لن تحدث أي مشاكل عذرا للإطالة لانني فقط أحب عندما يتوفر لي الوقت ان أتقن و .. اعلًّم الاصطياد بدل تقديم السمكة. تحياتي
كيف أصنع شاشه ترحيبيه لبرآمجي ؟ - snyper - 08-05-2008 شكرا على الايضاح وكن عند ضغط CTRL + الضغط بالزر الأيمن للفأرة على كلمة sleep or Beep نجد انه ينقلنا الى مكتبة SysUtils الخاصة بدلي ولا ينقلنا الى مكتبة windows اي يولي الاهمية الى مكتبة ديلفي فلماذا عند اجراء المثال الاول يعطي خطاء في التجميع بمعنى اوضح لماذا يقوم ديلفي بربطها بالمكتبة الثانية كيف أصنع شاشه ترحيبيه لبرآمجي ؟ - merouane - 08-05-2008 snyper كتب :وكن عند ضغط CTRL + الضغط بالزر الأيمن للفأرة على كلمة sleep or Beep نجد انه ينقلنا الى مكتبة SysUtils الخاصة بدلي ولا ينقلنا الى مكتبة windows اي يولي الاهمية الى مكتبة ديلفي جرب ضع SysUtils قبل windows ثم اضغط على sleep or Beep سيأخذك إلى windows. إقتباس :فلماذا عند اجراء المثال الاول يعطي خطاء في التجميع لم أفهم السؤال ؟؟ Ala2 VB كتب :http://devala2.wordpress.com/2008/04...splash_screen/ ما قمت به صحيح .. لكن Form1 ستاخذ دائما حيزا في الذاكرة - تخيل شاشة ترحيبية تحتوي صورة ذات دقة عالية أو فيديو أو فلاش.. ألن تريد التخلص من الحجز غير النافع للذاكرة وأيضا قد تواجه بعض المشاكل -حسب البرمجة- لأن رأس البرنامج سيكون Form1 المخفية ، ونعلم في أغلب البرمجات البسيطة إذا تعطل الرأس ذهب البدن والسلام |