PDA

View Full Version : ذخيره فرم در DLL



majid_vb_2008
سه شنبه 03 شهریور 1388, 10:29 صبح
سلام دوستان
من يك پروژه دارم كه تعداد فرم هاي زيادي داره مي خواستم ببينم كسي بلده فرم رو به DLL تبديل كنه تا بعدا توي پوژه هاي ديگه از همون فرم بشه استفاده كرد.

majid_vb_2008
سه شنبه 03 شهریور 1388, 11:08 صبح
يعني هيچ كس بلد نيست

milad.biroonvand
سه شنبه 03 شهریور 1388, 11:21 صبح
از منوي فايل ، گزينه new project رو كه زدي ، اگه مي خواستي توابع رو در dllتعريف بكني ، از class ، activix رو انتخاب كن .

majid_vb_2008
سه شنبه 03 شهریور 1388, 11:35 صبح
ميشه بيشتر توضيح بدي و بعدش هم بگي چجوري توي يك پروژه ديگه ازش استفاده كنم

majid_vb_2008
سه شنبه 03 شهریور 1388, 16:44 عصر
دوستان من منتظرم كسي بلد نيست:متفکر:

anooshiran
سه شنبه 03 شهریور 1388, 17:45 عصر
سلام دوست عزيز

وقتي پروژه جديد را شروع مي كني در منوي New Project آيتم ‍Class Library را انتخاب كن و نامي به اين پروژه بده. مثلا MyForm
بعد ميبيني كه يك class به نام class1 ايجاد ميشه برات. كه ميتوني اسمش را عوض كني. بعد هم اگر فرمي لازم داري يك ين چند فرم اضافه مي كني. وكدهاتو مينويسي.
فقط توجه كن از solution explorer گزينه My Project را انتخاب كن و در Tag به نام Application حتما Application Type را معادل class Library قرار بده و سپس برنامه را اجرا كن
صد در صد به error ميخوري مبني بر اينكه كلاس قالا اجرا نيست.
اين error مهم نيست . پس برنامه را متوقف كن و برو در پوشه bin ميبني يك dll با نام project ساخته شده.
اگر اين dll را در هر پروژه ديگر add reference كني مي توني با صدا كردن نام فرمهايي كه در dll داري آنها را فراخواني كني.

اميدوارم مفهوم بوده باشد.

majid_vb_2008
چهارشنبه 04 شهریور 1388, 22:29 عصر
به نظر شما مي شه DLL هاي ساخته شده با زبانهاي ديگه مثل #C يا دلفي را همينجوري استفاده كرد

majid_vb_2008
چهارشنبه 04 شهریور 1388, 22:52 عصر
سلام دوست عزيز

وقتي پروژه جديد را شروع مي كني در منوي New Project آيتم ‍Class Library را انتخاب كن و نامي به اين پروژه بده. مثلا MyForm
بعد ميبيني كه يك class به نام class1 ايجاد ميشه برات. كه ميتوني اسمش را عوض كني. بعد هم اگر فرمي لازم داري يك ين چند فرم اضافه مي كني. وكدهاتو مينويسي.
فقط توجه كن از solution explorer گزينه My Project را انتخاب كن و در Tag به نام Application حتما Application Type را معادل class Library قرار بده و سپس برنامه را اجرا كن
صد در صد به error ميخوري مبني بر اينكه كلاس قالا اجرا نيست.
اين error مهم نيست . پس برنامه را متوقف كن و برو در پوشه bin ميبني يك dll با نام project ساخته شده.
اگر اين dll را در هر پروژه ديگر add reference كني مي توني با صدا كردن نام فرمهايي كه در dll داري آنها را فراخواني كني.

ممنون دوست من
من Dll رو به پروژه اضافه كردم ولي نتونستم از فورم ي كه توي اون ذخيره كرده بودم استفاده كنم يعني اون فرم متد SHow نداشت

ممنون مي شم راهنمايي كنيد

Hossis
چهارشنبه 04 شهریور 1388, 23:49 عصر
من یک کامپوننت مسج بوکس فارسی نوشته و چند روز پیش در این انجمن آپلود کردم اگر به همین نام جستجو کنی پیدا میشه
اگر هم پیدا نشد، در این آدرس (http://vb2008.mihanbb.com/thread-14-post-56.htm)هم خود فایل dll هست و هم سورس اصلی
اما ربطش به سؤال شما:
در این کتابخانه، دو فرم قرار داده شده : یکی فرم Inputbox و دیگری OPionbox که در برنامه های دیگر این دو فرم فراخوانی می شوند.
اما طریقه استفاده کردن
بعد ار زفرنس کردن dll در پروژه، این کد رو باید در یک ماژول بنویسی




Dim mss As New Msg
Public Function MsgBox(ByVal Prompt As String, Optional ByVal style As MsgBoxStyle = MsgBoxStyle.OkOnly, Optional ByVal Title As String = "") As MsgBoxResult
Return mss.MsgFox(FrmMain.Handle.ToInt32, Prompt, style, Title)
End Function
Public Function InputBox(ByVal Prompt As String, Optional ByVal Title As String = "", Optional ByVal DefualtStr As String = "") As String
Return mss.InputBox(Prompt, Title, DefualtStr)
End Function
Public Function OptionBox(ByVal Prompt As String, ByVal Items() As String, Optional ByVal Title As String = "", Optional ByVal DefaultIndex As Integer = 0, Optional ByVal ListMode As BoxinOut.OptionStyle = OptionStyle.ComboMod) As Integer
Return mss.OptionBox(Prompt, Items, Title, DefaultIndex, ListMode)
End Function

majid_vb_2008
چهارشنبه 04 شهریور 1388, 23:57 عصر
ميشه بگيد اين چه ربطي به سؤال من داشت

anooshiran
پنج شنبه 05 شهریور 1388, 05:07 صبح
ممنون دوست من
من Dll رو به پروژه اضافه كردم ولي نتونستم از فورم ي كه توي اون ذخيره كرده بودم استفاده كنم يعني اون فرم متد SHow نداشت

ممنون مي شم راهنمايي كنيد

سلام دوست عزيز

شما showdialoge را بايد در داخل خود dll فعال كنيد.

يذين صورت كه در داخل همان فرم داخل dll يك Pblic Function يا Public sub قرار دهيد و showdialoge را از همانجا فراخواني كنيد. شما بايد جايي كه از اين dll استفاده مي كنيد يكي از روال ها يا توابع public را فراخواني كنيد.

اميدوارم توضيحاتم كافي بوده باشد. در غير اينصورت بگو تا يك نمونه برايت بنويسم.

majid_vb_2008
پنج شنبه 05 شهریور 1388, 11:31 صبح
دوست من اگه يك نمونه كد برام بزاري خيلي ممنون مي شم

majid_vb_2008
پنج شنبه 05 شهریور 1388, 23:12 عصر
دوستان من منتظرم ممنون ميشم يك نمونه كد برام بزاريد

majid_vb_2008
جمعه 06 شهریور 1388, 10:40 صبح
يعني هيچ كس بلد نيست كه يك نمونه كد كچولو براي من بنويسه

anooshiran
جمعه 06 شهریور 1388, 17:35 عصر
سلام دوست عزیز

برنامه ضمیمه یک کد بسیار ساده در راستای منظور شماست. بنده البته فقط به دنبال فراخوانی form ها بودم.

majid_vb_2008
جمعه 06 شهریور 1388, 21:31 عصر
مشكل حل شد از همه دوستان كه كمك كردند ممنونم

به اميد روزهايي بهتر

shaporty
یک شنبه 15 آذر 1388, 23:33 عصر
سلام
ببین به زبان ساده باید یک پروژه dll ایجاد کنی ، بعد یونیت فرمی که قبلا نوشتی رو بهش اضافه کنی ، بعد توی یونیت اصلی dll فانکشن اجرای فرم رو بنویسی ، بعد بری توی یونیت فرمی که قبلا ساختی ،همون فانکشن اجرای فرم رو بسازی .
که البته یادگیری بهتر این قضیه برمیگرده به اینکه چند تا نمونه از سایت های مختلف بگیری و روش کارکنی ، سایت هایی که کامپوننت ها و نمونه کد های دلفی رو دارند میتونند بهت کمک کنند ، مثلا سایت tory