procedure TMainForm.SetBands(AControls: array of
TWinControl;ABreaks: array of boolean);
var
i: integer;
begin
with CoolBar do
begin
for i:=0 to High(AControls) do
begin
if Bands.Count=succ(i) then TCoolBand.Create(Bands);
with Bands[succ(i)] do
begin
if Assigned(Control) then Control.Hide;
MinHeight:=AControls[i].Height;
Break:=ABreaks[i];
Control:=AControls[i];
Control.Show;
Visible:=true;
end
end;
for i:=High(AControls)+2 to pred(Bands.Count) do
Bands[i].Free
end
end;
è
procedure TMsgForm.FormActivate(Sender: TObject);
begin
MainForm.SetBands([ToolBar],[false])
end;
Ïpèìå÷àíèå:
Îáà ìàññèâà pàâíû ïî äëèíå. CoolBar.Bands[0]
äîëæåí ñóùåñòâîâàòü âñåãäà,.. íà í¸ì
ÿ pàçìåøàþ "ãëîáàëüíûå" êíîïêè.
ÑoolBar[1] òîæå ìîæíî ñäåëàòü â DesignTime ñ
Break:=false è ïpèäâèíóòü ïîáëèæå ñ
íà÷àëó. Ïpè CoolBar.AutoSize:=true âîçìîæíî
"ìèãàíèè" (ïpè äîáàâëåíèè íà
íîâóþ ñòpîêó) òàê ÷òî ìîæíî
äîáàâèòü:
AutoSize:=false; try ... finally AutoSize:=true;
TMainForm
...
object SpeedBar: TPanel
...
Align = alTop
BevelOuter = bvNone
object ToolBar: TPanel
...
Align = alLeft
BevelOuter = bvNone
end
object RxSplitter1: TRxSplitter
...
ControlFirst = ToolBar
ControlSecond = ChildBar
Align = alLeft
BevelOuter = bvLowered
end
object ChildBar: TPanel
....
Align = alClient
BevelOuter = bvNone
end
end
TMdiChild {ïpàðîäèòåëü âñåõ îñòàëüíûõ}
..
object pnToolBar: TPanel
...
Align = alTop
BevelOuter = bvNone
Visible = False
end
procedure TMDIForm.FormActivate(Sender: TObject);
begin
pnToolBar.Parent:=MainForm.ChildBar;
pnToolBar.Visible:=True;
end;
procedure TMDIForm.FormDeactivate(Sender: TObject);
begin
pnToolBar.Visible:=false;
pnToolBar.Parent:=self
{pnToolBar.Visible:=false}
end;
Jury Martynov
(2:5020/800.21)