Delphi-PRAXiS
Seite 2 von 2     12   

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/)
-   -   Brauche Hilfe beim Mainmenu (https://www.delphipraxis.net/88949-brauche-hilfe-beim-mainmenu.html)

marabu 24. Mär 2007 14:57

Re: Brauche Hilfe beim Mainmenu
 
Hallo,

um den Ordinaltyp kommst du bei der CASE-Anweisung nicht drum herum. Entweder du machst es so, wie dir Jens in Beitrag #3 gezeigt hat oder du musst tricksen: Weise der Tag-Property der MenuItems jeweils eine eindeutige Konstante zu und werte diese dann aus (siehe Beitrag #7) oder verwende die Eigenschaft Command eines MenuItems, welche abhängig von der Position des Items im MainMenu ist. Noch eine Alternative wäre die Funktion AnsiIndexText():

Delphi-Quellcode:
procedure TForm1.Action1Execute(Sender: TObject);
var
  vName: String; // Variable die nachher vom Case of überprüft werden soll
begin
  with Sender as TAction do
    if ActionComponent is TMenuItem then
    begin
      vName := TMenuItem(ActionComponent).Name;
      Label1.Caption := vName;
      case AnsiIndexText(vName, [MenuItem1.Name, MenuItem2.Name]) of
        0: {MenuItem1};
        1: {MenuItem2};
      end;
    end;
end;
Mit dieser Funktion kannst du den benötigten Ordinaltyp über die Positionsbestimmung in einem String-Array erhalten.

Freundliche Grüße

CUBEstorm 24. Mär 2007 18:35

Re: Brauche Hilfe beim Mainmenu
 
Ich bin mein Formular jetzt mal durchgegangen. Ich will die Anzahl der MenuItems jetzt mal nicht nennen *hust* über 50 *hust*

Was wäre denn allgemein die effizienteste,speicherschonenste Methode, oder Möglichkeit zB den Quelltext des Progs möglichst klein zu halten?
Hab mal die ActionList benutzt, find die auch gut da das Betätoigen eines beliebigen MenuItems schlussendlich in einer Prozedur endet. Nur verharkte ich mich da im moment tierisch mit dem CASE-Befehl, da Strings, wie sie hier die Namen der Menuitems wären nicht akzeptiert werden.

Schlussendlich läuft das bei mir auf eine Datenbank hienaus. Also Texte und Bilder, leider hab ich im moment noch keine Ahnung wie sowas funktioniert :cry:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:11 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz