Einzelnen Beitrag anzeigen

skoschke

Registriert seit: 6. Jan 2009
523 Beiträge
 
Delphi 10.4 Sydney
 
#1

Mousemove schlägt bei Opendialog durch

  Alt 26. Jun 2019, 13:06
Hallo,

der Betreff ist Sch... aber wie soll ich das kurz beschreiben:

Auf einem Formular liegt ein TImage welches per Mousemove Zeichenoperationen ausführt.
Es gibt ein Mainmenu welches einen Opendialog öffnet um Dateien zu laden.

Nun ist es mir mehrfach vorgekommen, dass beim Öffnen einer Datei bereits etwas gezeichnet wird, und zwar wenn man den Opendialog nicht mit OK benutzt sondern auf die gewünschte Datei doppelklickt.

Nun habe ich als erstes das Image disabled, während das Laden erfolgt, ohne Erfolg, der Mousemove-Event wird abgebrochen wenn Image disabled, ohne Erfolg.

Als letztes die Openroutine erweitert:

Delphi-Quellcode:
Image.enabled := false;
if opendialog.execute then
....
end;
//damit Mausevents verarbeitet werden
Application.processmassages;
Image.enabled := true;
und
Delphi-Quellcode:
procedure TFormMain.ImageMouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
begin
  if not TImage(Sender).Enabled then
    exit;
...
Kein Erfolg, die Mopusemove's kommen weiter an und zeichnen

Wie komme ich weiter?

Ciao
Stefan
  Mit Zitat antworten Zitat