Delphi-PRAXiS
Seite 1 von 2  1 2      

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/)
-   -   Popupmenu -> NewSubMenu ? (https://www.delphipraxis.net/198763-popupmenu-newsubmenu.html)

Trafel21 28. Nov 2018 09:31

Popupmenu -> NewSubMenu ?
 
Hallo zusammen,

ich möchte zur Laufzeit einem TMenuItem im PopupMenu mehrere Untermenu Einträge hinzufügen.

Es funktioniert zwar, aber es wird einfach immer wieder ein weiteres TMenuItem mit einem Untermenu Eintrag erstellt anstatt einem TMenuItem mehre Untermenu Einträgen. Ich suchte schon eine Art "AddSubMenu" Funktion, wurde leider nur nicht fündig.

Code:
 
with IB_CONTACT do
    if RecordCount > 0 then
    begin
      DisableControls;
      try
        lBookMark := GetBookmark;
        try
          First;
          while not eof do
          begin
            if(IB_CONTACTCONTACTTYPE_INCKEY.AsInteger = 100) then
            begin
            lPhoneNumber := IB_CONTACTCONTACT_CONTENTVALUE.AsString;

              PopupMenu1.Items.Add(NewSubMenu('Telefonnummer zuweisen',0,'',
              [
              NewItem(lPhoneNumber,0,False,True,OnClick,0,'')
              ]));

            end;
            Next;
          end;
        finally
          GotoBookmark(lBookMark);
          FreeBookmark(lBookMark);
        end;
      finally
        EnableControls;
      end;
    end;
   end;
Kann mir jemand in der Hinsicht bitte weiterhelfen?

DieDolly 28. Nov 2018 09:33

AW: Popupmenu -> NewSubMenu ?
 
Zitat:

Kann mir jemand in der Hinsicht bitte weiterhelfen?
In der Hinsicht nicht. Aber ich lege dir sehr nahe, dich von
Delphi-Quellcode:
with
zu trennen. with ist böse, with ist der Teufel und führt oft zu Fehlern die man ohne nicht hätte.

Uwe Raabe 28. Nov 2018 09:47

AW: Popupmenu -> NewSubMenu ?
 
Du legst einfach das SubMenu vor der Schleife an und fügst die Items dort hinzu:
Delphi-Quellcode:
  subMenu := NewSubMenu('Telefonnummer zuweisen',0,'', []);
  PopupMenu1.Items.Add(subMenu);
  while ... do
    begin
      if(IB_CONTACTCONTACTTYPE_INCKEY.AsInteger = 100) then
        begin
          lPhoneNumber := IB_CONTACTCONTACT_CONTENTVALUE.AsString;
          subMenu.Add(NewItem(lPhoneNumber,0,False,True,OnClick,0,''));
        end;
      ...
    end;

Trafel21 28. Nov 2018 09:58

AW: Popupmenu -> NewSubMenu ?
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1419485)
Du legst einfach das SubMenu vor der Schleife an und fügst die Items dort hinzu:
Delphi-Quellcode:
  subMenu := NewSubMenu('Telefonnummer zuweisen',0,'', []);
  PopupMenu1.Items.Add(subMenu);
  while ... do
    begin
      if(IB_CONTACTCONTACTTYPE_INCKEY.AsInteger = 100) then
        begin
          lPhoneNumber := IB_CONTACTCONTACT_CONTENTVALUE.AsString;
          subMenu.Add(NewItem(lPhoneNumber,0,False,True,OnClick,0,''));
        end;
      ...
    end;

Vielen dank!:thumb: Da war ich mit meiner Variante total auf dem Holzweg.

Trafel21 28. Nov 2018 10:45

AW: Popupmenu -> NewSubMenu ?
 
Mich würde interessieren, kann ich die Submenus auch mit einer WhileSchleife

So etwa wie:

Code:
while not eof(Telefonnummerzuweisen1.Items) do
begin
  if(Telefonnummerzuweisen1.Items <> lPhonenumber) then
  Telefonnummerzuweisen1.Add(NewItem(lPhoneNumber,0,False,True,OnPhoneNumberClick,0,''));
end;

Uwe Raabe 28. Nov 2018 12:12

AW: Popupmenu -> NewSubMenu ?
 
Eigentlich schon, wobei
Delphi-Quellcode:
eof(Telefonnummerzuweisen1.Items)
irgendwie nicht ganz richtig aussieht. Und da fehlt noch irgendwo ein
Delphi-Quellcode:
Next
, sonst wird's kein
Delphi-Quellcode:
EoF
geben.

DP-Maintenance 28. Nov 2018 18:13

Dieses Thema wurde am "28. Nov 2018, 19:13 Uhr" von "Luckie" aus dem Forum "Algorithmen, Datenstrukturen und Klassendesign" in das Forum "GUI-Design mit VCL / FireMonkey / Common Controls" verschoben.

Trafel21 29. Nov 2018 05:49

AW: Popupmenu -> NewSubMenu ?
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1419516)
Eigentlich schon, wobei
Delphi-Quellcode:
eof(Telefonnummerzuweisen1.Items)
irgendwie nicht ganz richtig aussieht. Und da fehlt noch irgendwo ein
Delphi-Quellcode:
Next
, sonst wird's kein
Delphi-Quellcode:
EoF
geben.

Daran lag es, danke. Der Umstieg von C++ auf Delphi ist doch aufwendiger als ich Anfangs dachte. :)

EWeiss 29. Nov 2018 06:27

AW: Popupmenu -> NewSubMenu ?
 
Wenn du C++ beherrschst, würde ich persönlich niemals nach Delphi portieren. (tu dir das nicht an ;) )
Das sagt jemand der sich mit VSC++ und Delphi beschäftigt. :)

gruss

Trafel21 30. Nov 2018 09:00

AW: Popupmenu -> NewSubMenu ?
 
Ich finde Delphi gar nicht so übel. :) Aber ich muss auch aufgrund meiner neuen Arbeit mich in die Delphi Anwendungsentwicklung einarbeiten.
Ich bin im Allgemeinen noch neu in der Anwendungsentwicklung, komme aus dem Stm32 Embedded Bereich und wollte was neues ausprobieren. :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:58 Uhr.
Seite 1 von 2  1 2      

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