Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.214 Beiträge
 
Delphi 12 Athens
 
#13

AW: Hauptformular ausblende beim wechsel auf ein anderes Form ?

  Alt 24. Jul 2020, 14:58
Die Frage ist aber auch, wird "nur" mit WS_EX_APPWINDOW der Taskbutton auch dann angezeigt, wenn die Form unsichtbar (Visible=False) ist?

PS:
GetWindowLongPtr ist eigentlich hier falsch, denn die Windows-Styles sind immer Integer, deswege nur GetWindowLong,
denn LongPtr ist bei 64 Bit-Programmen ein LargeInteger/Int64.

Und da WS_EX_APPWINDOW nur 1 Bit ist, brauchst es nicht geziehlt/doppelt zu vergleichen.

Delphi-Quellcode:
procedure ShowFormOnTaskbar(Form : TForm);
var
  WindowStyle : LONG_PTR;
begin
  WindowStyle := GetWindowLong(Form.Handle, GWL_EXSTYLE);
  if WindowStyle and WS_EX_APPWINDOW = 0 then
    SetWindowLong(Form.Handle, GWL_EXSTYLE, WindowStyle or WS_EX_APPWINDOW);
end;

procedure HideFormFromTaskbar(Form : TForm);
var
  WindowStyle : LONG_PTR;
begin
  WindowStyle := GetWindowLongPtr(Form.Handle, GWL_EXSTYLE);
  if WindowStyle and WS_EX_APPWINDOW <> 0 then
    SetWindowLongPtr(Form.Handle, GWL_EXSTYLE, WindowStyle xor WS_EX_APPWINDOW);
end;
Delphi-Quellcode:
// auf Neudelphianisch
procedure ShowFormOnTaskbar(Form : TForm);
begin
  var WindowStyle := GetWindowLong(Form.Handle, GWL_EXSTYLE);
  if WindowStyle and WS_EX_APPWINDOW = 0 then
    SetWindowLong(Form.Handle, GWL_EXSTYLE, WindowStyle or WS_EX_APPWINDOW);
end;

// oder einfach immer zuweisen, egal ob es sich geändert hat
procedure ShowFormOnTaskbar(Form : TForm);
begin
  SetWindowLongPtr(Form.Handle, GWL_EXSTYLE,
    GetWindowLongPtr(Form.Handle, GWL_EXSTYLE) or WS_EX_APPWINDOW);
end;
$2B or not $2B
  Mit Zitat antworten Zitat