Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   WM_SIZE Handler Maximize, Minimize,... (https://www.delphipraxis.net/157354-wm_size-handler-maximize-minimize.html)

Dunkelbunt27 9. Jan 2011 10:46

WM_SIZE Handler Maximize, Minimize,...
 
Hallo Delphi Praxis,

vor kurzem hat man mir die Seite http://social.msdn.microsoft.com/Sea...?Query=WM_SIZE empfohlen um ein Problem beim resizen zu lösen.
Jetzt möchte ich die Ereignisse
1) Fenster maximieren,
2) Fenster minimieren,
3) Fenstergröße wiederherstellen und
4) Fenster neu laden (aus der Taskleiste) erstellen.

Size_Maximized, Size_Minimized, Size_Rerstored ... müsste ich eigentlich verwenden können.
Ich kenne mich damit noch nicht sehr gut aus und habe Probleme die richtige procedure deklarierung im type Teil der Form zu finden.
Ich hab es mit folgendem veruscht:
Delphi-Quellcode:
type
TForm1 = class(TForm)
procedure WMSizeMaximized(var Message: TMessage); message WM_SIZE;
[...]

procedure TSchreibmaschine.WMSizeMaximized(var Message: TMessage);
begin
  neuzeichnen;
end;
Ich bekomme beim kompilieren zahlreiche Fehlermeldungen und nichts funktioniert.
Was ich suche ist jemand der von WM_Size ahnung hat und mir erklären kann,
wie ich es richtig benutzen kann.
Ich möchte wissen wie man das jeweilige im Quelltext schreibt, ich weiß z.B. das man:
Delphi-Quellcode:
procedure WMSizeMaximized(var Message: TMessage); message WM_SIZE;
so schreibt, bei den anderen habe ich leider keine Ahnung.

Ich hoffe ihr könnt mir helfen,
FG Dunkelbunt

Luckie 9. Jan 2011 10:50

AW: WM_SIZE Handler Maximize, Minimize,...
 
Zitat:

Zitat von Dunkelbunt27 (Beitrag 1073383)
Ich bekomme beim kompilieren zahlreiche Fehlermeldungen und nichts funktioniert

Interessant und nun? Sollen wir die Fehlermeldungen raten?

Bummi 9. Jan 2011 10:54

AW: WM_SIZE Handler Maximize, Minimize,...
 
Häng die Deklaration in den private Teil und vergiss inherited nicht.

Dunkelbunt27 9. Jan 2011 10:55

AW: WM_SIZE Handler Maximize, Minimize,...
 
Liste der Anhänge anzeigen (Anzahl: 1)
Natürlich nicht,
hier die Fehlermeldung (es kommt bei genauer betrachtung 4x dieselbe).

Dunkelbunt27 9. Jan 2011 10:57

AW: WM_SIZE Handler Maximize, Minimize,...
 
Zitat:

Häng die Deklaration in den private Teil und vergiss inherited nicht.
:gruebel:

Könntest du mir das mal am Beispiel erklären, oder am besten kurz im Quelltextform schreiben?

wäre ganz lieb

Bummi 9. Jan 2011 10:58

AW: WM_SIZE Handler Maximize, Minimize,...
 
klingt nach einem Fehler in neuzeichnen;

Dunkelbunt27 9. Jan 2011 11:03

AW: WM_SIZE Handler Maximize, Minimize,...
 
Wie leitet man denn normalerwiese das Ereignis ein, wenn das Fenster vergrößert wird, das Grundgerüst dazu müsste doch jedesmal gleich sein, oder?
Das zeichnen funktioniert eigentlich, es ist einfach übernommen, da bei alles anderen Schritten im Programm, wie resizen, ... läuft es problemlos ab.


[edit]
Wenn ich fogendes schreibe:
Delphi-Quellcode:
procedure WMSizeMaximized(var Message: TMessage); message WM_SIZE;
procedure WMSizeMinimized(var Message: TMessage); message WM_SIZE;
bekomme ich folgenden Fehler:
Code:
[DCC Fehler] Schreibunit.pas(22): E2140 Doppelter Botschaftsmethoden-Index
[/edit]

Luckie 9. Jan 2011 11:22

AW: WM_SIZE Handler Maximize, Minimize,...
 
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Label1: TLabel;
  private
    { Private declarations }
    procedure WMSize(var Msg: TMessage); message WM_SIZE;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WMSize(var Msg: TMessage);
begin
  case Msg.WParam of
    SIZE_MAXIMIZED: Label1.Caption := 'Maximiert';
    SIZE_MINIMIZED: Label1.Caption := 'Minimiert';
    SIZE_RESTORED: Label1.Caption := 'Wiederhergestellt';
  end;
end;
Aber warum nutzt du nicht OnPaint, um festzustellen, ob neu gezeichnet werden muss oder nicht?

Dunkelbunt27 9. Jan 2011 11:26

AW: WM_SIZE Handler Maximize, Minimize,...
 
Zitat:

Aber warum nutzt du nicht OnPaint, um festzustellen, ob neu gezeichnet werden muss oder nicht?
Gute Frage, aber wie sollte ich das denn feststellen?

[edit]
Danke,
die Size Methode funktioniert super!
Warum komm ich von alleine nie auf den richtigen Weg...
Naja, dazu fragt man ja ;)
[/edit]

Luckie 9. Jan 2011 11:28

AW: WM_SIZE Handler Maximize, Minimize,...
 
Schon mal in die Ereignispalette des Objektinspektors deines Formulares geguckt?


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:50 Uhr.
Seite 1 von 2  1 2      

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