![]() |
Mit Rechstklick Eintrag in ListBox auswählen
Ich hab folgende Situation:
Eine Listbox mit 10 Einträgen, die ein Popupmenu zugewiesen hat. Ich wähle mit der linken Maustaste den ersten Eintrag aus und klick dann mit der rechten Maustaste auf den zehnten Eintrag (Erste Eintrag immer noch ausgewählt). Wenn ich jetzt einen Eintrag im Popup-Menu anklicke, dann soll der den Eintrag auswählen, wo ich rechts geklickt hab, also den 10ten. Wie krieg ich das hin? |
Re: Mit Rechstklick Eintrag in ListBox auswählen
Schau dir dazu mal die Funktion ListBox1.ItemAtPos an.
|
Re: Mit Rechstklick Eintrag in ListBox auswählen
Hab das jetzt so geschrieben:
Delphi-Quellcode:
Klappt aber leider nicht. Hab die Sache mit Existing noch nicht ganz verstanden
ListBoxCatFields.ItemAtPos(Mouse.CursorPos,False);
EditCatFilter.Text := EditCatFilter.Text + ListBoxCatFields.Items[ListBoxCatFields.ItemIndex]; |
Re: Mit Rechstklick Eintrag in ListBox auswählen
Hier nen Auszug aus der OH dazu:
Delphi-Quellcode:
procedure TForm1.ListBox1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X,Y: integer);
var APoint: TPoint; Index: integer; TheObject: TControl; begin if Button = mbRight then begin APoint.X := X; APoint.Y := Y; Index := ListBox1.ItemAtPos(APoint, True); // hier müßtest du jetzt Index weiterverarbeiten end; |
Re: Mit Rechstklick Eintrag in ListBox auswählen
Klappt leider nur teilweise:
Der holt sich zwar den Text aus der Listbox und pack ihn in das Edit, aber danach krieg ich
Delphi-Quellcode:
Listenindex überschreitet das Maximum (-1)
|
Re: Mit Rechstklick Eintrag in ListBox auswählen
Poste mal deinen Code.
|
Re: Mit Rechstklick Eintrag in ListBox auswählen
So klappt es:
Globale Variable:
Delphi-Quellcode:
Dann die Procedure die den Wert in aktindex reinschreibt
var
aktindex:integer;
Delphi-Quellcode:
und dann in der Procedure vom Popupmenu hab ich einfach als Itemindex den Wert von aktindex genommen
procedure TFrmMain.ListBoxCatFieldsMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var APoint: TPoint; begin if Button = mbRight then begin APoint.X := X; APoint.Y := Y; aktindex := ListBoxCatFields.ItemAtPos(APoint, True); end; end;
Delphi-Quellcode:
Die letzte Procedure vom Popupmenu wird nur aufgerufen wenn die Procedure MouseUp aufgerufen wird, oder?
procedure TFrmMain.Feldnamenhinzufgen1Click(Sender: TObject);
begin EditCatFilter.Text := EditCatFilter.Text + ListBoxCatFields.Items[aktindex]; EditCatFilter.SetFocus; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz