delphi4arab منتديات دلفي للعرب

نسخة كاملة : كيف يتم انشاء procedure خاص ب form.show
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم
كيف يكون انشاء procedureيقوم يحتوي على متغيرين الأول من نوع Tform والثاني من نوع Boolean
الهدف من procedure هو عدم التكرار
لقد حاولت بهذه الأسطر لكن يوجد خلل
ماهو الخلل والحل لتجاوزه؟
كود :
procedure myshow(t:TForm;v:boolean); begin If not v then begin t:=Tt.Create(form1); v:=true; t.Show; end else begin t.Show; end; end;
وهذا العمل الذي سأجعله في procedure
كود :
procedure TForm1.SpeedButton1Click(Sender: TObject); begin If not vFlistcandidat then begin flistcandidat:=TFlistcandidat.Create(form1); vFlistcandidat:=true; Flistcandidat.Show; end else begin Flistcandidat.Show; end; end;
حيث اذا كان الشرط vFlistcandidat:=true يقوم ب show فقط
وفي حال العكس نقوم ب flistcandidat:=TFlistcandidat.Create(form1); لانشاء flistcandidat
وعليكم السلام ورحمة الله
وضح اكثر المطلوب ، اسف لم افهمك
البرنامج يحتوي عدة واجهات forms
كلها من نوع fsMDIChild
ولتفادي انشاء الفورم أكثر من مرة في الفورم الرئيسي، بحيث اذا تم انشاء الفورم يكفي اظهاره فقط show
والهدف عدم تكرار العملية من أجل كل فورم
تفضل اخي
اظن انني فهمتك والا فانا مستعد للمحاولة ان كان هذا غير قصد
شكرا لك أخي
والآن كيف نضع هذا الحدث
كود :
procedure TForm1.btn1Click(Sender: TObject); begin if form2.Showing then Exit; Form2:=TForm2.Create(nil); form2.FormStyle:=fsMDIChild; Form2.Show; end;
في procedure به متغير tform ومناداته من أجل كل الفورمات الباقية
مثلا نسمي ال procedure باسم myshowform به متغير t:Tform
ونضع فيه الكود السابق من أجل الفورم t
قم بتحميل المثال الذي ارفقك لك "test form.7z‏"
افتح فيه الكود


إقتباس :var aform:Tform;
begin
aform:=Tform2.create(nil).......
.....
end;
مثلا ننشيء ال procedure كما يلي
كود :
procedure myshowform(f: tform); begin if f.Showing then Exit; f:=!!!!!.Create(nil); هنا المشكل f.FormStyle:=fsMDIChild; f.Show; end;
السلام عليكم
عند انشاءك لفورم جديد دلفي يقوم باضافة متغير عام الى الوحدة
PHP كود :
var
  
Form1: TForm1; 
يمكنك استخدام هذا المتغير في انشاء الفورم لكن يجب ان تمرر Class الفورم الى الـ procedure الخاص بك
لكي يقوم بانشاء الفورم ...
PHP كود :
procedure TForm1.Button1Click(Sender: TObject);
begin
  CreateAndShow
(Form3, TForm3, True);
end;

procedure TForm1.CreateAndShow(Form:TForm; FormClass: TFormClass; Bool: Boolean);
begin
  Form 
:= FormClass.Create(nil);
  try
    
Form.ShowModal;
  finally
    
Form.Free;
  
end;
end; 
للأسف لم تنجح الطريقة
ولذلك رجعت الى الطريقة العادية
كود :
http://www.4shared.com/rar/34gSHjtoce/projet.html
بحيث يتم انشاء كل فورم مرة واحدة فقط
ماهو رأيكم في الفكرة؟