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

نسخة كاملة : مشكلة في إنشاء مكون أثناء التنفيذ !
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2

السلام عليكم ورحمة الله ,,,

أخواني كنت أحاول أنشاء مكون TEdit أثناء التنفيذ run time لكن لا اعرف لماذا لا يظهر المكون في الفورم ,,

محاولتي :

PHP كود :
procedure TForm1.Button1Click(Sender: TObject);
var
Edt : TEdit ;
begin
 Edt 
:= TEdit.Create(Self);
 
With Edt do
 
begin
 width 
:= 70 ;
 
Top := 70    ;
 
left := 250 ;
 
Visible := True ;
 
Enabled := True ;
 
Text := 'hah';
 
end;
 
end;

end; 

ملاحظة : Compiler لا يظهر أي أخطاء ,, بل يعمل الفورم وعند الضغط على الزر لا يظهر المكون في الفورم !؟

ملاحظة2 : المكون يتم إنشائه ولكنه لا يظهر !!

ما المشكلة أخواني ؟

وشكرا جزيلا

والسلام عليكم

في الحقيقة ليس عندي جواب شافي و لكن لدي نظرية Rolleyes

اظن انه ينبغي عليك التعديل في ملف DFM لانه على حد علمي هو المسؤول عن الجانب المرئي من الفورم

اود ان احييك اخي دكتر موت على مثابرتك ، يعني من اين تاتي بهذه الافكار Big Grin
نسيت Parent وهو الدي سيحتوي أي سيستقبل المكون

PHP كود :
procedure TForm1.FormCreate(Sender: TObject);
var
Edt : TEdit ;
begin
 Edt 
:= TEdit.Create(Self);
 
With Edt do
 
begin
 Parent
:=Form1;
 
width := 70 ;
 
Top := 70    ;
 
left := 250 ;
 
Visible := True ;
 
Enabled := True ;
 
Text := 'hah';
 
end;
end; 

ولا تنسى اظافة الوحدة StdCtrls
me&delphi' كتب :نسيت parent وهو الدي سيحتوي أي سيستقبل المكون

بارك الله لك اخي الكريم,, جربت هذا وهو شغّال تمام,.,,

معلومة جديدة ولله الحمد,,
شكرا لكم أخواني الكرام ,,,

إقتباس :يعني من اين تاتي بهذه الافكار :d

سرقتها من أحدهم Big Grin

عندما قرأت له ردا يقول أنه من الأفضل إنشاء المكونات برمجيا فذلك يجعل البرنامج أخف وأسرع ,, حينها قررت المغامرة Big Grin

إقتباس :نسيت parent وهو الدي سيحتوي أي سيستقبل المكون

نعم نعم أخي الكريم ذاك ما كان سنقصني ,, بارك الله فيك

لكن أخي ما هو Parent ؟؟

هل يمكن أن تمدني بـ رابط يتحث عنه ؟؟

وشكرا لكم جميعا
إقتباس :لكن أخي ما هو Parent ؟؟

هل يمكن أن تمدني بـ رابط يتحث عنه ؟؟


الأمر لايستدعي دلك ف Parent هو المكون الدي سيحتوي على المكون الدي قمت بانشاءه وقت التنفيد وهو عبارة عن خاصية

راجع فقط ملف المسااعدة المرفق مع دلفي
نعم نعم بارك الله فيك أخي الحبيب ,,

راجعت وفهمت تماما ,,,

ملاحظه للاخوهـ يمكن وضع المكون بـ Panel مثلا عن طريق :
إقتباس :Edt.Parent := Panel1 ;

شكرا
السلام عليكم
إقتباس :Parent هو المكون الدي سيحتوي على المكون الدي قمت بانشاءه وقت التنفيد
تماما...
وكذلك التطبيق Application هو Parent (أي الأب) للنموذج TForm
مثال:
من كود المشروع الرئيسي هناك سطر مكتوب فيه:
كود :
Application.CreateForm(TForm1, Form1);
هذا الأمر يعني إنشاء نموذج وجعل المكون الأب له هو التطبيق Application
يمكن كتابة هذا الأمر بشكل آخر...
حاول حذف هذا الأمر واكتب عوضا عنه السطرين:
PHP كود :
Form1 := TForm1.Create(Application);//إنشاء نموذج وجعل التطبيق أبا له
  
Form1.ShowModal;//عرض النموذج 
ستحصل على نفس النتيجة.
PHP كود :
procedure TForm1.FormDestroy(Sender: TObject);
begin
Edt
.Free
end
; 

هدا أهم شيء كدنا ننساه ادا نسيته سيغضب منك حاسوبك Big Grin

فأي كائن تقوم بانشائه لابد من تحريره بعد الانتهاء منه لكي لا يبقى في الداكرة بدون أي فائدة

وان لم تقم بتحرير الكائنات التي قمت بانشائها ستضل فس الداكر ة و تشغل حيزا مهما و بالتالي

تسبب بطىء في الجهاز وأحيانا تجمده
نعم بارك الله فيكم ,,

طبعا اخ me&delphi التحرير يكون عند الحدث OnDestroy للفورم

شكرا لكم جميعا اجابة كافية وشافية

السلام عليكم
الصفحات : 1 2