AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fenster dynamisch aus Taskbar raus

Ein Thema von hoika · begonnen am 18. Mai 2015 · letzter Beitrag vom 19. Mai 2015
Antwort Antwort
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#1

Fenster dynamisch aus Taskbar raus

  Alt 18. Mai 2015, 18:00
Hallo,

ich möchte, dass ein Fenster per Button-Klick aus der Taskbar verschwindet.

c++-Code mit ModofyEx
http://www.codeguru.com/cpp/framewor...ion-button.htm

Delphi-Quellcode:
begin
    ShowWindow(Handle, SW_HIDE);

    SetWindowLong(Application.Handle, GWL_EXSTYLE,
       GetWindowLong(Application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW);

    ShowWindow(Handle,SW_SHOW);
end;
Klappt nur leider nicht.

Weiss jemand, wie das geht?

Danke

Heiko
Heiko
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#2

AW: Fenster dynamisch aus Taskbar raus

  Alt 18. Mai 2015, 18:11
Delphi-Quellcode:
procedure HideInTaskbar(AHandle: HWnd; Hide: Boolean);
const
  SW: array [Boolean] of Longword   = (SW_NORMAL, SW_HIDE);
var
  Owner: HWnd;
begin
  {Um den Taskbar-Eintrag des Moduls zu verstecken, muß das
  Applikationsfenster (nicht die MainForm!) unsichtbar gemacht werden.}

  Owner := GetWindow(AHandle, GW_OWNER);
  ShowWindow(Owner, SW[Hide]);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  HideInTaskbar(Handle, True);
end;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Fenster dynamisch aus Taskbar raus

  Alt 18. Mai 2015, 18:18
Welches Delphi?

Zwecks Aero-Support seit Vista ist in "aktuelleren" Delphiversionen standardmäßig nicht mehr Application (ein unsichtbares MessageOnlyWindow) in der Taskbar, sondern die Mainform, sonst zeigt die Preview nur "Mist" an.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#4

AW: Fenster dynamisch aus Taskbar raus

  Alt 18. Mai 2015, 18:22
Delphi 7 in Windows 7, Funktion funktioniert.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Fenster dynamisch aus Taskbar raus

  Alt 18. Mai 2015, 18:43
Delphi 7 in Windows 7, Funktion funktioniert.
Zitat:
"aktuelleren" Delphiversionen


http://docwiki.embarcadero.com/Libra...nFormOnTaskBar
Und das gibt es bestimmt schon mindestens seit 6-7 Jahren.

Und demnach funktioniert Delphi 7 in Win7 doch nicht "richtig", oder was zeigt die Aero-Preview (Aero Peek) oder der Taskswitcher (Win+Tab) bei dir an? Vermutlich nicht den Inhalt der Mainform.
Aber ja, der Code würde genau so, also ohne Änderungen am Code, sogar in neueren Delphis funktionieren, aber das will man doch garnicht.
Miniaturansicht angehängter Grafiken
aero_peek_03.jpg  
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (18. Mai 2015 um 19:07 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Fenster dynamisch aus Taskbar raus

  Alt 19. Mai 2015, 04:45
Hallo,
im Moment noch D2007, soll aber bald XE4 werden.
Vom Ändern von MainFormOnTaskbar wird im Artikel ja abgeraten.

Danke

Heiko
Heiko

Geändert von hoika (19. Mai 2015 um 04:57 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Fenster dynamisch aus Taskbar raus

  Alt 19. Mai 2015, 06:19
Hallo,

beides hat nicht geklappt.
Aber das hier klappt.

// verstecken
Application.MainFormOnTaskBar := False;
ShowWindow(Application.Handle, SW_HIDE);

// wieder anzeigen
Application.MainFormOnTaskBar := True;
ShowWindow(Application.Handle, SW_SHOW);

Das Verstecken erzeugt einen kleinen Flacker-Effekt,
aber das ist mir egal.

Trotzdem Danke an Euch.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Fenster dynamisch aus Taskbar raus

  Alt 19. Mai 2015, 07:45
Wenn man das richtige Handle benutzt, dann geht's auch so ...

Delphi-Quellcode:
if Application.MainFormOnTaskBar then
  Application.MainForm.Handle
else
  Application.Handle
Der Code muß auf die Form angewendet werden, welche sich in der Taskbar befindet ... egal welche das ist


Aber bei vorallem bei der MainForm, ist "Hide" nicht immer die beste Idee, sondern eher das Ändern des Fenster-Stils, jedenfalls wenn die Form gleichzeitig oben sichtbar sein soll.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz