PDA

View Full Version : آموزش: ساخت پلاگین برای برنامه (مانند برنامه فتوشاپ)



OHidden
جمعه 14 خرداد 1389, 20:10 عصر
سلام خدمت دوستان گرامی :قلب:
افزونه ( Plug-in or Add-on) ابزاری کاربردی و کوچک و وابسته به یک نرم‌افزار میزبان دیگر است و به تنهایی کاربردی ندارد. افزونه می‌تواند یک ابزار، پوستهو... باشد.برنامه‌های کاربردی از پلاگینها پشتیبانی می‌کنند. این کار دلایل زیادی دارد از جمله آنکه به توسعه‌دهندگان اجازه می‌دهند تا برنامه کاربردی را گسترش دهند، از ویژگیهایی که در آینده کشف می‌شوند پشتیبانی می‌کنند و کد منبع را از برنامه کاربردی به علت ناسازگار بودن لایسنس نرم‌افزار، جدا می‌سازند.شیوه عمل برنامه‌های کاربردی میزبان، سرویسهایی را ارائه می‌دهند که پلاگینها از آنها می‌توانند استفاده کنند، از این طریق داده‌ها میان پلاگین و برنامه کاربردی تبادل می‌شوند. پلاگینها به این سرویسها وابسته هستند و به تنهایی معولا کار نمی‌کنند. برنامه‌های کاربردی از این پلاگینها مستقل هستند اما این امکان را فراهم می‌آورند که پلاگینها به آنها اضافه شده و به صورت خودکار بدون آنکه تغییراتی را در برنامه کاربردی میزبان بوجود آورند، به روز شوند..
این مثال که ضمیمه پست شده حالت پلاگین( Plug-ins ) رو بر برنامه می ده.می تونید رو برنامه های خودتون یه چیزی مثل این مثال را پیاده سازی کنید
روش کار
یه پروژه جدید از نوع Class Library باز می کنیم این dll نام برنامه و فرم هایی که قراره به عنوان Plug-ins به برنامه اضافه شوند و دستورات اجرای فرم جدید را در بر میگیرد(پوشه Common)

public interface IPlugIn
{
string Name { get; }
Form Form { get; set; }
void Run();
}


در برنامه اصلی که می خواهیم برای آن پلاگین ایجاد کنیم فایل dll ساخته شده (در این مثال Common.dll ) را به References ها اضافه می کنیم.ویک کلاس با کد های زیر ایجاد می کنیم

class Class1 : IPlugIn
{
#region IPlugIn Members
Form f;
public Form Form
{
get
{
return f;
}
set
{
f = value;
}
}
public string Name
{
get { return "OJ"; }
}
public void Run()
{
f.Controls.Add(new Button());
}
#endregion
}

در این مثال قصد دارم 3 پلاگین(clock, Alarm, Notebook ) را برنامه اضافه کنم.در یکی از این پلاگین ها می خواهیم ساعت را به برنامه اضافه کنیم.دوستان عزیز توجه کنید که این یک مثال خیلی ساده است و شما می توانید روی برنامه هاتون به وسیله این کدها خیلی مانور بدید.
یه پروژه جدید از نوع Class Library ایجاد کنید و یک فرم ودر فرم تنها یک label در فرم قرار دهید و به وسیله یک تایمر ساعت سیستم را نمایش دهید. فایل Common.dll را به References ها اضافه کنید.سپس در کلاس موجود کد های زیر را بنویسید.

public class Clock : IPlugIn
{
Form f;

public System.Windows.Forms.Form Form
{
get { return new Form1(); }
set { f = value; }
}

public string Name
{
get { return "Clock ver 1.1"; }
}

public void Run()
{
f.BackColor = System.Drawing.Color.Green;
foreach (Control n in f.Controls)
{
n.BackColor = System.Drawing.Color.Ivory;
if (n is TextBox)
n.BackColor = System.Drawing.Color.Khaki;
}
}

public override string ToString()
{
return Name;
}
}
این برنامه فایل های پلاگین را از مسیر C:\ PlugIns در برنامه فراخوانی می کند.پس فایل Dll ایجاد شده برای برنامه ساعت را در مسیر گفته شده کپی کنید.

string[] f = Directory.GetFiles("C:\\PlugIns\\", "*");
foreach (string v in f)
{
LoadPlugIn(v);
}
سایر قسمت های برنامه را در فایل ضمیمه ببینید.

hamid2reza
جمعه 18 اسفند 1391, 13:15 عصر
سلام دوست عزیز
ایا برای نوشتن پلاگین افتر افکت هم همینطور است یا خیر
این برنامه در ویژال استدیو نوشته شده است یا ویژال بیسیک و با چه زبانی از برنامه نویسی می باشد
ایا بطور گرافیکی هم می شود برنامه ای نوشت
ممنون از محبت شما
موفق وپیروز باشید

asheykh
شنبه 10 بهمن 1394, 00:51 صبح
سلام به همه دوستان واساتید
می خواستم بگم کسی فیلم آموزشی سراغ داره که توش روش کار رو مرحله به مرحله گفته باشه
اگه می شناسید معرفی کنید
با تشکر