Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TMenuItem öffnet sich nicht (https://www.delphipraxis.net/92690-tmenuitem-oeffnet-sich-nicht.html)

WoTo 24. Mai 2007 13:21


TMenuItem öffnet sich nicht
 
Hallo zusammen, :hi:
ich habe das Problem, daß wenn das OnClick-Ereignis aufgerufen wird, die Untermenupunkte nicht angezeigt werden.

Nachdem der Haupt-Menupunkt ausgewählt wurde, wird ein Formular geöffnet, wo eine Passwortabfrage erscheint. Ist das Passwort richtig, so sollen die Untermenupunkte enabled ansonsten disabled werden. Das funktioniert zwar, aber der Hauptmenupunkt wird nicht "ausgeklappt", so daß man die Untermenupunkte nicht anwählen kann.

Folgender Code wird im OnClick-Ereignis ausgeführt:
Delphi-Quellcode:
procedure TForm1.miSettingsClick(Sender: TObject);
begin
    if frmPassword.ShowModal = mrOK then
    begin
      if frmPassword.Password = 'HALLO' then
      begin
        miPLCSet.Enabled := true;
        miCreateIni.Enabled := true;
      end else
      begin
        miPLCSet.Enabled := false;
        miCreateIni.Enabled := false;
      end;
    end;
end;
Die Abfrage des Passwortes ist erst einmal eine Vereinfachung, dies wird noch geändert.

Hat jemand eine Idee ?

Gruß
Woto

WoTo 24. Mai 2007 13:31

Re: TMenuItem öffnet sich nicht
 
kurzer Nachtrag:

Sobald im OnClick-Ereignis eine Anweisung steht, wird das Menu nicht mehr geöffnet:

Delphi-Quellcode:
procedure TForm1.miSettingsClick(Sender: TObject);
begin
    ShowMessage('HALLO');
end;
Warum ist das so ???? :gruebel:

MacGuyver 24. Mai 2007 15:01

Re: TMenuItem öffnet sich nicht
 
Moin,

die Passwortabfrage darf nicht im OnClick stattfinden. Sobald das Menü aufklappt und ein Menüpunkt Unterpunkte hat, kommt das Ereignis OnClick auf. In dem Fall wird dann das Menü geschlossen und OnClick ausgeführt. Falls das doch so ungefähr laufen soll, kannst du einfach ein Popupmenü öffnen lassen. Die Startposition ist ja nicht schwer zu berechnen.

Stefan

WoTo 24. Mai 2007 15:08

Re: TMenuItem öffnet sich nicht
 
Hallo Stefan,
vielen Dank für deine Idee. :thumb:

Solch ein Workaround wollte ich eigentlich umgehen, aber ich galube, es bleibt mir nichts anderes übrig. :?

Bis denne,
Woto

CCRDude 24. Mai 2007 15:31

Re: TMenuItem öffnet sich nicht
 
Popupmenüs haben da ein OnPopup, schade eigentlich daß das TMainMenu fehlt... aber laut Hilfe dürfte OnUpdate des Hauptmenüs genau für so etwas da sein (falls man das Ereignis in einer Action hat, die mit dem TMenuItem verknüpft ist, was sowieso eleganter sein dürfte als den Code direkt auf das miSettingsClick zu legen)?

WoTo 24. Mai 2007 15:50

Re: TMenuItem öffnet sich nicht
 
Normalerweise mach ich das auch immer mit einer TAction.

Werde ich auch noch machen ! :coder:

Nur jetzt ärgere ich mich wieder mit RAVE-Report. :wall:

Gruß,
Woto


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:52 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