AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Das Minimieren des Fensters abfangen
Thema durchsuchen
Ansicht
Themen-Optionen

Das Minimieren des Fensters abfangen

Ein Thema von Popov · begonnen am 14. Feb 2012 · letzter Beitrag vom 8. Mär 2012
Antwort Antwort
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Das Minimieren des Fensters abfangen

  Alt 17. Feb 2012, 06:42
Hilft das hier?
Oder das?
Nr.1 Delphi-Tool: [F7]

Geändert von ConnorMcLeod (17. Feb 2012 um 06:52 Uhr) Grund: zweiter Link
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#2

AW: Das Minimieren des Fensters abfangen

  Alt 17. Feb 2012, 07:53
Ok, danke Jungs, es hat geklappt.

Bedingt, wobei ich mit OnDeActivate und OnMinimaze es auch schon versucht habe.

Was verstehst du unter Quick Launch?
Ich meine die Schnellstart-Leiste

Ist zum Mäuse melken. Jahre lang schrieb ich immer "Schnellstart-Leiste". Als Antwort bekam ich: "Hä, was ist eine Schnellstartleiste? Meinst du die Quick Launch?". Schreibe ich Quick Launch... ach, ist egal.

Zitat:
Wenn ja wer sagt dir das hier die Anwendungen Minimiert werden?
Ich möchte das bezweifeln.
Ich eigentlich auch, wobei es optisch nach minimieren aussieht. Spätestes nachdem ich gemerkt habe, dass keine Message ankommt.

Zitat:
Dieser Button schaltet die ZORDER des Desktop.
Das war das Stichwort. Obwohl das Stichwort, der Versuch ConnorMcLeod's Tipp auszuführen und die Kleinigkeit, dass eines meine Programme die im Hintergrund laufen beim Versuch oben blieben, ergab, dass das die Lösung ist:

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  SetWindowPos(Handle, HWND_TOPMOST, Left,Top, Width, Height, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
  SetWindowLong(Handle, GWL_HWNDPARENT, 0);
end;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#3

AW: Das Minimieren des Fensters abfangen

  Alt 17. Feb 2012, 07:59
Polling per Timer? Naja, wenn es funktioniert...
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#4

AW: Das Minimieren des Fensters abfangen

  Alt 17. Feb 2012, 08:11
Ok, wenn ich Zeit habe überlege ich mir etwas anderes, aber vorerst funktioniert es.

Aber letztendlich läuft es doch immer auf einen Timer aus, auch wenn ich nicht brutal das Fenster nach vorne stelle, sondern erst abfrage ob es nötig ist.

Denn das ist die Funktion:

Command=ToggleDesktop

Wie soll ich das abfangen?
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Das Minimieren des Fensters abfangen

  Alt 17. Feb 2012, 08:14
Fein, wenn's funkt, aber schöner fände ich, wenn man die Message ans Desktop-Fenster irgendwie mitschnüffeln könnte und darauf reagieren kann. Dadurch müßte der Timer nicht dauernd aktiv sein. Oder ganz entfallen.
So, wie z.B.:

Code:
wenn die Message daher kommt...
  warte, bis ich nicht mehr topmost bin, dann
  solange ich nicht topmost bin
    setz mich topmost
  gut ist
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#6

AW: Das Minimieren des Fensters abfangen

  Alt 17. Feb 2012, 08:17
Wie in dem von mir weiter oben verlinkten Thread steht:
Zitat:
"Show Desktop" sends the command "ToggleDesktop", which, among other things, posts a DTM_RAISE message (WM_USER + 83) to the Desktop (Progman) to set it on foreground.

This could be used to intercept the "Show Desktop" command by an application, but it would involve installing a global hook.
Wenn man bereit ist, den Aufwand zu treiben, hat man eine recht elegante Lösung.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Das Minimieren des Fensters abfangen

  Alt 17. Feb 2012, 08:38
Yo, den global Hook habe ich überlesen, mir aber sowas gedacht. Vllt ist mir am WE langweilig, dann setz ich mich dran, weil ich das auch brauchen könnte.
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#8

AW: Das Minimieren des Fensters abfangen

  Alt 17. Feb 2012, 09:09
Wenn man bereit ist, den Aufwand zu treiben, hat man eine recht elegante Lösung.
Letztendlich hätte ich den Aufwand betrieben und werde es auch machen, wobei das Problem in erster Linie gelöst ist. Wir wissen nun was das Problem ist, was es ist und was es nicht ist und was die Lösung ist. Der Rest ist nur noch eine Fleißarbeit.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Das Minimieren des Fensters abfangen

  Alt 17. Feb 2012, 11:01
Es gibt hierfür einen komplizierten Weg, so wie bislang hier beschrieben

oder eben einen einfaachen Weg (den ich immer bevorzuge)

Im Anhang die kompilierte Anwendung und der Source.

Und wie man sieht war der Ansatz schon richtig, aber die Stelle war falsch
Angehängte Dateien
Dateityp: zip NoMinimizeForm.zip (605,2 KB, 11x aufgerufen)
Dateityp: zip NoMinimizeForm_source.zip (5,0 KB, 24x aufgerufen)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (17. Feb 2012 um 11:15 Uhr)
  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 03:56 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