المشاركات : 71
المواضيع 38
:
: 0
الإنتساب : Aug 2010
السلام عليكم
في مشروعي قمت بإنشاء splashscreen لبرنامج وفمت بإضافة عليها progressBar لتبين حالة التقدم
عندما أقوم بالمعاينة تظهر سبلاش سكرين لكن لا يظهر حالة التقدم
هده محاولتي
كود :
egin
splashscreen:=Tsplashscreen.Create(Application);
try
splashscreen.Show;
splashscreen.Timer1.Enabled:=true;
splashscreen.ProgressBar1.Position:=splashscreen.ProgressBar1.Position+1;
Application.Initialize;
splashscreen.Update;
sleep(10000);
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm4, Form4);
Application.CreateForm(TForm5, Form5);
Application.CreateForm(TForm6, Form6);
Application.CreateForm(TForm7, Form7);
Application.CreateForm(TForm8, Form8);
Application.CreateForm(TForm9, Form9);
Application.CreateForm(TForm10, Form10);
splashscreen.Hide;
finally
Application.Run;
end;
splashscreen.Free;
end.
المشاركات : 3,703
المواضيع 101
:
: 579
الإنتساب : Feb 2008
وعليكم السلام ورحمة الله
مما فوق اراك استخدمت Timer فماذا كتبت به (الحدث OnTimer) ؟
المشاركات : 71
المواضيع 38
:
: 0
الإنتساب : Aug 2010
كتب في الحدث OnTimer
كود :
ProgressBar1.Position:=ProgressBar1.Position+1
المشاركات : 3,703
المواضيع 101
:
: 579
الإنتساب : Feb 2008
طريقة أو حل سريع لكنه ليس انيق!
عدد الForm لديك مثلا 10 يكون :
كود :
[COLOR="Red"]
Procedure Update;
Begin
splashscreen.ProgressBar1.Position:=splashscreen.ProgressBar1.Position+1;
Sleep(Random(400));
end;[/COLOR]
begin
splashscreen:=Tsplashscreen.Create(Application);
try
splashscreen.Show;
[color=red]//[/color]splashscreen.Timer1.Enabled:=true;
[color=red] splashscreen.ProgressBar1.MAX:=10;[/color]
splashscreen.ProgressBar1.Position:=[color=Red]0[/color];
splashscreen.Update;
Application.Initialize;
splashscreen.Update;
[color=red]//[/color]sleep(10000);
Randomize;
Application.CreateForm(TForm1, Form1);[color=red]Update;[/color]
Application.CreateForm(TForm2, Form2)[color=red];Update[/color];
Application.CreateForm(TForm3, Form3);[color=red]Update;[/color]
Application.CreateForm(TForm4, Form4);[color=Red]Update;[/color]
Application.CreateForm(TForm5, Form5);[color=red]Update;[/color]
Application.CreateForm(TForm6, Form6);[color=red]Update;[/color]
Application.CreateForm(TForm7, Form7);[color=red]Update;[/color]
Application.CreateForm(TForm8, Form8);[color=red]Update;[/color]
Application.CreateForm(TForm9, Form9);[color=red]Update;[/color]
Application.CreateForm(TForm10, Form10);[color=red]Update;[/color]
splashscreen.Hide;
finally
Application.Run;
end;
splashscreen.Free;
end.
المشاركات : 71
المواضيع 38
:
: 0
الإنتساب : Aug 2010
شكرا أخ B.M.AbdelAziZ
لكن لو سمحت شرح بسيط للكود
المشاركات : 3,703
المواضيع 101
:
: 579
الإنتساب : Feb 2008
التعديل بسيط، بدلا من استخدام مكون Timer (يمكنك حذفه) انشات Function اسميتها Update تقوم بتحدث قيمة Position المكون ProgressBar باضافة واحد، كما هو مكتوب فوق بالاحمر
نضع بالخاصية MAX للمكون ProgressBar عدد الForms كما هو بمثالنا 10
نحدد الموضع Position بصفر
بعد انشاء كل Form نستدعي Update التي تقوم بما سبق (اضافة واحد لProsition مكون ProgressBar )
لاحظ :ناخذ رقم عشوائي من 400 وننتظر قليلا Sleep حتى لايكون التحديث سريعا جدا
اي شيئ اخر حدده وان شاء الله اجيبك
المشاركات : 71
المواضيع 38
:
: 0
الإنتساب : Aug 2010
شكرا أخ B.M.AbdelAziZ على الردود
جربت الكود وهو شغال لكن مازلت لم أفهم شيئ
الخاصية max تعني القيمة القصوى للمكون pro bar من المفروض أن تكون 100 لكن أنت وضعت
كود :
splashscreen.ProgressBar1.MAX:=10;
المشاركات : 628
المواضيع 72
:
: 211
الإنتساب : Jun 2010
abdelali91 كتب :splashscreen.ProgressBar1.MAX:=10
القيمة القصوى ( ProgressBar1.MAX) انت من تتحكم فيها ان اردت ان تستعمل 100 ضع في ال [PHP]Procedure Update
كود :
Begin
splashscreen.ProgressBar1.Position:=splashscreen.ProgressBar1.Position+[color=Red]10[/color];
Sleep(Random(400));
وضع Procedure بعد كل create للفورم يقوم بإستدعاء هذه Procedure المسماة Update
عذرا على التطفل
أدبني الدهر فأراني نقص عقلي وإذا ما ازددت علما زادني علما بجهلي
المشاركات : 71
المواضيع 38
:
: 0
الإنتساب : Aug 2010