AGB  ·  Datenschutz  ·  Impressum  







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

Listbox items in PopUpMenu rein

Offene Frage von "k4ni"
Ein Thema von k4ni · begonnen am 12. Feb 2008 · letzter Beitrag vom 13. Feb 2008
Antwort Antwort
Seite 1 von 2  1 2      
k4ni

Registriert seit: 17. Jul 2007
Ort: Ulm
258 Beiträge
 
Delphi 7 Enterprise
 
#1

Listbox items in PopUpMenu rein

  Alt 12. Feb 2008, 23:09
hey leute,

ich mach jetzt schon länger daran herum und scheine auf keinen grünen zweig zu kommen.
Ich will alle items die in einer ListBox sind in ein PopUpMenu kopieren und für alle Items die gleiche OnClick procedure declaren.

Aber wie?

danke im vorraus.
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#2

Re: Listbox items in PopUpMenu rein

  Alt 13. Feb 2008, 03:29
Sowas wie das Codevervollstaendigung von der Delphi IDE?
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Listbox items in PopUpMenu rein

  Alt 13. Feb 2008, 08:27
eine schleife durchlaufen in der du für jedes item der listbix ein tmenuitem erzeugst und dem popup menu hinzufügst.
das onclick event kannst du dabei auch gleich zuweisen.
  Mit Zitat antworten Zitat
Blackheart

Registriert seit: 4. Mai 2005
846 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Listbox items in PopUpMenu rein

  Alt 13. Feb 2008, 10:25
Mal ein kleines Beispiel wie es ungefähr aussehen könnte
Delphi-Quellcode:
private
    { Private-Deklarationen }
    procedure OnMenuItemClick(Sender: TObject);
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);
var
  NewItem: TMenuItem;
  i:Integer;
begin
  for i:=0 to 10 do
  begin
    NewItem:= TMenuItem.Create(Form1);
    NewItem.Caption := 'Item' + IntToStr(i);
    NewItem.Tag := i;
    NewItem.OnClick := OnMenuItemClick;
    PopUpMenu.Items.Add(NewItem);
  end;
end;

procedure TForm1.OnMenuItemClick(Sender: TObject);
begin
  ShowMessage(TMenuItem(Sender).Caption);
end;
Blackheart
  Mit Zitat antworten Zitat
k4ni

Registriert seit: 17. Jul 2007
Ort: Ulm
258 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Listbox items in PopUpMenu rein

  Alt 13. Feb 2008, 12:16
Heyy,

Danke!
Doch so ähnlich wollte ich es auch versuchen nur das delphi (7 enterprise) mir immer sagt, das es TMenu item nicht kennt.
Also:
[Error] Unit1.pas(28): Undeclared identifier: 'TMenuItem'
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Listbox items in PopUpMenu rein

  Alt 13. Feb 2008, 12:26
Delphi-Quellcode:
uses
  Menus;
fehlte da wohl.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
k4ni

Registriert seit: 17. Jul 2007
Ort: Ulm
258 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Listbox items in PopUpMenu rein

  Alt 13. Feb 2008, 14:09
umm danke..

Jetzt ist das nächste problem mit the OnClick procedure.
Also wenn man draufclickt brauch ich die Caption des items. Doch die wird falsch angezeigt.

Hier die procedure in der ich die items hinzufüge:
Delphi-Quellcode:
procedure TForm2.OkBtnClick(Sender: TObject);
var
  NewItem: TMenuItem;
  i:Integer;
begin
  for i:=0 to ServerView.Count-1 do
  begin
    NewItem:= TMenuItem.Create(Self);
    NewItem.Caption := ServerView.Items.Strings[i];
    NewItem.Tag := i;
    NewItem.OnClick := PopUpMenuConnecter;
    Form1.PopUpMenu1.Items.Add(NewItem);
  end;
Form2.Close;
end;
Und hier die OnClick procedure von allen TMenuItems:
Delphi-Quellcode:
procedure TForm2.PopUpMenuConnecter(Sender: TObject);
begin
//ShowMessage(TMenuItem(Sender).Caption);
Form1.Connect(TMenuItem(Sender).Caption);
end;
Nur ist vor die Caption irgendwie falsch, da ist immmer ein "&" zeichen davor. Wieso?

Edit:
naja, ich habs jetzt einfach mit dem Name des TMenuItems gemacht (natürlich gleich declariert wie die caption) und dann ging es. Würd mich aber trotzdem interesieren warum dort ein "&" davor ist wenn ich die Caption nimm.
  Mit Zitat antworten Zitat
Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Listbox items in PopUpMenu rein

  Alt 13. Feb 2008, 14:56
Hi!

Zitat:
Nur ist vor die Caption irgendwie falsch, da ist immmer ein "&" zeichen davor. Wieso?
Mit dem kaufmännischen Und "&" kann das Tastenkürzel für das MenüItem angegeben werden
-- probiere mal AutoHotKeys:= maManual einzustellen, ob es dann nicht mehr
automatisch von Delphi vergeben wird.

Gruß
Pfoto
Jürgen Höfs
  Mit Zitat antworten Zitat
k4ni

Registriert seit: 17. Jul 2007
Ort: Ulm
258 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Listbox items in PopUpMenu rein

  Alt 13. Feb 2008, 16:53
Also, das ich anstatt die Caption den Namen zu benützen war keine gut idee wegen den sonderzeichen.

Deswegen, danke Pfoto, ging aber nicht
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#10

Re: Listbox items in PopUpMenu rein

  Alt 13. Feb 2008, 16:58
Um Menüs dynamisch aufzubauen gibt es die Funktionen (Unit Menus):
Delphi-Quellcode:
function NewMenu(Owner: TComponent; const AName: string; Items: array of TMenuItem): TMainMenu;
function NewPopupMenu(Owner: TComponent; const AName: string;
  Alignment: TPopupAlignment; AutoPopup: Boolean; Items: array of TMenuitem): TPopupMenu;
function NewSubMenu(const ACaption: string; hCtx: Word;
  const AName: string; Items: array of TMenuItem; AEnabled: Boolean = True): TMenuItem;
function NewItem(const ACaption: string; AShortCut: TShortCut;
  AChecked, AEnabled: Boolean; AOnClick: TNotifyEvent; hCtx: Word;
  const AName: string): TMenuItem;
function NewLine: TMenuItem;
Andreas
  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 22:18 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