Delphi-PRAXiS
Seite 1 von 3  1 23      

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 21. Feb 2010 14:25


Reihenfolge Menüeinträge für TMainMenu
 
Hi,

habe hier diverse Forms, bei denen muss eine unterschiedliche Anzahl an TMainMenu-Items erzeugt werden. Deshalb wird das erst zur Laufzeit gemacht :

Delphi-Quellcode:
for i := 0 to ComponentCount - 1 do begin
...
  menu.Items.Add (NewItem);
...
So, das Menü ist da, aber die Einträge sind wie Kraut und Rüben durcheinander. Wie wird die Reihenfolge bestimmt ? Taborder ists offenbar nicht.

mirage228 21. Feb 2010 14:26

Re: Reihenfolge Menüeinträge für TMainMenu
 
Also entweder direkt über Delphi-Referenz durchsuchenInsert oder mit Delphi-Referenz durchsuchenExchange (oder Delphi-Referenz durchsuchenMove :gruebel:)

Viele Grüße

Hansa 21. Feb 2010 14:32

Re: Reihenfolge Menüeinträge für TMainMenu
 
Das Add ist also quasi ein Zufallsgenerator ? :mrgreen: :gruebel:

mirage228 21. Feb 2010 14:36

Re: Reihenfolge Menüeinträge für TMainMenu
 
Ach sorry, hab Deine Frage nicht ganz richtig gelesen.

Dann würde ich eher die Components[] Eigenschaft Deines Controls verantwortlich zeichnen, diese wird ja beim Entfernen und Hinzufügen von neuen Komponenten immer wieder geändert... da könntest Du dann ja mal mit den Nachforschungen ansetzen...

Hansa 21. Feb 2010 14:48

Re: Reihenfolge Menüeinträge für TMainMenu
 
Zitat:

Zitat von mirage228
..wird ja beim Entfernen und Hinzufügen von neuen Komponenten immer wieder geändert...

Da wird NICHTS immer wieder geändert. Lediglich im Formcreate werden die Dinger erzeugt. Aber bisher in willkürlicher Reihenfolge.

jfheins 21. Feb 2010 14:56

Re: Reihenfolge Menüeinträge für TMainMenu
 
Zitat:

Zitat von Hansa
Da wird NICHTS immer wieder geändert. Lediglich im Formcreate werden die Dinger erzeugt. Aber bisher in willkürlicher Reihenfolge.

Nö - in der Reihenfolge, wie die Komponenten im Components[] Array drinstehen. Das wird wahrscheinlich dieselbe sein, in der du die Komponenten aufs Formular getan hast ...

Christian Seehase 21. Feb 2010 15:02

Re: Reihenfolge Menüeinträge für TMainMenu
 
Moin Hansa,

Du solltest mal ein bisschen mehr Code herausrücken.
Bei dem Bisschen kann ich den Fehler nicht reproduzieren.

Hansa 21. Feb 2010 15:38

Re: Reihenfolge Menüeinträge für TMainMenu
 
Die paar Zeilen sind kein Problem. Bzw. sie zu posten.

Delphi-Quellcode:
procedure TfrmMenue.FormCreate(Sender: TObject);
var i : Integer;
    c : TComponent;
    NewItem: TMenuItem;
begin
  inherited;
  men := TMainMenu.Create(self);
  for i := 0 to ComponentCount - 1 do begin
    c := Components [i];
    if c is TmyPanel then
      NeuerMenueEintrag (men,c as TmyPanel);
  end;
end;

procedure TfrmMenue.NeuerMenueEintrag (var men : TMainMenu;c : TmyPanel);
var NewItem : TMenuItem;
    i : Integer;
    st : string;
begin
  NewItem := TMenuItem.Create(men);
  NewItem.Caption := c.Caption;
  NewItem.Name := 'men' + copy (c.Name,4,length(c.Name));
ShowMessage(NewItem.Name+' '+IntToStr (c.TabOrder));
  NewItem.OnClick := c.OnClick;
  menu.Items.Add (NewItem);
end;
Vielleicht sieht ja einer was.

mirage228 21. Feb 2010 15:48

Re: Reihenfolge Menüeinträge für TMainMenu
 
Wo ist der Unterschied zwischen menu (letzte Zeile) und men (Parameter)? Vielleicht liegts ja daran...

Hansa 21. Feb 2010 15:51

Re: Reihenfolge Menüeinträge für TMainMenu
 
Ne, men= menu (Schreibfehler)


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

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