Delphi Ders8
Formlar Form açmak Form kapamak Form gizlemek form2.Show; form1.close; form1.hide;
Projelerde Birden Fazla Form Kullanmak begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm2, Form2); Application.Run; end.
Şifre Formu procedure TForm1.TamamClick(Sender: TObject); begin if Edit1.Text = '12345' then Begin Form1.Hide; Form2.Show; end else Application.Terminate; end;
SDI (Single Document Interface) uygulamalar Tek pencereden oluşan uygulamalardır. SDI uygulamalarda birden fazla pencerede bulunabilir fakat bunlar ana ve çocuk pencereler değildir. Her pencere kendi başına hareket edebilir, her biri ekranı kaplayabilir veya simge durumuna küçültülebilir. Ancak bu tür uygulamalarda bir ana pencere vardır ve kapatıldığında tüm pencerelerde kapatılır. Buna örnek olarak Delphi uygulama geliştirme ekranı verilebilir. Dört ayrı ekran vardır. Yalnız ana pencere kapatıldığında pencerelerin tümü birden kapatılır.
MDI (Multiple Document Interface) uygulamalar Bir ana ve bu ana pencere içinde açılabilen bir veya birden fazla çocuk (child) pencere vardır. Çocuk pencereler ana pencerenin sınırları dışına çıkamazlar, ana pencere içinde hareket ettirilebilirler. MDI uygulamalarda çocuk pencereler ekranı kaplayabilir, simge durumuna küçültülebilir, kendi aralarında düzenlenebilir. MDI uygulamalar iki yada daha fazla formdan oluşur.
Mdı Form Oluşturmak Delphide MDI uygulamalar geliştirilebilir. Bunun için Yeni bir uygulamaya başlandığı zaman iki adet form oluşturulmalıdır. İlk oluşturulan form Ana formdur. Bu formun FormStyle özelliği Object Inspector’dan fsMDIform yapılmalıdır. İkinci form ise Çocuk (Child) formudur. Programlama esnasında bir tanedir. Kullanıcı programı kullandığı zaman istediği kadar otomatik oluşturulur. Bu formun FormStyle özelliği Object Inspector’dan fsMDIChild yapılmalıdır. Böylece MDI uygulamaya başlanmış olur. MDI uygulamalarda Ana formda mutlaka Çocuk form oluşturmak, silmek, düzenlemek, yerleştirmek için kodlar bulunur. Yoksa Çocuk form üzerinde işlem yapılamaz.
MDIForm(ana form) TForm6.create(self);
Child Form Eklemek
Örnek Uses unit2; //Çocuk formun unit ismi buraya eklenir {$R *.dfm} Procedure TAnaForm.CocukFormOlustur(const isim: string); Var Cocuk: TCocukForm; Begin Cocuk := TCocukForm.Create(Application); Cocuk.Caption := isim; End; Procedure TAnaForm.YeniForm1Click(Sender: TObject); CocukFormOlustur('Isimsiz' + IntToStr(MDIChildCount + 1)); Procedure TAnaForm.Cikis1Click(Sender: TObject); Close; Procedure TAnaForm.TumunuKapat1Click(Sender: TObject); Var i: integer; For i:= 0 to MdiChildCount - 1 do MDIChildren[i].Close; end; procedure TAnaForm.Basamakla1Click(Sender: TObject); Begin Cascade; End; Procedure TAnaForm.Dose1Click(Sender: TObject); Tile; procedure TAnaForm.TumunuKucult1Click(Sender: TObject); Var i: integer; For i:= MdiChildCount - 1 downto 0 do MDIChildren[i].WindowState := wsMinimized; Procedure TCocukForm.FormClose(Sender: TObject; var Action: TCloseAction); Action := caFree;