Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Welche Nachricht muss ich abfangen? (https://www.delphipraxis.net/208059-welche-nachricht-muss-ich-abfangen.html)

Chearly020664 2. Jun 2021 21:19

Welche Nachricht muss ich abfangen?
 
hi,

in den letzten Tagen habe ich gelernt u. begriffen wie man auf Nachrichten von Fenstern reagiert.-

Jetzt muss ich auf das Maximieren von Form reagieren, sowie auf das Verkleinern.

Steht irgendwo geschrieben welche Messages wann gesendet werden?

danke - Grüße

TurboMagic 2. Jun 2021 22:24

AW: Welche Nachricht muss ich abfangen?
 
Bei Microsoft in der MSDN Dokumentation mal geschaut?
Die WM_ Konstanten sollten da irgendwie zu finden sein denke ich.

Chearly020664 3. Jun 2021 01:00

AW: Welche Nachricht muss ich abfangen?
 
Die Microsoft MSDN Doku habe ich mir intensiv angeschaut. Leider finde ich nichts was anzeigt die Form wurde maximiert oder verkleinert. Auch in Delphi 7 ist kein Ereignis zu finden.-
Microsoft Windows Programmierung ist und bleibt ein kryptisches Geheimnis für mich, komplizierter geht es nicht. :roll:

Was ich auch noch machen wollte ist:
Hier wird nach einem Resize der Form eine Neuberechnung des Bildes vorgenommen, leider auch, wenn das Fenster nur verschoben wurde. Kann man letzteres verhindern?

Delphi-Quellcode:
procedure WMEXITSIZEMOVE(var Message: TMessage); message WM_EXITSIZEMOVE;
.
.
.
procedure TForm1.WMEXITSIZEMOVE(var Message: TMessage);
begin
     inherited;
     Apfelmann1Click(self);  //berechne das Bild neu
end;
Ich habe noch einiges zu machen an diesem Spaß-Programm, aber ich lerne dazu ...

Grüße

haentschman 3. Jun 2021 05:31

AW: Welche Nachricht muss ich abfangen?
 
Moin...:P
Zitat:

Ich habe noch einiges zu machen an diesem Spaß-Programm, aber ich lerne dazu ...
...lernen, aber nicht mit einer Delphi Version aus 2002. :zwinker:

Lade dir doch die Community Edition herunter mit den neuen Sprachfeatures wie z.B. Generics. :thumb:
https://www.embarcadero.com/de/produ.../free-download

:wink:

Chearly020664 3. Jun 2021 06:52

AW: Welche Nachricht muss ich abfangen?
 
Zitat:

Lade dir doch die Community Edition herunter mit den neuen Sprachfeatures wie z.B. Generics. :thumb:
Das würde ich machen, wenn ich damit meine altern angeknabberten Delphi 7 Projekte fortführen könnte.

Grüße

haentschman 3. Jun 2021 07:14

AW: Welche Nachricht muss ich abfangen?
 
Zitat:

Das würde ich machen, wenn ich damit meine altern angeknabberten Delphi 7 Projekte fortführen könnte
...geht alles. :wink:
Aber:
* Wie wichtig sind die Projekte für evt. Kunden?
* Manche Komponenten müssen getauscht werden. (weil es sie schlicht nicht mehr gibt)... Analyse, welche Features die alten hatten, die damals nicht verfügbar waren.
* Wie groß sind die Projekte?
* DB Anbindung modernisieren (- BDE, + Firebird etc.)

Wenn es nur "Spaßprojekte" sind, kann man mit der Umstellung auch viel lernen. :thumb:

Chearly020664 3. Jun 2021 07:21

AW: Welche Nachricht muss ich abfangen?
 
Zitat:

Wenn es nur "Spaßprojekte" sind, kann man mit der Umstellung auch viel lernen. :thumb:
Es sind eigentlich alles nur Spaß-Projekte für mich. Allerdings habe ich einige Objekt-Pascal-Programme mit angelinkten, großen Assemblerroutinen wie Fourier-Transformationen und sowas.

Grüß

TurboMagic 3. Jun 2021 07:53

AW: Welche Nachricht muss ich abfangen?
 
Zitat:

Zitat von Chearly020664 (Beitrag 1490585)
Zitat:

Wenn es nur "Spaßprojekte" sind, kann man mit der Umstellung auch viel lernen. :thumb:
Es sind eigentlich alles nur Spaß-Projekte für mich. Allerdings habe ich einige Objekt-Pascal-Programme mit angelinkten, großen Assemblerroutinen wie Fourier-Transformationen und sowas.

Grüß

Die Assembler Sachen gehen alle noch. Du kannst mit der 10.3 CE weiterhin Win32 Programme schreiben, da geht das alles noch.
Auch die 64 Bit Version von Delphi (in der CE enthalten) kann noch Assembler, bloß halt nicht mehr als ASM Blöcke direkt
an einer beliebigen Code Stelle, sondern immer als ganze Methode/Prozedur/Funktion. Hat was mit der Aufrufkonvention oder so zu tun.

Auch die IDE der CE bietet gegenüber deinem D7 weitere Vorteile.

Und falls du wissen wiollst, welche Nachrichten dein Programm alle bekommt: es gibt eine nicht visuelle ApplicationEvents Komponente,
die kann man auf eine Form packen und dort einen Eventhandler erzeugen der alle Nachrichten sieht bevor die der eigentliche Empfänger
sieht.

Und das mit "Fenster verschieben löst auch ein Resize Event aus" könntest du behandeln, in dem du beim Programmstart die Fenstergröße
merkst und im Resize Event prüfst, ob sich die überhaupt geändert hat. Falls ja musst du dir natürlich die neue Größe merken ;-)

Grüße
TurboMagic

Chearly020664 3. Jun 2021 08:08

AW: Welche Nachricht muss ich abfangen?
 
Ja danke, ich werde mich damit nochmals beschäftigen.-

Zitat:

Und das mit "Fenster verschieben löst auch ein Resize Event aus" könntest du behandeln, in dem du beim Programmstart die Fenstergröße
merkst und im Resize Event prüfst, ob sich die überhaupt geändert hat. Falls ja musst du dir natürlich die neue Größe merken ;-)
Ok, das geht auch ...

Grüße

Chearly020664 3. Jun 2021 11:39

AW: Welche Nachricht muss ich abfangen?
 
Delphi-Quellcode:
procedure WMEXITSIZEMOVE(var Message: TMessage); message WM_EXITSIZEMOVE;
.
.
.
Form1WidthAlt:=Form1.Width;
Form1HeightAlt:=Form1.Height;
.
.
.
procedure TForm1.WMEXITSIZEMOVE(var Message: TMessage);
begin
     If (Form1.Width<>Form1WidthAlt) or (Form1.Height<>Form1HeightAlt) then
     begin
          inherited;
          Apfelmann1Click(self);
     end;
end;
Elegant ist das nicht, aber funktioniert.:roll:

Jetzt muss ich noch auf Form1-Maximieren und Form1-Verkleinern reagieren, dann bin ich mit dem Programm fertig.

Gruß


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