Delphi-PRAXiS

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/)
-   -   Delphi Mit Rechstklick Eintrag in ListBox auswählen (https://www.delphipraxis.net/9712-mit-rechstklick-eintrag-listbox-auswaehlen.html)

Nalincah 2. Okt 2003 12:36


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?

Tpercon 2. Okt 2003 12:40

Re: Mit Rechstklick Eintrag in ListBox auswählen
 
Schau dir dazu mal die Funktion ListBox1.ItemAtPos an.

Nalincah 2. Okt 2003 12:45

Re: Mit Rechstklick Eintrag in ListBox auswählen
 
Hab das jetzt so geschrieben:

Delphi-Quellcode:
ListBoxCatFields.ItemAtPos(Mouse.CursorPos,False);
EditCatFilter.Text := EditCatFilter.Text + ListBoxCatFields.Items[ListBoxCatFields.ItemIndex];
Klappt aber leider nicht. Hab die Sache mit Existing noch nicht ganz verstanden

Tpercon 2. Okt 2003 12:51

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;

Nalincah 2. Okt 2003 12:57

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)

Tpercon 2. Okt 2003 13:01

Re: Mit Rechstklick Eintrag in ListBox auswählen
 
Poste mal deinen Code.

Nalincah 2. Okt 2003 13:07

Re: Mit Rechstklick Eintrag in ListBox auswählen
 
So klappt es:

Globale Variable:

Delphi-Quellcode:
var
  aktindex:integer;
Dann die Procedure die den Wert in aktindex reinschreibt

Delphi-Quellcode:
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;
und dann in der Procedure vom Popupmenu hab ich einfach als Itemindex den Wert von aktindex genommen

Delphi-Quellcode:
procedure TFrmMain.Feldnamenhinzufgen1Click(Sender: TObject);
begin
  EditCatFilter.Text := EditCatFilter.Text + ListBoxCatFields.Items[aktindex];
  EditCatFilter.SetFocus;
end;
Die letzte Procedure vom Popupmenu wird nur aufgerufen wenn die Procedure MouseUp aufgerufen wird, oder?


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:38 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