OnMouseMove MouseMove
-
Dieser Beitrag wurde gelöscht!
-
@DocShoe sagte in OnMouseMove MouseMove:
Dann schlepp ich das ja da mit, wo ich es überhaupt nicht brauche. Mit meiner Lösung ist der "Schaden" auf die einzige Funktion begrenzt, wo er gebraucht wird. Race conditions können nicht auftreten, da der Aufruf immer aus dem GUI Thread kommt, ich sehe also nix, was dagegen spricht. Außer persönlicher Präferenz.
Mir ging's weniger um Race-Conditions sondern darum dass das u.U. nimmer so wie es soll funktioniert wenn's mal zwei oder mehr Instanzen von dem Fenster gibt.
-
@DocShoe sagte in OnMouseMove MouseMove:
Was hältst du denn von solchen Konstrukten?
void f() { static bool PreventReentrance = false; if( !PreventReentrance ) { PreventReentrance = true; ... PreventReentrance = false; } }
Auch *Schmerzen*
Mitthread_local
und RAII wäre es OK.
-
@SeppJ sagte in OnMouseMove MouseMove:
@DocShoe sagte in OnMouseMove MouseMove:
Du gehst von Multithreading aus, das kann man auch zum Verhindern von endloser Rekursion benutzen. Wenn man seinen Programmablauf nicht im Griff hat.
Naja, der gezeigte Code ist ganz eindeutig auf Multithreading bezogen, wo er falsch ist. Ansonsten bist du bei "Leute benutzen if mit globalen Variablen", was natürlich auch oft richtig eingesetzt wird
Ich kenn solchen Code eher dafür Rekursion zu vermeiden.
Wobei ich die Variable dann nichtPreventReentrance
sondernIsRecursiveCall
oder so nennen würde.
-
@Th69 Ich habe das Problem anders gelöst. Das verschieben des TButton auf dem Formular löst immer wieder MouseMove aus... ich verschiebe jetzt ein TBitBtn damit geht es.
Danke für eure ganzen Antworten
Gruß Ska