try to fix loading TToolBar in Windows Vista

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@602 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
alexs75
2008-11-06 08:36:09 +00:00
parent c8b07b57d1
commit 5324bbc6fb

View File

@@ -188,6 +188,7 @@ type
procedure MouseUp(Button: TMouseButton; Shift: TShiftState; procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override; X, Y: Integer); override;
procedure RequestAlign; override; procedure RequestAlign; override;
procedure Loaded; override;
public public
constructor Create(AOwner: TComponent); override; constructor Create(AOwner: TComponent); override;
destructor Destroy; override; destructor Destroy; override;
@@ -1027,19 +1028,23 @@ var
begin begin
if not AutoSizeCanStart then exit; if not AutoSizeCanStart then exit;
if csDesigning in ComponentState then exit;
if Items.Count > 0 then if Items.Count > 0 then
begin begin
H:=0; try
for i:=0 to Items.Count-1 do H:=0;
if Assigned(Items[i].FButton) and Items[i].FButton.HandleObjectShouldBeVisible then for i:=0 to Items.Count-1 do
H:=Max(H, Items[i].Height); if Assigned(Items[i].FButton) and Items[i].FButton.HandleObjectShouldBeVisible then
if H>0 then H:=Max(H, Items[i].Height);
begin if H>0 then
H:=H +BorderWidth * 2; begin
SetBoundsKeepBase(Left,Top,Width,H,true); H:=H +BorderWidth * 2;
ReAlignToolBtn; SetBoundsKeepBase(Left,Top,Width,H,true);
end; ReAlignToolBtn;
end;
finally
end
// Exclude(FControlFlags,cfAutoSizeNeeded); // Exclude(FControlFlags,cfAutoSizeNeeded);
end end
else else
@@ -1065,6 +1070,18 @@ begin
ReAlignToolBtn; ReAlignToolBtn;
end; end;
procedure TToolPanel.Loaded;
var
i, L:integer;
begin
if csDesigning in ComponentState then
begin
for i:=0 to FToolbarItems.Count - 1 do
FToolbarItems[i].UpdateLeftAfterLoad;
end;
inherited Loaded;
end;
constructor TToolPanel.Create(AOwner: TComponent); constructor TToolPanel.Create(AOwner: TComponent);
begin begin
inherited Create(AOwner); inherited Create(AOwner);