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

RavenIV 19. Jun 2008 15:46

Re: Popup menü items sortieren?
 
Zitat:

Zitat von Cylence
mir fällt ein gutes beispiel ein windows xp startmenü rechtsklick nach namen sortieren genau sowas brauch ich...

Beim Firefox kann man auch die Lesezeichen sortieren lassen.
Das wäre dann ja sowas, wie Du brauchst.

Soweit ich weiss, sind die Quellen des Mozilla doch frei.
Aber vermutlich wird der nicht mit Delphi geschrieben sein :-(

Cylence 20. Jun 2008 07:23

Re: Popup menü items sortieren?
 
Hi,

cool also dann werd ich das mal testen dieses wochenende was ihr hier gepostet habt und evtl auch mal schaun ob man das vom firefox übersetzen kann *g* aber erst wird heute geglotzt und gezockt *g* hab nen lg 32er endlich *freu* wünsch euch allen ein schönes wochenende!!!

gruß

tom

ringli 17. Mai 2009 13:32

Re: Popup menü items sortieren?
 
Wie muss ich den Code von toms eigentlich erweitern damit auch Untermenüs alphabetisch sortiert werden? Ich habe den Code schon etwas erweitert, nur leider wird immer das letzte Untermenü nicht mehr sortiert. Wo ist mein Denkfehler?
Delphi-Quellcode:
procedure SortPopupMenu(PopupMenu: TPopupMenu);
var
  n1, n2   : Integer;
  m1, m2   : Integer;
  mi1, mi2 : 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
                  mi1 := Items[n2];
                  Delete(n2);
                  Insert(n1, mi1);

                  for m1 := 0 to Items[n1].Count - 1 do
                    begin
                      for m2 := m1 + 1 to items[n1].Count - 1 do
                        begin
                          if items[n1].items[m1].Caption > items[n1].items[m2].Caption then
                            begin
                              mi2 := Items[n1].Items[m2];
                              Items[n1].Delete(m2);
                              Items[n1].Insert(m1, mi2);
                            end;
                        end;
                    end;
                end;
            end;
        end;
    end;
end;


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

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