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
Seite 1 von 4  1 23     Letzte »    
Popov
(Gast)

n/a Beiträge
 
#1

Das Minimieren des Fensters abfangen

  Alt 14. Feb 2012, 11:53
Und zwar geht es um den Dektop-Button in der Quick Launch. Diese Anweisung minimiert alle Fenster, auch eine zweite Taskbar von mir, die eigentlich immer sichtbar sein sollte. Weiß einer was da passiert? Wie gesagt, SC_MINIMIZE ist es in dem Fall nicht.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: Das Minimieren des Fensters abfangen

  Alt 14. Feb 2012, 13:55
SC_...
Von Windows kommen WM_-Nachrichten.

Davon könntest du die Entsprechende abfangen/ignorieren.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: Das Minimieren des Fensters abfangen

  Alt 14. Feb 2012, 14:21
Erst lesen dann antworten...
Die Antwort kannst Du ignorieren, sorry;


####################################
Vielleicht in etwa so:

Code:
procedure TForm.FormResize(Sender: TObject);
begin
if form.windowstate = wsminimized then
  SendMessage(Handle,WM_SYSCOMMAND,SC_MINIMIZE,0);
end;

procedure TForm.MyWM_SYSCOMMAND(var aMsg: TMessage);
begin
  if aMsg.WParam = SC_MINIMIZE then
    Application.Minimize
  else
    inherited;
end;
Gruß
Philip

Geändert von Darlo (14. Feb 2012 um 14:24 Uhr)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#4

AW: Das Minimieren des Fensters abfangen

  Alt 14. Feb 2012, 14:46
SC_...
Von Windows kommen WM_-Nachrichten.
Da steht auch nirgendwo das Wort Message oder Nachricht. Ich meinte die SC_MINIMIZE Konstate der WM_SYSCOMMAND Message. Ich dachte das war ersichtlich.

Zitat:
Davon könntest du die Entsprechende abfangen/ignorieren.
Nun, das ist ja das Problem. Das scheint keine WM_SYSCOMMAND Message zu sein.

@Darlo

Das habe ich in etwa auch so versucht, ohne Erfolg.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Das Minimieren des Fensters abfangen

  Alt 14. Feb 2012, 14:47
Das dürfte auch nicht ganz so trivial sein: http://www.mombu.com/microsoft/windo...on-567693.html
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
 
#6

AW: Das Minimieren des Fensters abfangen

  Alt 14. Feb 2012, 16:48
Vllt reicht es so indem Du Deine Logik einsetzt:

Delphi-Quellcode:
    procedure WMSysCommand ( Var Message : TWMSysCommand ); message WM_SYSCOMMAND;
    procedure SizeMove (var msg: TWMSize); message WM_SIZE;

-----

procedure TForm1.WMSysCommand ( Var Message : TWMSysCommand );
begin
  inherited;
  case Message.CmdType of
    SC_RESTORE:
      begin
      end;
    SC_MAXIMIZE:
      begin
      end;
    SC_MINIMIZE:
      begin
      end;
  end;
end;

procedure TForm1.SizeMove(var msg: TWMSize);
begin
  inherited;
  case msg.SizeType of
    SIZE_RESTORED : ;
    SIZE_MINIMIZED: ;
    SIZE_MAXIMIZED: ;
    SIZE_MAXSHOW : ;
    SIZE_MAXHIDE : ;
  end;
end;
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#7

AW: Das Minimieren des Fensters abfangen

  Alt 17. Feb 2012, 02:13
@ConnorMcLeod

Klappt auch nicht. Ich hab in alles was mir einfiel ein Beep-Signal eingebaut, auch in Application.OnMinimize. Alles funktioniert wie es soll, nur nicht denn der Desktopbutton geklickt wird.

Ich gucke mir mal den Link von DeddyH genauer an, auch wenn mein Englisch beschissen ist
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

AW: Das Minimieren des Fensters abfangen

  Alt 17. Feb 2012, 07:02
Zitat:
Und zwar geht es um den Dektop-Button in der Quick Launch
Ich komme damit nicht klar.
Was verstehst du unter Quick Launch?

Meinst du den Button Desktop Anzeigen?
Wenn ja wer sagt dir das hier die Anwendungen Minimiert werden?
Ich möchte das bezweifeln.

Dieser Button schaltet die ZORDER des Desktop.

gruss

Geändert von EWeiss (17. Feb 2012 um 07:17 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

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

AW: Das Minimieren des Fensters abfangen

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

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

n/a Beiträge
 
#10

AW: Das Minimieren des Fensters abfangen

  Alt 17. Feb 2012, 08: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
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 16:30 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