AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Popupmenu -> NewSubMenu ?

Ein Thema von Trafel21 · begonnen am 28. Nov 2018 · letzter Beitrag vom 30. Nov 2018
Antwort Antwort
Seite 1 von 2  1 2      
Trafel21

Registriert seit: 16. Nov 2018
69 Beiträge
 
#1

Popupmenu -> NewSubMenu ?

  Alt 28. Nov 2018, 10:31
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?
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#2

AW: Popupmenu -> NewSubMenu ?

  Alt 28. Nov 2018, 10:33
Zitat:
Kann mir jemand in der Hinsicht bitte weiterhelfen?
In der Hinsicht nicht. Aber ich lege dir sehr nahe, dich von with zu trennen. with ist böse, with ist der Teufel und führt oft zu Fehlern die man ohne nicht hätte.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#3

AW: Popupmenu -> NewSubMenu ?

  Alt 28. Nov 2018, 10:47
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;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Trafel21

Registriert seit: 16. Nov 2018
69 Beiträge
 
#4

AW: Popupmenu -> NewSubMenu ?

  Alt 28. Nov 2018, 10:58
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! Da war ich mit meiner Variante total auf dem Holzweg.
  Mit Zitat antworten Zitat
Trafel21

Registriert seit: 16. Nov 2018
69 Beiträge
 
#5

AW: Popupmenu -> NewSubMenu ?

  Alt 28. Nov 2018, 11:45
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;
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#6

AW: Popupmenu -> NewSubMenu ?

  Alt 28. Nov 2018, 13:12
Eigentlich schon, wobei eof(Telefonnummerzuweisen1.Items) irgendwie nicht ganz richtig aussieht. Und da fehlt noch irgendwo ein Next , sonst wird's kein EoF geben.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
28. Nov 2018, 19: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

Registriert seit: 16. Nov 2018
69 Beiträge
 
#8

AW: Popupmenu -> NewSubMenu ?

  Alt 29. Nov 2018, 06:49
Eigentlich schon, wobei eof(Telefonnummerzuweisen1.Items) irgendwie nicht ganz richtig aussieht. Und da fehlt noch irgendwo ein Next , sonst wird's kein EoF geben.
Daran lag es, danke. Der Umstieg von C++ auf Delphi ist doch aufwendiger als ich Anfangs dachte.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#9

AW: Popupmenu -> NewSubMenu ?

  Alt 29. Nov 2018, 07:27
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

Geändert von EWeiss (29. Nov 2018 um 08:45 Uhr)
  Mit Zitat antworten Zitat
Trafel21

Registriert seit: 16. Nov 2018
69 Beiträge
 
#10

AW: Popupmenu -> NewSubMenu ?

  Alt 30. Nov 2018, 10:00
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.

Geändert von Trafel21 (30. Nov 2018 um 10:15 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:31 Uhr.
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