كيف مناداة فورم غير منشأ في بداية البرنامج
#1
عملت لعبة على النت وعملت كود اشتيمال لفتح اللعبة لما تفتح الموقع. المشكلة ان اللعبة عندما تفتح تفتح كل النوافد رغم اني وضعت form1 هوالنافدة الرئيسية مع العلم انه في اللعبة form1 يحتوي على اتنين ايديت وزر لتسجيل الدخول الى الفورم التاني وهكذا.
ثم حاولت بوضع الفورم 1 هو الذي يخلق آليا auto creat form وعندما اضغط f9 تخرج لي رسالة خطأ
access violation at adress 0045d2f9 in module'project1.exe'

كيف مناداة فورم غير منشأ في بداية البرنامج ؟
الرد
#2
أتقصد خلق فورم بطريقة ديناميكية أي انك لم تقم من عمله من قبل يمكنك ذلك
PHP كود :
procedure TForm1.Button1Click(Sender: TObject);
var 
form:TForm;
begin
  form
:=TForm.Create(self);
  
form.ShowModal;
end; 
أهذا ما قصدته أو شيئ آخر
الرد
#3
لا انا دهبت الى project option وقمت بازالة النوافد من auto creat form وابقيت الا على نافذة واحدة
وعندما انفد البرنامج يحدث خطأ
الرد
#4
أكيد سيحدث خطأ لأنك تقوم مناداة فورم غير معرف و معطياته غير مخزنة في ال Resource :p
او قم انت بخلق الفورم الآخر في ال Run-Time فقط أضف هذا الكود
PHP كود :
procedure TForm1.Button1Click(Sender: TObject);
begin
Application
.CreateForm(TForm2, Form2);
end; 
الرد
#5
إقتباس : access violation at adress 0045d2f9 in module'project1.exe'
الخلل في الفورم نقسه تحقق من borderstyle
يمكنك تعديل ترتيب forms من project ----->Option ------> main form
او كما تفضل الاخوة
كود :
procedure TForm1.Button1Click(Sender: TObject); var form:TForm; begin form:=TForm.Create(self); form.ShowModal; end;
الرد


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


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