Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi "Desktop anzeigen"-Problem (https://www.delphipraxis.net/106246-desktop-anzeigen-problem.html)

Aurelius 7. Jan 2008 21:41


"Desktop anzeigen"-Problem
 
Hi DPler :hi:

in meinem programm ändert sich die Caption der Mainform (hier wird in einem "animierten" TExt der name einer Musikdatei angezeigt. Da ich aber auch ein Deskband nutze muss das Fenster in minimiertem Zustand einen Konst. Namen besitzen.

Delphi-Quellcode:
procedure TfrmMain.Minimieren(Sender : TObject);
var info : tPlaylistenitem;
begin
  Minimiert := not minimiert;
  if (BassDllPlayer1.Status = sndPlaying) and not minimiert then
  begin
    info:=Manager.GetPlayListenItem(frmPlaylist.lsbPlaylist.items, TrackNR);
end;

Application.OnMinimize := Minimieren;
Application.OnRestore := Minimieren;
In einem Timer wird dann immer die jeweilige Caption gesetzt. Ich habe aber bemerkt dass "Desktop anzeigen" wohl kein OnMinimite auslöst. Wie könnte ich das lösen? (außer getrennte Prozeduren für Restore und minimze)

DP-Maintenance 7. Jan 2008 22:03

DP-Maintenance
 
Dieses Thema wurde von "SirThornberry" von "Sonstige Fragen zu Delphi" nach "VCL / WinForms / Controls" verschoben.

chest3rs 8. Jan 2008 11:43

Re: "Desktop anzeigen"-Problem
 
Hi,

Probier mal die Eigenschaft WindowState des Formulars zu überwachen.

Delphi-Quellcode:
if WindowState = wsMinimized then
MfG

OregonGhost 8. Jan 2008 12:20

Re: "Desktop anzeigen"-Problem
 
Zitat:

Da ich aber auch ein Deskband nutze muss das Fenster in minimiertem Zustand einen Konst. Namen besitzen.
Das Fenster muss einen konstanten Namen besitzen im minimierten Zustand? Warum das, bzw. was meinst du?

Davon abgesehen, "Desktop anzeigen" minimiert in der Tat keine Fenster, sondern es holt das Desktop-Fenster in den Vordergrund. Vielleicht hilft dir eine Abfrage, ob sich das Desktop-Fenster vor deinem befindet?

Aurelius 8. Jan 2008 12:23

Re: "Desktop anzeigen"-Problem
 
ich muss mir mit FindWindow das Handle meines Programmes holen und dann die Messages an das betreffende welche abschicken. Ohne konst. Namen geht das nicht (oder täusche ich mich da?).

OregonGhost 8. Jan 2008 13:01

Re: "Desktop anzeigen"-Problem
 
Ach so, dein Deskband holt sich das Hauptfenster-Handle oder sowas in der Richtung? Nun, es gibt natürlich noch weitere IPC-Mechanismen, die du vielleicht benutzen könntest. Aber davon abgesehen kannst du doch statt nach dem Fensternamen (-titel) auch einfach nach dem Klassennamen mit FindWindow suchen, oder? Und wenn du den Handle einmal hast, kannst du ihn ja auch speichern (außer das Fenster wird eventuell neu erzeugt).
Vielleicht hab ich das auch einfach nicht ganz richtig verstanden, aber möglicherweise hilft dir das ja schon weiter ;)

Aurelius 8. Jan 2008 13:09

Re: "Desktop anzeigen"-Problem
 
Wie meinst du das mit "Klassenname suchen"? :gruebel:

OregonGhost 8. Jan 2008 13:12

Re: "Desktop anzeigen"-Problem
 
Nun, der erste Parameter von FindWindow ist doch der Klassenname des Fensters. Der ist doch typischerweise immer derselbe. Wenn du danach suchst, ist der Name (also Titel) des Fensters irrelevant. Dein Klassenname sollte dann nur vielleicht einigermaßen aussagekräftig sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz