Zitat von
DelphiManiac:
Ja gut, wenn ich meine Timerprozedur auf 200 ms stelle, dann passiert es natürlich nicht mehr so oft,
aber, (meine Timerprozedur dauert ungefähr 20-25 ms) wenn ich genau dann auf das MenuItem klicke wenn meine Timerprozedur läuft,
dann wird die Prozedur nicht abgearbeitet.
Wie gesagt, wenn ich einen Button mit einer normalen Button.Click Prozedur nehme, dann wird diese immer ausgelöst. Hängt das mit der Verarbeitung des Menüs zusammen?
Das hängt damit zusammen, dass die Nachrichtenwarteschleife von Windows nur abgearbeitet wird, wenn
a) das Programm nichts anderes macht
b) explizit
Application.ProcessMessages aufgerufen wird
Bis ein Menuitem angeklickt wird, werden mehrere Windows-Nachrichten erzeugt.
1) Klick auf Mainmenu
2) Klick auf Untermenu
3) Klick auf Menuitem
Somit ist die Nachrichtenwarteschleife mit einigen Einträgen gefüllt, die auch abgearbeitet werden müssen.
Dies macht Application.ProcessMessages.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.