PDA

View Full Version : اجرای فرم دوم داخل فرم اول



Win_RT
دوشنبه 05 تیر 1391, 09:36 صبح
سلام.چجوری می تونم فرم دومی رو که ساختم در فرم اولم اجرا کنم،یعنی یه صفحه جدید باز نشه.

SayeyeZohor
دوشنبه 05 تیر 1391, 11:14 صبح
روش اول : استفاده از FormStyle در قسمت ObjectInspector هستش
فرم اول (اصلي) FormStyle = fsMDIForm
فرم دوم FormStyle = fsMDIChild

روش دوم : استفاده از Parent

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Parent := Form1.Panel1;
Form2.Show;

end;

end.

BORHAN TEC
دوشنبه 05 تیر 1391, 11:52 صبح
روش دومی که معرفی کردید بدک نیست ولی اگر از این روش استفاده شود در منوها به مشکل می خورید. برای این که این موضوع را متوجه شوید در فرم دوم یک TMainMenu را قرار دهید و چند گزینه را به آن اضافه کنید. حال اگر برنامه را اجرا کنید می بینید که از منوها هیچ خبری نیست! البته طبق تست هایی که من انجام دادم این مشکل مربوط به روش شما نیست و احتمالاً این مشکل مربوط به خود TMainMenu است، چون حتی در این مورد من با Hydra هم به مشکل خوردم.

من به عنوان راه حل سوم استفاده از RemObjects Hydra را توصیه می کنم که یک فریمورک قدرتمند در ساخت برنامه های مبتنی بر پلاگین است. :چشمک:

mohsen24000
دوشنبه 05 تیر 1391, 11:58 صبح
البته از FormContainer کامپوننت Billenium effects هم میشه استفاده کرد. اضافه بر این که قابلیت افکت هم داره...

SayeyeZohor
دوشنبه 05 تیر 1391, 12:02 عصر
بنابراین من به عنوان راه حل سوم استفاده از RemObjects Hydra را توصیه می کنم که یک فریمورک قدرتمند در ساخت برنامه های مبتنی بر پلاگین است
مي شه بيشتر راجع بهش توضيح بدين؟

يك توضيح كوچولو درباره كامپوننتي كه دوست خوبم معرفي كرد براي كسايي كه زياد با اين كامپوننت آشنا نيستند
براي كار با اين كامپوننت در فرم اصلي اين كامپوننت رو قرار مي ديد و بعد خصوصيت BorderStyle فرم دوم رو bsNone قرار بدين بعد اين كد رو در FormShow فرم اول بنويسين
Form2 := TForm2(MainFormContainer.CreateForm(TForm2));
MainFormContainer.ShowForm(Form2, True);

Felony
دوشنبه 05 تیر 1391, 12:15 عصر
در مورد روش اولی که معرفی شد ( MDI Forms ) بارها گفتم ؛ برنامه نویسی رابط کاربری مبتنی بر MDI یک روش منسوخ شده هست و نباید ازش استفاده کرد !

BORHAN TEC
دوشنبه 05 تیر 1391, 12:22 عصر
مي شه بيشتر راجع بهش توضيح بدين؟
توضیحات کاملش در لینک زیر وجود داره:
http://www.remobjects.com/hydra/

SayeyeZohor
دوشنبه 05 تیر 1391, 12:26 عصر
در مورد روش اولی که معرفی شد ( MDI Forms ) بارها گفتم ؛ برنامه نویسی رابط کاربری مبتنی بر MDI یک روش منسوخ شده هست و نباید ازش استفاده کرد !

چشم ، ديگه تكرار نمي شه
فقط جهت توضيح بود
:خجالت::بامزه:

Mask
دوشنبه 05 تیر 1391, 12:41 عصر
توضیحات کاملش در لینک زیر وجود داره:
http://www.remobjects.com/hydra/

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

SayeyeZohor
دوشنبه 05 تیر 1391, 12:46 عصر
معلوم نیست چطوری باید دانلودش کرد و چطوری ازش استفاده کرد.
اگه بتونی برنامه و یه سمپل رو اینجا قرار بدی خیلی خوب میشه. ممنون.

روم نشد بگم
رفتم تو سايتش ولي جايي براي دانلودش نيست:قلب:

mohsen24000
دوشنبه 05 تیر 1391, 13:21 عصر
روم نشد بگم
رفتم تو سايتش ولي جايي براي دانلودش نيست:قلب:
دوستان در صورتی که این کامپوننت رو میخوان بفرمایند - بطور خصوصی جهت رعایت قوانین سایت - تا براشون بفرستم!

BORHAN TEC
دوشنبه 05 تیر 1391, 13:39 عصر
اگه به صفحه زیر برین لینک دانلود نسخه Trial رو خواهید دید. (لطفاً حتماً از عینک استفاده کنید!)
http://www.remobjects.com/downloads.aspx#hy3

برادر : شمام هر سوالی میشه ، این برنامه رو پیشنهاد میدی :لبخند: مارو هی چیز میکنی:لبخندساده: هر چیم میریم تو سایتش ، معلوم نیست چطوری باید دانلودش کرد و چطوری ازش استفاده کرد.
اگه بتونی برنامه و یه سمپل رو اینجا قرار بدی خیلی خوب میشه. ممنون.
چشم سعی می کنم که یک فیلم آموزشی به زبان فارسی در موردش قرار بدم(احتمالاً تا ده روز آینده). :لبخند:
باور کن که خودم هم خسته شدم از بس این ابزار رو معرفی کردم(شاید 50 بار) ولی چه کنم که دوستان به مشکلات مشابهی برخورد می کنند و ما هم مجبوریم که بنا به وظیفه بهترین راه حلی که به نظرمان می رسد را بیان کنیم. :متفکر:

بهروز عباسی
دوشنبه 05 تیر 1391, 17:58 عصر
درود به همه
من چند ماهی پیش یک برنامه نصفه کاره نوشتم که فکر کنم به کار دوستمون بیاد
اگر هم نه ببخشید.
88722

BORHAN TEC
دوشنبه 05 تیر 1391, 23:01 عصر
نمیدونم که چرا ده روز اینقدر زود گذشت! :لبخند:

به هر حال من به قولم عمل کردم و فیلمی آموزشی را در مورد نحوه کار با RemObjects Hydra ساختم و در آدرس زیر قرار دادم که دوستان می توانند از آن استفاده کنند:
http://www.irstu.com/?p=1748

راستی این فیلم رایگان نیست و برای پرداخت هزینش باید ده تا صلوات برای سلامتی خودت بفرستی!!! :چشمک:

alidehban
شنبه 06 آبان 1391, 14:48 عصر
آقای عشایری یه سوال داشتم...
آیا میشه با این روش کامپوننت های ویژوالی رو که خودم قبلا ساختم رو بصورت DLL در بیارم و غیر از دلفی در دات نت هم استفاده کنم؟
اگر امکانش هست مثالی لطفا بزنید.
با تشکر فراوان

BORHAN TEC
شنبه 06 آبان 1391, 15:08 عصر
اگر بخواهید یک کامپوننت در دلفی بسازید و در محیطهای دیگر از آن استفاده کنید باید آن کنترل را به صورت ActiveX بسازید.
در لینک زیر نحوه انجام این کار آموزش داده شده است:
http://etutorials.org/Programming/mastering+delphi+7/Part+II+Delphi+Object-Oriented+Architectures/Chapter+12+From+COM+to+COM/Writing+ActiveX+Controls/