كيف يتم انشاء procedure خاص ب form.show
#1
السلام عليكم
كيف يكون انشاء 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
الرد
#2
وعليكم السلام ورحمة الله
وضح اكثر المطلوب ، اسف لم افهمك
لأستهلنّ الصعب أو أدرك المنى    فما انقادت الآمال إلاّ لصابر
الرد
#3
البرنامج يحتوي عدة واجهات forms
كلها من نوع fsMDIChild
ولتفادي انشاء الفورم أكثر من مرة في الفورم الرئيسي، بحيث اذا تم انشاء الفورم يكفي اظهاره فقط show
والهدف عدم تكرار العملية من أجل كل فورم
الرد
#4
تفضل اخي
اظن انني فهمتك والا فانا مستعد للمحاولة ان كان هذا غير قصد


الملفات المرفقة
.rar   test form.rar (الحجم : 4.1 ك ب / التحميلات : 44)
لأستهلنّ الصعب أو أدرك المنى    فما انقادت الآمال إلاّ لصابر
الرد
#5
شكرا لك أخي
والآن كيف نضع هذا الحدث
كود :
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
الرد
#6
قم بتحميل المثال الذي ارفقك لك "test form.7z‏"
افتح فيه الكود


إقتباس :var aform:Tform;
begin
aform:=Tform2.create(nil).......
.....
end;
لأستهلنّ الصعب أو أدرك المنى    فما انقادت الآمال إلاّ لصابر
الرد
#7
مثلا ننشيء ال procedure كما يلي
كود :
procedure myshowform(f: tform); begin if f.Showing then Exit; f:=!!!!!.Create(nil); هنا المشكل f.FormStyle:=fsMDIChild; f.Show; end;
الرد
#8
السلام عليكم
عند انشاءك لفورم جديد دلفي يقوم باضافة متغير عام الى الوحدة
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; 
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
الرد
#9
للأسف لم تنجح الطريقة
ولذلك رجعت الى الطريقة العادية
كود :
http://www.4shared.com/rar/34gSHjtoce/projet.html
بحيث يتم انشاء كل فورم مرة واحدة فقط
ماهو رأيكم في الفكرة؟
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم