PDA

View Full Version : Form هایی که هر یک در یک dll قرار دارند(مشکل فراخوانی چند )



ravanfar
یک شنبه 14 تیر 1383, 07:45 صبح
بزرگان سلام
من طریقه قرار دادن یک فرم در dll و فراخوانی آنرا در یک برنامه میدانم :oops:
ولی یک سوال ؟
اگر چندین فرم را در dll های مختلف قرار دهیم حال هر یک را چگونه در برنامه فراخوان کنم؟
سوال بعدی؟
چطور میشه در یک form مبتنی بر dll یک فرم دیگر را که آنهم مبتنی بر dll است را فراخوان نمود؟
متشکرم
روانفر

مهدی کرامتی
یک شنبه 14 تیر 1383, 09:26 صبح
دادش چرا خودت رو اذیت میکنی؟

بجای اینکار هر یک، یا هر چند تا از فرمها رو بگذار داخل یک پکیج، بعد با دستور LoadPackage بارش کن.

اینجوری همه مشکلات فوق حل میشه.

راستی چرا میخوای فرمهات تو برنامه اصلی نباشند؟

ravanfar
یک شنبه 14 تیر 1383, 11:22 صبح
سلام
خیلی خوش بحال من شده که ریاست سایت جواب دادند بسیار متشکرم
و اما بعد اولش یک موضوع محرمانه فقط به ریاست سایت بگویم 8-)
من یکدفعه یک برنامه ایی نوشتم ( خیلی وقت پیش) از روی ناشیگری و کمی مهارت در برنامه نویسی که الان هم دجارش هستم , یک فابل اصلی داشت با 140تا فرم :shock:
اگر با winsight برنامه را trace میکردید میدیدم که هنگام بالا امدن برنامه علاوه بر اینکه کلی طول میکشه تا بالا بیاد عملکرد اون هم خیلی کند شده
حالا مدتها از این قضیه میگذرد من با هم باید یک چنین برنامه ایی بنویسم بعد از مدتها فکر کردن گفتم بهتره که هر فرم را اگر بشود در یک dll ذخیره کنم بعدش فراخوان کنم بعد از ستفده هم از حافظه از بین ببرمش به طوری که اثری در حافظه از اون باقی نماند
ولی حتماْ ایده شما بهتره میشه بیشتر راهنمایی کنید
متشکرم روانفر

_alish_
یک شنبه 14 تیر 1383, 13:32 عصر
سلام
چرا از New/Project Groupsاتفاده نمی کنی شاید آسان ترین راه باشد

مهدی کرامتی
یک شنبه 14 تیر 1383, 17:47 عصر
چرا از New/Project Groupsاتفاده نمی کنی شاید آسان ترین راه باشد
ببخشید، اونوقت این منو چکار میکنه و چطوری این مشکل رو حل میکنه؟

JavanSoft
یک شنبه 14 تیر 1383, 21:38 عصر
می توانید تمامی توابع DLLرا بصورت توابع زیر مجموعه یک UNit تعریف کنید و Unitمورد نظر را در دیگر بخشها Useکنید

MToloo
دوشنبه 15 تیر 1383, 06:27 صبح
مشکلت فقط اینه که 140 تا فرم میخوان همون اول ایجاد شن فاتحه برنامه ات خونده میشه؟ خوب این که کاری نداره. از منوی Project گزینه Options و انتخاب کن. بعد میبینی که 140 تا فرم تو بخش AutoCreateForm هست. اونها رو منتقل کن به لیست کناریش. تا همون موقع اجرا فرمها ایجاد نشن. فقط یک چند تا که لازمن و بزار باشه. مثل فرم اصلی و دیتاماژول و اسپلش و اینطور چیزا. حالا تو برنامه هر فرمی رو که لازم داشتی ایجاد کن بعد که کارت باهش تموم شد از حافظه خارجش کن. :wink:

ravanfar
دوشنبه 15 تیر 1383, 09:51 صبح
دلفی آسیستان میگویند:
هر یک، یا هر چند تا از فرمها رو بگذار داخل یک پکیج، بعد با دستور LoadPackage بارش کن.
راستی میشود بگویید چطوری
متشکرم

A.VAHID
پنج شنبه 18 تیر 1383, 01:31 صبح
دوست عزیز
با سلام و با اجازه از اساتید محترم
از منوی نیو یک Package انتخاب کن
سپس با موس Contains را کلیک نموده و سپس کلید Add بالا فشار بده و تمامی فرمهای مرتبط با هم را در این قسمت اضافه کن و در قسمت پائین اگر از Package دیگری میخواهی استفاده کنی معرفی کن البته در بالا باید سورس برنامه و در پائین BPL را معرفی کنی
پس از کامل کردن در قسمت انتخابها مسیر ایجاد را در کنار برنامه اجرائی خود قرار دهید
سپس در برنامه اصلی دو راه داری یک همانطور که آقای مدیر گفتند از LoadPackage استفاده کنی و یکی اینکه در قسمت Options بخش Package وارد شده و Runtimpackage را فعال کنید و با زدن کلید Add سورس پکیج خود را معرفی کنید
و در برنامه اصلی یونیتهای مورد نیاز را Uses و مانند برنامه اصلی خود استفاده کنید
من یاد آوری میکنم که یک سیستم داشتم که به روش Dll نوشته شده بود و حجم برنامه اجرائی حدود 25 مگابایت شده بود که با این روش به 4 مگا بایت تقلیل یافته و برنامه اجرائی نیز 180 کیلو شده است
با احترام
ع.و

ravanfar
یک شنبه 21 تیر 1383, 14:59 عصر
سلام
متشکرم از جواب شما میرم که امتحانش کنم امید وارم مشکلم حل بشه
روانفر