PDA

View Full Version : ActiveFormX



ravanfar
دوشنبه 12 تیر 1385, 06:34 صبح
سلام
من یک فرم ActiveFormX ساده دارم روی آن یک Button گذاشتم یک New Form به پروژه Add کردم روی Button همان ActiveFormX اولیه دبل کلیک کردم و syntax زیر را نوشتم:
Form1.showmodal;
(توضیح اینکه در uses اکتیوفرم ایکس هم unit1 را اضافه کردم).
در نهایت پروژه را Compile و Build کردم و هیچ گونه خطا، اخطار و Hints هم نگرفت سپس از منوی Run اکتیو ایکس مربوطه را Register کرده و کل پروژه را پس از save بستم.
حال از منوی Component قسمت install new active X component را انتخاب کرده و با انتخاب اکتیوایکس ساخته شده و رجیستر شده در مرحله قبل که نامش در list box موجود است کلید install را زده مراحل نصب این کامپوننت اکتیو ایکس را مطابق معمول طی کرده تا در پالت ActiveX به عنوان یک کامپوننت نصب شود پس از ذخیره پروژه را میبندم.
حال یک new application باز میکنم روی فرم اولیه همان کامپوننت اکتیو ایکس را میگذارم پروژه را compile و Build میکنم بدون خطا انجام مشود.
حال اگر فایل exe خروجی را اجراکنم یک فرم دارم که در میان آن همان جزء اکتیوفرم ایکس قرار گرفته که یک button هم رویش است توقع دارم پس از کلیک روی دکمه مذکور فرم بعدی نمایش داده شود ولی متاسفانه خطای Access Violation با ذکر آدرسی در حافظه را میدهد
ایراد کجاست؟ از Delphi7 استفاده کردم.

ghabil
سه شنبه 13 تیر 1385, 23:41 عصر
ایراد احتمالا از اینجاست که فرم دوم رو Create نمیکنی ، فرمها در یک پروژه معمولی دلفی بصورت AutoCreate هستند یعنی با اجرای پروژه ساحته میشند ولی حالا دیگه فرم اکتیوایکس جزو فرمهای برنامت حساب نمیشه ، کد برنامت رو بجای Form1.ShowModal بکن

TForm1.Create(Application).ShowModal
احتمالا درست میشه .