AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Probleme mit TMainMenu

Ein Thema von DelphiManiac · begonnen am 26. Mär 2008 · letzter Beitrag vom 26. Mär 2008
Antwort Antwort
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#1

Probleme mit TMainMenu

  Alt 26. Mär 2008, 08:56
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!
  Mit Zitat antworten Zitat
Benutzerbild von STS301
STS301

Registriert seit: 6. Nov 2007
668 Beiträge
 
Delphi 7 Personal
 
#2

Re: Probleme mit TMainMenu

  Alt 26. Mär 2008, 08:58
stelle die refreshzeit vom Timer höher
Sebastian

ölpölp

Linux will rule the universe!!
  Mit Zitat antworten Zitat
Benutzerbild von Kroko1999
Kroko1999

Registriert seit: 21. Apr 2005
Ort: Spremberg
455 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Probleme mit TMainMenu

  Alt 26. Mär 2008, 09:00
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?
Da sprach der Stumme zum Blinden: "Du wirst sehen ..."
oder
Wer lesen kann, ist klar im Vorteil!
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Probleme mit TMainMenu

  Alt 26. Mär 2008, 09:02
Versuch mal, in der Timerprozedur mindestens einmal Application.ProcessMessages aufzurufen.
Vielleicht auch an mehreren Stellen.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von StInkeSchuh
StInkeSchuh

Registriert seit: 23. Feb 2008
7 Beiträge
 
Delphi 7 Personal
 
#5

Re: Probleme mit TMainMenu

  Alt 26. Mär 2008, 09:03
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
Was ist die auffälligste Neuerung in Windows Vista?
---> Bluescreens in TrueColor
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#6

Re: Probleme mit TMainMenu

  Alt 26. Mär 2008, 09:07
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?
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Probleme mit TMainMenu

  Alt 26. Mär 2008, 09:17
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.
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#8

Re: Probleme mit TMainMenu

  Alt 26. Mär 2008, 09:24
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
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#9

Re: Probleme mit TMainMenu

  Alt 26. Mär 2008, 09:25
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?
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 01:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf