AGB  ·  Datenschutz  ·  Impressum  







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

PopUpMenu bei Listbox

Ein Thema von Jay15688 · begonnen am 24. Nov 2006 · letzter Beitrag vom 25. Nov 2006
Antwort Antwort
Jay15688

Registriert seit: 10. Nov 2006
25 Beiträge
 
#1

PopUpMenu bei Listbox

  Alt 24. Nov 2006, 15:21
Hallo Leute!

Bin sowohl hier im Forum, als auch in Delphi generell absoluter Neuling...

Bin im Moment ein eigenes Programm am entwickeln, das eine Listbox enthält! Würde gerne ein Rechtsklick-Menü in die ListBox einbauen! Habe also in Delphi folgenden Code in die ListBox geschrieben:

Zitat:
procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
cursorpos : TPoint;
ndx : integer;
begin
if Button=mbRight then
begin
cursorpos.X := X;
cursorpos.Y := y;
ndx := ListBox1.ItemAtPos(cursorpos,true); // Item unter dem Cursor
if (ndx <> -1) then
begin
with (Sender As TListBox) do
begin
Selected[ndx] := True;
cursorpos := ClientToScreen(cursorpos); // Positionsanpassung
PopupMenu1.Popup(cursorpos.x + Left,cursorpos.Y + Top);
end;
end;
end;
end;

Allerdings kommt immer wieder der Fehler: Undeclared Identifier: PopUpMenu1

Habe auch versucht oben unter "type" PopupMenu1: TPopupMenu; zu schreiben, was aber auch nichts bringt..dann kommt eine Meldung, dass er keinen "corresponding component" hat...

Würde mich freuen, wenn mir da einer so helfen kann, dass es auch ein blutiger Noob wie ich hinbekommt

Thx im Vorraus


MfG Jay
  Mit Zitat antworten Zitat
oschulz

Registriert seit: 29. Nov 2005
Ort: Cottbus
44 Beiträge
 
Delphi 7 Architect
 
#2

Re: PopUpMenu bei Listbox

  Alt 24. Nov 2006, 16:09
Die Listbox hat doch bereits eine Property PopupMenu! Dort brauchst du dir doch nur das Popup zuzweisen.
Oder hast damit was besonderes vor?
Oliver
  Mit Zitat antworten Zitat
Jay15688

Registriert seit: 10. Nov 2006
25 Beiträge
 
#3

Re: PopUpMenu bei Listbox

  Alt 24. Nov 2006, 16:11
Zitat von oschulz:
Die Listbox hat doch bereits eine Property PopupMenu! Dort brauchst du dir doch nur das Popup zuzweisen.
Oder hast damit was besonderes vor?
Ich will ein stinknormales Popup-Menu für die Listbox haben. Wenn das einfacher geht, soll mir das nur Recht sein

Könntest du mir das mit dem eigenen Property PopupMenu erklären?

Danke
  Mit Zitat antworten Zitat
oschulz

Registriert seit: 29. Nov 2005
Ort: Cottbus
44 Beiträge
 
Delphi 7 Architect
 
#4

Re: PopUpMenu bei Listbox

  Alt 24. Nov 2006, 16:28
Aber gerne doch
Du legst dir die Kompo Popupmenu aufs Form, das füllen wirst du sicherlich schon hinbekommen haben. Dann Lisbox anklicken und den Propertys (Liste mit den Einstellungen für die Listbox). Dort gibt es einen Punkt Popupmenu. Im normalfall ist das ne rote Schrift(zumindest bei mir ). Wenn du dann daneben auf den Pfeil nach unten klickst (Pulldownbox), bekommst du eine Liste mit den Popups auf deinem Form. Das richtige auswählen, anklicken, fertig. Oder du trägst den Namen des Popups dort direkt per Hand ein. (Siehe Anhang)
Miniaturansicht angehängter Grafiken
popup_188.gif  
Oliver
  Mit Zitat antworten Zitat
Jay15688

Registriert seit: 10. Nov 2006
25 Beiträge
 
#5

Re: PopUpMenu bei Listbox

  Alt 24. Nov 2006, 16:32
Ja, das klappt jetzt soweit alles! Vielen Dank! Habe schon ein kleines Menü mit einer "Löschen" Funktion zum laufen bekommen!

Aber was ich mir jetzt noch vorstellen würde ist, dass beim Rechtsklick der Eintrag unter dem Cursor selektiert wird und die Befehle im Menü dann nur für den selektierten Eintrag gelten. In dem Fall, dass nur der eine Eintrag gelöscht wird und nicht der gesamte ListBox-Inhalt!

Ist das auch mehr oder weniger einfach umsetzbar?

Habe leider nocht nicht sooo viel Ahnung =)


Vielen Dank schonmal!
  Mit Zitat antworten Zitat
gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#6

Re: PopUpMenu bei Listbox

  Alt 24. Nov 2006, 18:22
Zitat von Jay15688:
... die Befehle im Menü dann nur für den selektierten Eintrag gelten
Dazu musst du im OnClick des Menüeintrags den selectierten Eintrag des ListBox ermitteln. z.B. so:
Delphi-Quellcode:
procedure TForm1.LschenClick(Sender: TObject);
var
  LB : TListbox;
begin
  lB := Popupmenu1.PopupComponent as TListBox;
  if lb.ItemIndex >=0 then
    LoeschEs ();
EDTI: Listview mit Listbox verwechselt
  Mit Zitat antworten Zitat
Jay15688

Registriert seit: 10. Nov 2006
25 Beiträge
 
#7

Re: PopUpMenu bei Listbox

  Alt 25. Nov 2006, 10:56
Vielen Dank!

Soweit klappt nun das Popupmenü, sodass auch der Eintrag unter dem Cursor makiert wird.

Aber meine nächste und wohl auch zu diesem Thema letzte Frage wäre jetzt, wie ich hinkriege, dass z.B eine Funktion wie "Löschen" nur für den selektierten Eintrag gilt und nicht für die ganze ListBox! Momentan wird dann der gesamte ListBox Inhalt gelöscht...


Danke im Vorraus!


MfG Jay
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#8

Re: PopUpMenu bei Listbox

  Alt 25. Nov 2006, 11:12
du machst sicherlich ein lb(.items).clear, oder? nehm mal lb.items.delete(lb.ItemIndex);

hth Frank
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:21 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