ورود

View Full Version : خطا در ساخت فرم



idehrayan
یک شنبه 12 بهمن 1393, 20:53 عصر
سلام به همه اساتید
من مشخصات یه فرم رو توی یک فایل تکست ذخیره کردم


object Mainform: TMainform
Left = 75
Top = 75
Caption = 'newform'
ClientHeight = 380
ClientWidth = 658
Color = clBtnFace
DragMode = dmAutomatic
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
....


وقتی که میخوام فرم رو دوباره از روی این مشخصات بازسازی کنم خطای class TMainform not found رومیده اساتید لطفا راهنمایی کنند کلاس فرم رو کجا تعریف کنم هرچی جستجو کردم و ... به نتیجه ای نرسیدم:گریه:
در ضمن ایا فرمی که تو برنامه تعریف شده ولی هنوز فراخوانی نشده رو میشه با این روش با تظیمات قبلی خودش (که توسط کاربر ذخیره شده) بازسازی کرد.

یوسف زالی
دوشنبه 13 بهمن 1393, 00:00 صبح
سلام.
منظورتون از بازسازی چیه؟
دیسریالایز؟

idehrayan
دوشنبه 13 بهمن 1393, 07:21 صبح
سلام
استاد گرامی
طبق راهنمایی قبلی شما درباره
سریالیز کردن فرم یکم ، جستجو کردم و چنتا کد پیدا کردم
هنگام ذخیره کردن فرم ( بصورت تکست ) اطلاعات بخوبی ذخیره میشن (کد بالا) ولی موقعی که میخوام دوباره با همین اطلاعات فرم رو بسازم خطای class TMainform not found رو میده.
توضیح درباره برنامه :
برنامه من چنتا فرم داره. فرض کنید در فرم دوم برنامه توسط کاربر یکم تغییرات ایجاد میشه (تغییر فونت ، مختصات و... کامپوننتهای روی فرم ) من میخوام هنگام اجرای دوباره برنامه تغییرات اعمال شده در فرم به همان شکل قبلی باقی بمونه.
ممنون

نمونه کدهای استفاده شده در برنامه (http://barnamenevis.org/showthread.php?482643-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%D9%88-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D8%AE%D8%B5%D9%88%D8%B5%DB%8C%D8%A7%D8%AA-%D8%B9%D9%86%D8%B5%D8%B1-%D8%AA%D9%88%D8%B3%D8%B7-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1)

یوسف زالی
دوشنبه 13 بهمن 1393, 11:17 صبح
برای این کار باید روی فرم مقصد کلاس مورد نظر یوز باشه، و RegisterClass هم کرده باشید.
البته اگر این راه براتون سخته، و اطلاعاتی که دارید ذخیره می کنید از قبل مشخص هستند، می تونید خودتون براش سریالایز درختی بنویسید.
این طوری منعطف تر می تونید کار کنید، ولی بازسازیش یکم فنی تره.

idehrayan
دوشنبه 13 بهمن 1393, 16:19 عصر
ببخشید
اگه قرار باشه مشخصات مثلا form1 ذخیره و دوباره هنگام اجرا برنامه روی form1 اعمال بشه باز هم باید مراحل بالا
(
کلاس مورد نظر یوز باشه، و RegisterClass هم کرده باشید) رو انجام بدیم؟

یوسف زالی
دوشنبه 13 بهمن 1393, 18:29 عصر
بالاخره تو یه یونیتی دارید کد می نویسید دیگه، تو همون یونیت باید این کارها رو کنید.

idehrayan
دوشنبه 13 بهمن 1393, 21:40 عصر
این مطلب رو پیدا کردم برای دوستان میزارم
Creating a Delphi Form from a String (http://delphi.about.com/library/weekly/aa080905a.htm)