Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi WM_SIZE - wie wParam erfragen? (https://www.delphipraxis.net/208074-wm_size-wie-wparam-erfragen.html)

Chearly020664 5. Jun 2021 00:01

WM_SIZE - wie wParam erfragen?
 
Hallo,

WM_SIZE wird an ein Fenster gesendet, nachdem sich die Größe geändert hat.

https://docs.microsoft.com/de-de/win...winmsg/wm-size

Wie komme ich in folgender unfertigen procedure an wParam von WM_SIZE? Ich muss aus wParam auf "wiederhergestelltes Fenster", "maximiertes Fenster" u. "minimiertes Fenster" schließen.

Delphi-Quellcode:
procedure WMSIZE(var Message: TMessage); message WM_SIZE;
.
.
.
procedure TForm1.WMSIZE(var Message: TMessage);
begin
     ShowMessage('WM_SIZE');
end;
Irgendwas mit WindowProc?
Verwirrung, Verzweifelung, Chaos :roll:

Danke für Hilfe
Grüße

KodeZwerg 5. Jun 2021 00:06

AW: WM_SIZE - wie wParam erfragen?
 
Reagiere doch auf Maximiert und Minimiert um daraus was anzufangen wie ich es Dir hier gezeigt habe.

Uwe Raabe 5. Jun 2021 00:11

AW: WM_SIZE - wie wParam erfragen?
 
Zitat:

Zitat von Chearly020664 (Beitrag 1490686)
Wie komme ich in folgender unfertigen procedure an wParam von WM_SIZE?

Delphi-Quellcode:
  case Message.WParam of
    SIZE_MAXIMIZED: ;
    SIZE_MINIMIZED:;
    SIZE_RESTORED: ;
  end;

Chearly020664 5. Jun 2021 00:27

AW: WM_SIZE - wie wParam erfragen?
 
Delphi-Quellcode:
procedure TForm15.WMSysCommand(var msg: TWmSysCommand);
begin
  case msg.CmdType of
    SC_MINIMIZE: ShowMessage('Minimize');
    SC_MAXIMIZE: ShowMessage('Maximize');
  end;

  inherited;
end;
Danke, das ist gut gemeint, aber ShowMessage('Minimize'); oder ShowMessage('Maximized'); werden leider vor der Minimierung oder Maximierung ausgeführt.

Chearly020664 5. Jun 2021 00:37

AW: WM_SIZE - wie wParam erfragen?
 
Delphi-Quellcode:
case Message.WParam of
    SIZE_MAXIMIZED: ;
    SIZE_MINIMIZED:;
    SIZE_RESTORED: ;
  end;
Danke, was kann die Welt einfach sein ..., ach was wäre das doch schön, wenn das Einfügen von
Delphi-Quellcode:
procedure WMSIZE(var Message: TMessage); message WM_SIZE;
.
.
.
procedure TForm1.WMSIZE(var Message: TMessage);
begin
     //mach gar nichts
end;
keinen durch Null geteilt-Fehler geben würde.
Danke - ich suche und kämpfe mit Microsoft ...
Grüße

KodeZwerg 5. Jun 2021 00:58

AW: WM_SIZE - wie wParam erfragen?
 
Zitat:

Zitat von Chearly020664 (Beitrag 1490690)
Danke, das ist gut gemeint, aber ShowMessage('Minimize'); oder ShowMessage('Maximized'); werden leider vor der Minimierung oder Maximierung ausgeführt.

dann setz
Delphi-Quellcode:
inherited;
als erste zeile und nicht als letzte ...

Chearly020664 5. Jun 2021 02:21

AW: WM_SIZE - wie wParam erfragen?
 
Hallo KodeZwerg,

herzlichen dank, alles funktioniert jetzt perfekt und ich habe gelernt ...

Delphi-Quellcode:
procedure TForm1.WMSysCommand(var msg: TWmSysCommand);
begin
  inherited;
  case msg.CmdType of
    SC_MINIMIZE: Apfelmann1Click(self);
    SC_MAXIMIZE: Apfelmann1Click(self);
    SC_RESTORE: Apfelmann1Click(self);
  end;
end;

KodeZwerg 5. Jun 2021 09:26

AW: WM_SIZE - wie wParam erfragen?
 
Zitat:

Zitat von Chearly020664 (Beitrag 1490693)
ich habe gelernt

Super :thumb: Genau darum geht es ja hier 8-) plus Spaß an Delphi haben :cheers:


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:07 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