![]() |
Probleme mit TMainMenu
Hallo,
ich habe ein Problem mit meinem TMainMenu: Wobei das Problem wohl nicht am MainMenu liegt sondern an meinem Timer im Hintergrund, aber der wirkt sich total blöd auf mein Menü aus. Also im Hintergrund läuft ein Timer, der alle 50 ms eine Liste von Prozeduren abarbeitet, so nun ist es so, dass wenn diese Liste abgearbeitet wird, das ein Klick auf einen Menüpunkt nicht immer ausgeführt wird. Das Menüklappt auf der Menüpunkt wird angeklickt, aber nichts passiert, manchmal erst bei 2,3,4,5 mal... Nutze ich einen Button, so gibt es da keine Probleme, vielleicht kann mir da ja jemand ein Workaround zeigen, auf meine Timerprozedur würde ich nur ungern in einen Thread auslagern... Danke euch! |
Re: Probleme mit TMainMenu
stelle die refreshzeit vom Timer höher
|
Re: Probleme mit TMainMenu
Ich kenne ja deine Rechnerkonfiguration und Deine Timer-Proc nicht, aber alle 50 ms eine Liste von Proc, die wahrscheinlich länger dauern als 50 ms(?), wann bitte soll die Application arbeiten. Rufst Du in der Timer-Proc wenigsten mal Application.ProcessMessage auf?
|
Re: Probleme mit TMainMenu
Versuch mal, in der Timerprozedur mindestens einmal Application.ProcessMessages aufzurufen.
Vielleicht auch an mehreren Stellen. |
Re: Probleme mit TMainMenu
Ich nutze in meinen Progs oft Timer, und habe das auch bemerkt, ist die Refresh-Zeit zu niedrig und die Anweisungen zu viel, läuft das Programm nicht richtig.
Wie gesagt: Refresh-Wert höher einstellen |
Re: Probleme mit TMainMenu
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? |
Re: Probleme mit TMainMenu
Zitat:
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. |
Re: Probleme mit TMainMenu
Hi RavenIV,
ja das Menü klaptt immer beim 1. Klick auf, aber wiegesagt der Klick auf das Menüitem wird manchmal gar nicht erkannt, und demnzufolge auch nicht abgearbeitet :-( |
Re: Probleme mit TMainMenu
Achso, ich habe auch noch einen Shortcut STRG+ W,
der geht immer, liegt das an der Priorisierung der Windowsnachrichten bzw, weil der ShortCut Asynchron eintrifft? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:09 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 by Thomas Breitkreuz