Registriert seit: 19. Apr 2003
1.291 Beiträge
Delphi 2005 Professional
|
Re: "echter" Dropdown-Toolbutton...
11. Jan 2004, 23:05
Danke
Ich hab den Code noch etwas erweitert, da dieser Style erst ab IE5 verfügbar ist und es mit IE4 (oder früher) zu unerwarteten Verhalten kommen könte:
Delphi-Quellcode:
uses
CommCtrl, Registry;
procedure TBSetWholeDropDown(hTB: THandle; iButton: integer);
function IEReady: Boolean;
var
Reg: TRegistry;
Tmp: string;
begin
Result := False;
Reg := TRegistry.Create;
try
Reg.Access := KEY_READ;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('Software\Microsoft\Internet Explorer', False);
Tmp := Reg.ReadString('Version');
if pos('.', Tmp) > 0 then
Tmp := copy(Tmp, 1, pos('.', Tmp) - 1);
Result := StrToIntDef(Trim(Tmp), 0) >= 5;
Reg.CloseKey;
finally
Reg.Free;
end;
end;
var
tBB: TTBBUTTON;
tBI: TBBUTTONINFO;
const
BTNS_WHOLEDROPDOWN = $0080;
begin
if IEReady then
begin
FillChar(tBB, SizeOf(tBB), 0);
SendMessage(hTB, TB_GETBUTTON, iButton, Integer(@tBB));
FillChar(tBI, SizeOf(tBI), 0);
tBI.cbSize := SizeOf(tBI);
tBI.dwMask := TBIF_STYLE;
SendMessage(hTB, TB_GETBUTTONINFO, tBB.idCommand, Integer(@tBI));
tBI.fsStyle := tBI.fsStyle or BTNS_WHOLEDROPDOWN;
SendMessage(hTB, TB_SETBUTTONINFO, tBB.idCommand, Integer(@tBI));
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
TBSetWholeDropDown(ToolBar1.Handle, 0);
end;
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
|
|
Zitat
|