- MDI formlarda farklı clientlar için ne yapmalıyım. Nasıl bir mantık önerirsiniz
- Standart bazı propertyler içeren(Oluşan her MDIChield ta Pagecontrole tab sekmesi oluşturmak gibi) formumdan yeni formlar inherit etmek istiyorum. Bunun için nasıl bir yöntem izlememi tavsiye edersiniz
Mehmet
Not: Meraklısı için MDIChild oluşurken nasıl TPageControl üzerinde tab oluşturulduğuna dair kod aşağıdadır.
Kod: Tümünü seç
// Project1.dpr olarak kaydedin
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {FormInduk},
Unit2 in 'Unit2.pas' {FormAnak};
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TFormInduk, FormInduk);
Application.CreateForm(TFormAnak, FormAnak);
Application.Run;
end.
// Unit1.pas olarak kaydedin
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, Menus;
type
TFormInduk = class(TForm)
PageControl1: TPageControl;
MainMenu1: TMainMenu;
AddAnak1: TMenuItem;
procedure AddAnak1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormInduk: TFormInduk;
AnakCount: Integer;
implementation
uses Unit2;
{$R *.DFM}
procedure TFormInduk.FormCreate(Sender: TObject);
begin
AnakCount := 2;
end;
procedure TFormInduk.AddAnak1Click(Sender: TObject);
begin
FormAnak := TFormAnak.Create(Application);
FormAnak.Caption := 'Bilinmeyen ' + IntToStr(AnakCount);
FormAnak.MDITab.Caption := FormAnak.Caption;
Inc(AnakCount);
end;
end.
// Unit1.dfm olarak kaydedin
object FormInduk: TFormInduk
Left = 192
Top = 110
Width = 435
Height = 300
Caption = 'Test Uygulaması'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
FormStyle = fsMDIForm
Menu = MainMenu1
OldCreateOrder = False
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object PageControl1: TPageControl
Left = 0
Top = 0
Width = 427
Height = 25
Align = alTop
TabOrder = 0
end
object MainMenu1: TMainMenu
Left = 200
Top = 120
object AddAnak1: TMenuItem
Caption = 'Childekle'
OnClick = AddAnak1Click
end
end
end
// Unit2.pas olarak kaydedin
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls;
type
TFormAnak = class(TForm)
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
MDITab: TTabSheet;
procedure MDITabShow(Sender: TObject);
end;
var
FormAnak: TFormAnak;
implementation
uses Unit1;
{$R *.DFM}
procedure TFormAnak.MDITabShow(Sender: TObject);
begin
BringToFront;
end;
procedure TFormAnak.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree; // FormAnak kapatılıyor
MDITab.Free;
end;
procedure TFormAnak.FormCreate(Sender: TObject);
begin
MDITab := TTabSheet.Create(Application);
MDITab.PageControl := FormInduk.PageControl1;
MDITab.Caption := 'Bilinmeyen 1';
MDITab.OnShow := MDITabShow;
end;
procedure TFormAnak.FormActivate(Sender: TObject);
begin
MDITab.Show;
end;
end.
// Unit2.dfm olarak kaydedin
object FormAnak: TFormAnak
Left = 192
Top = 110
Width = 435
Height = 300
Caption = 'Bilinmeyen 1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
FormStyle = fsMDIChild
OldCreateOrder = False
Position = poDefault
Visible = True
OnActivate = FormActivate
OnClose = FormClose
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
end