Delphi-PRAXiS
Seite 3 von 3     123   

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 Reihenfolge Menüeinträge für TMainMenu (https://www.delphipraxis.net/148054-reihenfolge-menueeintraege-fuer-tmainmenu.html)

Hansa 22. Feb 2010 16:43

Re: Reihenfolge Menüeinträge für TMainMenu
 
Wich ich das jetzt gemacht habe ? So :

Delphi-Quellcode:
procedure TfrmMenue.FormCreate(Sender: TObject);
var i : Integer;
    c : TComponent;
    NewItem: TMenuItem;
begin
  inherited;
  sl := TStringList.Create;
  men := TMainMenu.Create(self);
  for i := 0 to ComponentCount - 1 do begin
    c := Components [i];
    if c is TMyPanel then
      sl.Add(lb ((c as TMyPanel).Caption,50)+(c as TMyPanel).Name);
  end;
  sl.Sort;
  for i := 0 to sl.Count - 1 do begin
    c := FindComponent (Copy (sl[i],51,Length (sl[i])));
    NeuerMenueEintrag (men,c as TMyPanel);
  end;
  sl.Free;
end;
Der Trick ist eigentlich nur, dass das Menü nach den Captions sortiert werden soll und auch der Name gebraucht wird. Und die hänge ich einfach hintereinander. Die Prozedur NeuerMenuEintrag und alles andere bleibt unverändert.

P.S.: hatte auch mit TObjectList spekuliert. Dazu müsste man dann aber noch die Sortierroutinen selber bauen. So wars eben einfacher. :P

DeddyH 22. Feb 2010 16:49

Re: Reihenfolge Menüeinträge für TMainMenu
 
Dann finde ich meine Lösung mit den Objects aber eleganter, da Du ja auf FindComponent zurückgreifen musst, wie ich bereits vermutet hatte.

Hansa 23. Feb 2010 15:11

Re: Reihenfolge Menüeinträge für TMainMenu
 
Was heisst schon eleganter ? Dafür ist mein Quelltext auf die Schnelle wohl eher verständlich. :stupid: Allerdings : er ist zu starr. D.h., sofern eine Caption länger als 50 Zeichen ist, dann krachts. Man könnte den Wert nun hochschrauben, aber so was war moch nie mein Ding. Und siehe an : da ich das, wie gesagt in alle Forms eingebaut habe, mind. eine Caption war tatsächlich länger. 8-) Konsequenz : lieber doch die AddObject Variante verwendet.

DeddyH 23. Feb 2010 15:28

Re: Reihenfolge Menüeinträge für TMainMenu
 
Über die Verständlichkeit kann man sich jetzt streiten 8-) . Auf jeden Fall war Deine Variante (übertragen): "Nimm von allen Paar Socken den linken und sortiere diese (die rechten wirfst Du auf einen Haufen). Nach dem Sortieren suchst Du zu jedem linken Socken den rechten aus dem Haufen und steckst das Paar in die Waschmaschine." Dagegen meine: "Nimm alle Sockenpaare und sortiere nach den linken. Anschließend alle Paare in die Waschmaschine". :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:26 Uhr.
Seite 3 von 3     123   

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-2025 by Thomas Breitkreuz