![]() |
|
كيف أطبق هذا الكود على جميع النوافذ ؟ - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : كيف أطبق هذا الكود على جميع النوافذ ؟ (/showthread.php?tid=198) |
كيف أطبق هذا الكود على جميع النوافذ ؟ - delphi4you - 13-05-2008 السلام عليكم ورحمة الله وبركاته لقد كنت أبحث في دلفي فذهبت الى منتدى الفريق العربي للبرمجه ووجدت موضوعا عن كيفيه اخراج النافذه بشكل جميل وهذا هو الكود إذا لم يخب ظني بأن الغالبيه يعرفونه من زوآر الفريق العربي قسم الدلفي كود : {
The AnimateWindow function enables you to produce
special effects when showing or hiding windows.
Mit der AnimateWindow Funktion kann man spezielle Effekte
erzeugen beim Zeigen, Unsichtbarmachen (hide) einer Form.
}
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.BringToFront;
AnimateWindow(Form2.Handle,Trackbar1.Position, AW_BLEND);
Form2.Show;
{
The 3. parameter can be one or more of the following values:
Der 3. parameter kan folgende Werte annehmen:
AW_BLEND : Uses a fade effect
AW_SLIDE : Uses slide animation.
AW_ACTIVATE : Activates the window
AW_HIDE : Hides the window.
AW_CENTER : Makes the window appear to collapse inward
AW_HOR_POSITIVE : Animates the window from left to right.
AW_HOR_NEGATIVE : Animates the window from right to left
AW_VER_POSITIVE : Animates the window from top to bottom
AW_VER_NEGATIVE : Animates the window from bottom to top
}
end;حسنا لدي برنآمج يتكون من 13 فورم أرغب بتطبيق الكود AW_BLEND في الأعلى على جميع النوآفذ دون أن أذهب يدويا وأطبقه على كل نافذه هل يستوجب أن أضيف شيئا الى القائمه uses وأين أضع الكود بالتحديد ؟ وجزآكم الله خيرا أجمعين كيف أطبق هذا الكود على جميع النوافذ ؟ - merouane - 13-05-2008 إقتباس :دون أن أذهب يدويا وأطبقه على كل نافذه وضح أكثر من فضلك كيف أطبق هذا الكود على جميع النوافذ ؟ - delphi4you - 14-05-2008 أهلا وسهلا بك أخي مروآن لنفرض أن لدي 13 اطارا او فورما ً لكي أجعل كل اطار يظهر بشكل جميل لابد أن أضع هذا الكود في [ كل ]اطار من الاطارات الـ 13 هل توجد طريقه لكي أطبق هذا الكود على كل النوافذ الـ 13 من مرة واحد دون أن اذهب لكل فورم او اطار واكتب داخله الكود اللي يظهره بشكل جميل ؟ كيف أطبق هذا الكود على جميع النوافذ ؟ - snyper - 14-05-2008 ممكن تستخدم الكود كود : var i: integer;
begin
for i:=1 to Application.ComponentCount -1 do
begin
if (Application.Components[i] is TForm) then
begin
Tform(Application.Components[i]).BringToFront;
AnimateWindow(Tform(Application.Components[i]).Handle,Trackbar1.Position, AW_BLEND);
Tform(Application.Components[i]).Show;
end;
end;
end;كيف أطبق هذا الكود على جميع النوافذ ؟ - delphi4you - 14-05-2008 شكرا لك أخي سنايبر هل من الممكن أن تعطيني نفس الكود لاكن من دون أن يحتوي على Trackbar1 ولك ألف شكر كيف أطبق هذا الكود على جميع النوافذ ؟ - snyper - 14-05-2008 يمكنك استبدال الـ(Trackbar1.Position) باي رقم بالميلي ثانية اي 1000 تجعل ظهور الفورم اللاحقة يستغرق 1 ثانية تعمل مثل sleep كيف أطبق هذا الكود على جميع النوافذ ؟ - merouane - 14-05-2008 صراحة لم أفهم بالضبط ما تريد لكن سأحاول الإجابة توجد طريقة (الطرق تختلف من مبرمج إلى أخر) هي باستغلال غرضية التوجه في الدلفي و العمل مع OnShow 1. بعد إنشاء التطبيق 2. انشئ فورم جديد و اذهب إلى OnShow و اكتب ما تريد مثلا كود : procedure TForm2.FormShow(Sender: TObject);
begin
(Sender as TForm).BringToFront;
AnimateWindow((sender as TForm).Handle,1000, AW_BLEND);
end;3. أنشئ فورم اخرى ستكون Form3 (لا يهم يمكنك تغييره فقط عليك فهم المبدأ) 4. في السورس نغير ما يلي (لاحظ جيدا اللون الأزرق) كود : uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, [color=Blue]unit2[/color];
type
TForm3 = class([color=Blue]TForm2[/color])هناك طريقة اتوماتيكية ![]() أنظر الصورة المرفقة المصغرة في حال عدم ظهور الصورة العمليتين 3 و 4 تتكرران عند الحاجة لإنشاء فورم جديد 5. الآن في Form1 فقط ننادي الفورم التي نريدها بدون كتابة شفرة الظهور الخاصة كود : procedure TForm1.Button1Click(Sender: TObject);
begin
Form3.Show;
end;بالطبع المكونات تضاف للفورم الخاص به ولا تضاف إلى الفورم Form2 آمل أنه المطلوب بالتوفيق
كيف أطبق هذا الكود على جميع النوافذ ؟ - snyper - 14-05-2008 طريقة جميلة merouane وتقوم بالعمل بالشكل المطلوب |