Da der AppButton von Dir/satty67 wirklich eine schöne Spielerei ist, habe ich für das in #16 gepostete "Projekt" ein wenig in der
unit uAppButton 2.5 herumgepfuscht. Die Änderungen sind mit //Gustav kenntlich gemacht
Delphi-Quellcode:
procedure TAppButton.MainFormWndProc(var Message: TMessage);
begin
if Assigned(fMainFormWndProc) then
fMainFormWndProc(Message);
case Message.Msg of
WM_MOVE, WM_MOVING:
begin
MoveButtonWindow(True);
end;
WM_STYLECHANGED, WM_SETTINGCHANGE:
begin
Color := Color;
Invalidate;
end;
WM_SYSCOMMAND:
begin
if (Message.WParam = SC_MAXIMIZE) or (Message.WParam = SC_RESTORE) then
begin //Gustav
Visible := true; //Gustav
Invalidate;
end; //Gustav
if (Message.WParam = SC_MINIMIZE) then Visible := false; //Gustac
end;
WM_NCACTIVATE {, WM_ACTIVATE, WM_SHOWWINDOW, WM_EXITSIZEMOVE}:
begin
Visible := true; //Gustav
Invalidate;
end;
WM_NCCALCSIZE:
begin
if fOSStyle = absClassic then
Invalidate;
end;
end;
end;
Unter Vista klappt es damit ganz gut, beim Klicken auf "Minimieren" bleibt der deaktivierte AppButten nicht mehr auf dem Desktop hängen
Klar, weil ich ihn verschwinden lasse
Irgendwelche sonstigen Verhaltenweisen/Eigenschaften des AppButtons habe ich
NICHT durchgetestet!
Ergänzung/Nachtrag zu meinem Post #19:
Zitat: "Starte ich meine Demo (unter Vista) über eine Desktop-Verknüpfung mit der Eigenschaft "maximiert", so erscheint der AppButton an "poDesigned" anstatt links oben in der Ecke. Erst beim Drüberfahren mit der Maus huscht er nach links oben."
Nachtrag dazu: Der AppButton ist links bereits an der richtigen Position, nur eben nicht
oben in der Ecke! Sondern bei "poDesigned". Vermutlich klappt da was bei TAppButton.MoveButtonWindow bei der Positionsberechnung nicht so ganz?
Null Ahnung meinerseits! Aber vielleicht hilft's ja Dir/satty67 für das nächste Update?
LG
Gustav