![]() |
Woran kann ich merken, dass Rezise beendet ist?
Hallo,
habe eine Form mit einem Image. Die Form ist reziseable. Das Bild wird im Hintergrund in einer Bitmap mathem. berechnet und muss nach einem Rezise neu berechnet werden. Das Ereignis OnRezise wird aber ausgelöst mit dem Beginn der Größenänderung der Form. Ich suche verzweifelt nach einem Ereignis, dass eintritt, wenn Rezise beendet ist, damit ich die neue Berechnung des Bildes aufrufen kann. danke - Gruß |
AW: Woran kann ich merken, dass Rezise beendet ist?
Du willst wissen, wann der Nutzer die Maustaste loslässt? Das wüsste ich auch gerne.
Ich hab das bisher immer mit einem TTimer von einigen hundert Millisekunden als Workaround gemacht. Skizze: OnResize: - Mache Timer aus. // optional, dient zum Zurücksetzen des Timers - Mache Timer an. OnTimer: - Mache Timer aus. - Tu was. |
AW: Woran kann ich merken, dass Rezise beendet ist?
Vcl/fmx?
|
AW: Woran kann ich merken, dass Rezise beendet ist?
OK, Delphi 7, ist klar.
Also, du kannst WMEXITSIZEMOVE im Form abfangen:
Delphi-Quellcode:
procedure WMEXITSIZEMOVE(var Message: TMessage); message WM_EXITSIZEMOVE; |
AW: Woran kann ich merken, dass Rezise beendet ist?
Danke. Dann muss man nur noch prüfen, ob sich die Größe geändert hat, für die man zuletzt gezeichnet hat, da das Event sonst ja auch beim Verschieben auslöst. Löst das Event auch aus, wenn das Fenster anderweitig in der Größe verändert wird (Windows+Pfeil, minimieren, maximieren, Bildschirm abgestöpselt usw.)?
|
AW: Woran kann ich merken, dass Rezise beendet ist?
Aus der Doku:
Zitat:
|
AW: Woran kann ich merken, dass Rezise beendet ist?
Ich habe:
procedure WMEXITSIZEMOVE(var Message: TMessage); message WM_EXITSIZEMOVE; begin BerechnedasBild(Sender); end; Zu meinen Programm-Procedures hinzugefügt und bekomme die Fehlermeldung "message --> unbekannte Anweisung" und "BerechnedasBild --> undefinierter Bezeichner Letzteres habe ich aber mehrmals in anderen procedures erfolgreich aufgerufen.- Verwirrung bei mir, habe schon 13 Jahre nichts mehr mit Delphi 7 gemacht. Grüße |
AW: Woran kann ich merken, dass Rezise beendet ist?
procedure TForm1.WMEXITSIZEMOVE(var Message: TMessage);
dann kannst du BerechnedasBild(Sender); verwenden message WM_EXITSIZEMOVE; benötigst du nicht.
Delphi-Quellcode:
procedure TForm1.WMEXITSIZEMOVE(var Message: TMessage);
begin inherited; BerechnedasBild(Sender); end; |
AW: Woran kann ich merken, dass Rezise beendet ist?
Code:
Führt jetzt beim Compilieren zu folgenden Fehlermeldungen:
132 procedure TForm1.WMEXITSIZEMOVE(var Message: TMessage);
133 begin 134 inherited; 135 BerechnedasBild(Sender); end; (132): Undefinierter Bezeichner: 'WMEXITSIZEMOVE' (132): ';' erwartet, aber '(' gefunden (135): ';' erwartet, aber ')' gefunden (135): Undefinierter Bezeichner 'BerechnedasBild' (135): Undefinierter Bezeichner: 'Sender' Tut mir jetzt leid, dass ich Euch mit derarttigen Trivialitäten belaste. danke Grüße |
AW: Woran kann ich merken, dass Rezise beendet ist?
Moin...:P
Winapi.Messages in uses vergessen? :wink: upps... es geht ja nicht um die eigentliche Message. :wink: Hast du die procedure im private Abschnitt der Form deklariert oder nur Copy/Paste aus #8? :gruebel: Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 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