AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Woran kann ich merken, dass Rezise beendet ist?
Thema durchsuchen
Ansicht
Themen-Optionen

Woran kann ich merken, dass Rezise beendet ist?

Ein Thema von Chearly020664 · begonnen am 31. Mai 2021 · letzter Beitrag vom 1. Jun 2021
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Chearly020664
Chearly020664

Registriert seit: 31. Mai 2021
Ort: Dorsten
17 Beiträge
 
Delphi 7 Personal
 
#1

Woran kann ich merken, dass Rezise beendet ist?

  Alt 31. Mai 2021, 21:41
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ß
Leo
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.016 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Woran kann ich merken, dass Rezise beendet ist?

  Alt 31. Mai 2021, 21:46
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.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.993 Beiträge
 
Delphi 12 Athens
 
#3

AW: Woran kann ich merken, dass Rezise beendet ist?

  Alt 31. Mai 2021, 21:49
Vcl/fmx?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming

Geändert von Uwe Raabe (31. Mai 2021 um 21:51 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.993 Beiträge
 
Delphi 12 Athens
 
#4

AW: Woran kann ich merken, dass Rezise beendet ist?

  Alt 31. Mai 2021, 21:59
OK, Delphi 7, ist klar.

Also, du kannst WMEXITSIZEMOVE im Form abfangen:

Delphi-Quellcode:

    procedure WMEXITSIZEMOVE(var Message: TMessage); message WM_EXITSIZEMOVE;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.016 Beiträge
 
Delphi 2009 Professional
 
#5

AW: Woran kann ich merken, dass Rezise beendet ist?

  Alt 31. Mai 2021, 22:17
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.)?
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.993 Beiträge
 
Delphi 12 Athens
 
#6

AW: Woran kann ich merken, dass Rezise beendet ist?

  Alt 31. Mai 2021, 22:26
Aus der Doku:
Zitat:
Sent one time to a window, after it has exited the moving or sizing modal loop. The window enters the moving or sizing modal loop when the user clicks the window's title bar or sizing border, or when the window passes the WM_SYSCOMMAND message to the DefWindowProc function and the wParam parameter of the message specifies the SC_MOVE or SC_SIZE value.
Im Zweifel hilft probieren.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Chearly020664
Chearly020664

Registriert seit: 31. Mai 2021
Ort: Dorsten
17 Beiträge
 
Delphi 7 Personal
 
#7

AW: Woran kann ich merken, dass Rezise beendet ist?

  Alt 1. Jun 2021, 00:35
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
Leo

Geändert von Chearly020664 ( 1. Jun 2021 um 00:43 Uhr)
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#8

AW: Woran kann ich merken, dass Rezise beendet ist?

  Alt 1. Jun 2021, 00:56
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;

Geändert von venice2 ( 1. Jun 2021 um 01:19 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Chearly020664
Chearly020664

Registriert seit: 31. Mai 2021
Ort: Dorsten
17 Beiträge
 
Delphi 7 Personal
 
#9

AW: Woran kann ich merken, dass Rezise beendet ist?

  Alt 1. Jun 2021, 05:29
Code:
132 procedure TForm1.WMEXITSIZEMOVE(var Message: TMessage);

133 begin
134     inherited;
135     BerechnedasBild(Sender);
    end;
Führt jetzt beim Compilieren zu folgenden Fehlermeldungen:

(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
Leo
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.289 Beiträge
 
Delphi 12 Athens
 
#10

AW: Woran kann ich merken, dass Rezise beendet ist?

  Alt 1. Jun 2021, 05:45
Moin...

Winapi.Messages in uses vergessen?

upps... es geht ja nicht um die eigentliche Message. Hast du die procedure im private Abschnitt der Form deklariert oder nur Copy/Paste aus #8?

Zitat:
Ich habe:
...zeige mal die gesamte Unit.

Geändert von haentschman ( 1. Jun 2021 um 05:55 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 07:28 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