Delphi-PRAXiS
Seite 2 von 3     12 3      

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 Popup menü items sortieren? (https://www.delphipraxis.net/115893-popup-menue-items-sortieren.html)

Cylence 19. Jun 2008 15:18

Re: Popup menü items sortieren?
 
häh? mumus? was abarbeiten? ich will nur die menüs sortiert haben was is daran jetzt so schlimm? und die menüs ändern sich doch nich dauernd oder sowas...nur in englisch sorted in deutsch isses schon sorted fertig aber sowas gibts ja eh nich also is das ja relativ

RavenIV 19. Jun 2008 15:21

Re: Popup menü items sortieren?
 
TMenu.Items ist ein indiziertes Array.
Da kann man sicher irgendwie ein "Sort" dafür aufrufen.

Quäl Dich mal durch die Hilfe für TMenu.

Cylence 19. Jun 2008 15:22

Re: Popup menü items sortieren?
 
ok das hört sich gut an ich dachte auch schon an sowas wie einfach items.sorted aber das gibts leider nicht...

Cylence 19. Jun 2008 15:25

Re: Popup menü items sortieren?
 
mir fällt ein gutes beispiel ein windows xp startmenü rechtsklick nach namen sortieren genau sowas brauch ich...

RavenIV 19. Jun 2008 15:29

Re: Popup menü items sortieren?
 
Zitat:

Zitat von Cylence
ok das hört sich gut an ich dachte auch schon an sowas wie einfach items.sorted aber das gibts leider nicht...

Vermutlich musst Du das selber schreiben.
Da kannst Du ja einen der einfachen Sortieralgos (z.B. BubbleSort) nehmen.
Du wirst ja nicht mehrere Tausend MenuItems haben, sodass das optimiert sein müsste.

/nicht ernst gemeint
Oder aufwändig:
Punp die Menueinträge in eine TList.
Da gibt es ein TList.Sort

Cylence 19. Jun 2008 15:30

Re: Popup menü items sortieren?
 
hmmm sehr schade na dann werd ich das wohl so machen müssen ich danke euch!!!

toms 19. Jun 2008 15:33

Re: Popup menü items sortieren?
 
Hier mal ein Vorschlag:

Delphi-Quellcode:
procedure SortPopupMenu(PopupMenu: TPopupMenu);
var
  n1, n2: Integer;
  mi: TMenuItem;
begin
  with PopupMenu, Items do
  begin
    for n1 := 0 to Count - 1 do
    begin
      for n2 := n1 + 1 to Count - 1 do
      begin
        if Items[n1].Caption > Items[n2].Caption then
        begin
          mi := Items[n2];
          Delete(n2);
          Insert(n1, mi);
        end;
      end;
    end;
  end;
end;

RavenIV 19. Jun 2008 15:37

Re: Popup menü items sortieren?
 
ich würde aber das
if Items[n1].Caption > Items[n2].Caption then
erweitern, sodass nur nach dem Anfangsbuchstaben gesucht wird
if Items[n1].Caption[1] > Items[n2].Caption[1] then

toms 19. Jun 2008 15:41

Re: Popup menü items sortieren?
 
Zitat:

Zitat von RavenIV
ich würde aber das
if Items[n1].Caption > Items[n2].Caption then
erweitern, sodass nur nach dem Anfangsbuchstaben gesucht wird
if Items[n1].Caption[1] > Items[n2].Caption[1] then

Dann ist es aber nicht mehr ganz alphabetisch.

RavenIV 19. Jun 2008 15:44

Re: Popup menü items sortieren?
 
Zitat:

Zitat von toms
Dann ist es aber nicht mehr ganz alphabetisch.

Kommt halt auf die Anforderungen an.
Wenn es z.B. mehr als einmal "C..." geben sollte, muss man halt mit StrComp (oder so) arbeiten und mehr als nur eine Stelle beachten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:00 Uhr.
Seite 2 von 3     12 3      

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