![]() |
Rechtsklick auf Listbox öffnet PopUp "ohne Linksklick&q
Hallöchen,
ich habe im Forum schon gesucht, aber leider nichts Passendens/Funktionierendes gefunden. Wenn ich auch meine Listbox rechtsklicke, soll das unter der Maus liegende Item markiert und das PopUpMenu geöffnet werden. Das wurde ![]() Es soll quasi so aussehen:
Delphi-Quellcode:
Das Problem kann nicht so schwer zu beheben sein, schätze ich, aber ich komm nicht drauf, was man da machen könnte :oops:
procedure TForm1.Listbox1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Button=mbRight then begin //Markiere unter dar Maus befindliches Listbox-Item (Knackpunkt) Showmessage(''); end; end; Liebe Grüße Aike |
Re: Rechtsklick auf Listbox öffnet PopUp "ohne Linkskli
Du könntest es einfah markieren. So eine Art selected.
Beispiel:
Delphi-Quellcode:
Du musst es anpassen. TxtFolder = StaticText.
var mp3file : string;
begin mp3File := Concat(txtFolder.Caption, playlist.Items.Strings[playlist.ItemIndex]); |
Re: Rechtsklick auf Listbox öffnet PopUp "ohne Linkskli
Delphi-Hilfe:
"Die Funktion [Concat] verknüpft mehrere Strings zu einem einzigen String." Ich sehe nicht, wie mir eine Verknüpfung zweier Strings weiterhelfen sollte. |
Re: Rechtsklick auf Listbox öffnet PopUp "ohne Linkskli
Zitat:
|
Re: Rechtsklick auf Listbox öffnet PopUp "ohne Linkskli
Hai Aike,
versuche es doch mal so:
Delphi-Quellcode:
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; |
Re: Rechtsklick auf Listbox öffnet PopUp "ohne Linkskli
Perfekt. Vielen Dank! :cheers:
|
Re: Rechtsklick auf Listbox öffnet PopUp "ohne Linkskli
Geht der Code auch, wenn die Listbox mehr EInträge hat, sodass man sie scrollen kann?
Ich habe mir das ein wenig anders geschrieben und musste TopItem mit einbauen(zeigt beim runterscrollen das oberste Element an) Oder macht die ItemAtPoint Prozedur das eigenständig? |
Re: Rechtsklick auf Listbox öffnet PopUp "ohne Linkskli
Hai CLRS530,
Zitat:
Aber ich kann es ja auch sagen. -> Jup es geht. ItemAtPos benutzt intern nämlich auch wieder TopIndex zur Berechnung. |
Ja, das hat gut funktioniert, aber jetzt wird's noch 'n bisschen komplizierter:
Das selbe soll jetzt auch funktionieren, wenn ich eine Datei auf die Listbox droppe. Da muss zwar kein PopUp kommen, sondern nur 'ne showmessage(), in WMDropFiles() kann ich leider deine Funktion nicht benutzen (hat zumindest bei mir nicht geklappt). Es muss eigentlich nur wieder auf das Item "geklickt" werden. Ah, ich werd noch zum Hirsch. Weder OnDragOver, OnDropDown, noch OnEndDrop liefern mir was Anständiges. :pale: |
Re: Rechtsklick auf Listbox öffnet PopUp "ohne Linkskli
Wenn du da was reindroppst, dann wird das doch an die letze stelle eingefügt oder?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:55 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