There is MDI-application which contains main form fMain and children forms- fChartAcc and fReal. Main form is maximized and client area of main form is limited in screen sizes. When children forms is opened, in client area of main form I can't see bottom part of children forms and appear horizontal scroll bars on childen forms. I want fully paste child form in client area of main form, in screen sizes and, accordingly, in main form sizes without need in horizontal scroll bar.
Main form: Formstyle:MDIForm
Childred forms:
Formstyle:MDIChild
Align- alClient or alCustom
Position-tried poDefaultPosOnly, poDefault, poDesigned
autoSize:false
tried settings of size of chilled forms place in procedures OnCreate, OnShow, OnResize but no success.
Main form: Formstyle:MDIForm
Childred forms:
Formstyle:MDIChild
Align- alClient or alCustom
Position-tried poDefaultPosOnly, poDefault, poDesigned
autoSize:false
tried settings of size of chilled forms place in procedures OnCreate,
OnShow, OnResize but no success.
unit Umain;
procedure TFmain.MDIChildCreated(const childHandle : THandle);
begin
mdiChildrenTabs.Tabs.AddObject(TForm(FindControl(childHandle)).Caption, TObject(childHandle));
mdiChildrenTabs.TabIndex := -1 + mdiChildrenTabs.Tabs.Count;
end;
procedure TFmain.MDIChildDestroyed(const childHandle : THandle);
var
idx: Integer;
begin
idx := mdiChildrenTabs.Tabs.IndexOfObject(TObject(childHandle));
mdiChildrenTabs.Tabs.Delete(idx);
end;
procedure TFmain.NChartAccClick(Sender: TObject);
begin
application.CreateForm(TfChartAcc, fChartAcc);
fChartAcc.Show;
end;
procedure TFmain.realisatia1Click(Sender: TObject);
begin
application.CreateForm(TFgas, Fgas);
Fgas.Show;
end;
end.
unit UChartAcc;
procedure TfChartAcc.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=caFree;
end;
procedure TfChartAcc.FormCreate(Sender: TObject);
begin
Left:=0;
Top:=Fmain.Toolbar.Height+Fmain.MDIChildrentabs.height;
Height:=Fmain.ClientHeight-Fmain.Toolbar.Height-Fmain.MDIChildrentabs.height-Fmain.StatusBar.Height-2*GetSystemMetrics(SM_CXEDGE);
Width:=Fmain.ClientWidth- 2*GetSystemMetrics(SM_CXEDGE);
FMain.MDIChildCreated(self.Handle);
end;
procedure TfChartAcc.FormDestroy(Sender: TObject);
begin
FMain.MDIChildDestroyed(self.Handle);
end;
procedure TfChartAcc.FormResize(Sender: TObject);
begin
{
Left:=0;
Top:=Fmain.Toolbar.Height+Fmain.MDIChildrentabs.height;
Height:=Fmain.ClientHeight-Fmain.Toolbar.Height-Fmain.MDIChildrentabs.height-Fmain.StatusBar.Height-2*GetSystemMetrics(SM_CXEDGE);
Width:=Fmain.ClientWidth- 2*GetSystemMetrics(SM_CXEDGE);
}
end;
procedure TfChartAcc.FormShow(Sender: TObject);
begin
Left:=0;
Top:=Fmain.Toolbar.Height+Fmain.MDIChildrentabs.height;
Height:=Fmain.ClientHeight-Fmain.Toolbar.Height-Fmain.MDIChildrentabs.height-Fmain.StatusBar.Height-2*GetSystemMetrics(SM_CXEDGE);
Width:=Fmain.ClientWidth- 2*GetSystemMetrics(SM_CXEDGE);
end;
end.