PDA

View Full Version : پلاگین برای برنامه



حمید محمودی
دوشنبه 16 فروردین 1389, 23:46 عصر
سلام.

دوستان کسی یه دمو از نحوه استفاده و بکار گیری پلاگین در برنامه ای که توی دلفی نوشتیم داره معرفی بکنه؟

یه نمونه دیدم که میومد فقط توی یه پروژه یه dll رو کامپایل میکرد , بعدش توی برنامه اصلی اون فایل دی ال ال رو بازش میکرد که فقط یه متن رو به یه memo اضافه میکرد.

اما من یه دمو میخام که مثلا بیاد اشیا جدید بسازه و با هاش بشه درست حسابی کار کرد. مثلا مثل یه پلاگین فایرفکوس که میاد بهش اضافه میشه و در برنامه اصلی کار میکنه و فرم های جدا داره و ...


متشکرم

SAASTN
سه شنبه 17 فروردین 1389, 00:25 صبح
سلام
یک روش اینه که شما یک آدرسی رو بگردید و ببینید توی اون چه dll هایی هست. توی همه dll ها هم یک سری توابع مشخص وجود دارند که مثلا یکی منویی که افزونه جدید باید توش قرار بگیره رو بر می گردونه، یک caption رو بر می گردونه و یکی هم تابع اصلی که باید اجرا بشه و ... . پارامترهای توابع هم باید یکسان باشند. البته توابع رو باید دینامیک لود کنید.
نمی دونم این کارا چقدر اصولیه ولی نظرا جواب میده. البته تمام اینها هم مربوط میشه به اضافه کردن فرم ها و امکانات جدید به برنامه. اما یه سری برنامه های وحشی هستند مثل 3DMax که افزونه هاشون میان فرمهای موجود رو هم تغییر می دن که اینا رو دیگه نمی دونم چیکار میشه کرد!

حمید محمودی
سه شنبه 17 فروردین 1389, 01:47 صبح
سلام
یک روش اینه که شما یک آدرسی رو بگردید و ببینید توی اون چه dll هایی هست. توی همه dll ها هم یک سری توابع مشخص وجود دارند که مثلا یکی منویی که افزونه جدید باید توش قرار بگیره رو بر می گردونه، یک caption رو بر می گردونه و یکی هم تابع اصلی که باید اجرا بشه و ... . پارامترهای توابع هم باید یکسان باشند. البته توابع رو باید دینامیک لود کنید.
نمی دونم این کارا چقدر اصولیه ولی نظرا جواب میده. البته تمام اینها هم مربوط میشه به اضافه کردن فرم ها و امکانات جدید به برنامه. اما یه سری برنامه های وحشی هستند مثل 3DMax که افزونه هاشون میان فرمهای موجود رو هم تغییر می دن که اینا رو دیگه نمی دونم چیکار میشه کرد!

سلام. اون مثالی که خودم گفتم هم میومد توی یک پروژه ای یه dll رو کامپایل میکرد و بعدش توی به پروژه ی دیگه یه منو بود و در زمان اجرا میومد از مسیری که خودش داده بود میچرخید پسوند dll رو تا به منو اضافه بکنه. و بعدش با کلیک روی آیتم اضافه شده به منو یه متنی از طریق اون dll به یه ممو اد میشد.

اما من منظورم یه Demo از یه نرم افزاری که با دلفی نوشتیم بصورت پلاگینی کاملتر باشه. یه چیز کاملتر و آموزنده تر. مثلا مثل یه پلاگین فایرفوکس که میاد ....

ممنون میشم اگه مثالی دارین اینجا پیوست بکنین.

متشکرم

Felony
سه شنبه 17 فروردین 1389, 06:12 صبح
نمی دونم این کارا چقدر اصولیه ولی نظرا جواب میده.
اصلا اصولی نیست !
برای نوشتن پلاگین اصولا باید از SDK هایی که شرکت سازنده عرضه میکنه استفاده بشه ، این SDK ها یکسری امکانات اولیه مثلا Handle پنجره برنامه و ... بهتون میدن که با همون امکانات اولیه میشه همه کار کرد ...

یه نمونه پلاگین که قبلا برای نرم افزار Multimedia Builder نوشته بودم رو ضمیمه کردم ، این پلاگین قابلیت مشاهده و عسکبرداری و فیلمبرداری با وب کم رو به این نرم افزار اضافه میکنه .

البته نسخه 1 هست و امکانات کمی داره ولی در کل موضوع مورد نظر شما توش به کار گرفته شده .

حمید محمودی
سه شنبه 17 فروردین 1389, 09:52 صبح
سلام.

دوستان دیگه هم اگه دموی دیگه ای دارن معرفی بکنن ممنون میشم.

متشکرم

SAASTN
چهارشنبه 18 فروردین 1389, 00:17 صبح
برای نوشتن پلاگین اصولا باید از SDK هایی که شرکت سازنده عرضه میکنه استفاده بشه ، این SDK ها یکسری امکانات اولیه مثلا Handle پنجره برنامه و ... بهتون میدن که با همون امکانات اولیه میشه همه کار کرد ...
سلام
من برداشتم از تاپیک این بود که می خواهیم برنامه ای بنویسیم که قابلیت اضافه شدن افزونه رو داشته باشه و حالا چجوری این قضیه رو باید مدیریت کنیم.
اگه منظور نوشتن پلاگ این برای برنامه دیگه هست که خوب طبیعیه باید بریم ببینیم اون برنامه می گه چجوری براش پلاگ این بنویسیم. مطمئنا نمیشه خودمون همینجوری بیایم یه dll بنویسیم بذاریم کنار برنامه بعد بخوایم به برنامه اضافه شه! (جان من ما رو چی فرض کردی؟ :متفکر:) که اگه واقعا منظور همینه باید بگم سوال یکم بی معنی میشه و باید خاص تر پرسیده بشه. مثلا دقیقا پرسیده بشه "چطور برای فایر فاکس پلاگ این بنویسیم". چون زمینه وسیعیه و هر نرم افزاری از تکنیک متفاوتی نسبت به بقیه استفاده کرده.

حمید محمودی
چهارشنبه 18 فروردین 1389, 02:46 صبح
سلام
من برداشتم از تاپیک این بود که می خواهیم برنامه ای بنویسیم که قابلیت اضافه شدن افزونه رو داشته باشه و حالا چجوری این قضیه رو باید مدیریت کنیم.


بله منظور من دقیقا این بود . که فکر کردم با اون توضیحاتم تونستم مفهمو برسونم ولی مثل اینکه .....