![]() |
Drag&Drop Listbox ---> Groupbox (---> Label)
Hallo,
ich habe eine Frage zu dem im Titel genannten Vorhaben. Genau meine ich das so: Ich habe eine Playlist 1 und Playlist2, Playlist2 ist visible=false. In Playlist1 steht der Titel einer Mp3 Datei, in der Playlist2 steht an gleicher Position der Pfad der Datei. Nun habe ich eine Groupbox in der ein label namens filea ist, ich möchte nun einen Titel in der Playlist 1 anklicken per draganddrop auf die Groupbox ziehen und dann wird in dem label filea der Pfad des entsprechenden Titels auf Playlist2 geschrieben. Ich hab nun schon einige Zeit nach Drag&Drop gesucht und sicherlich auch einiges gefunden, etwa Bilder in Imageboxen ziehen, etc. pp., jedoch kann ich für mein Problem keine Lösung finden. :gruebel: :coder2: Ich wäre euch wirklich total dankbar um Hilfe. Liebe Grüße, Kranich |
Re: Drag&Drop Listbox ---> Groupbox (---> Label)
Moin Kranich,
bei der Listbox mit den Namen setze mal die Eigenschaft DragMode auf dmAutomatic, ausserdem noch die Eigenschaft Tag auf einen Wert, um die ListBox identifizieren zu können (z.B. 1). Bei der GroupBox dann noch die Eigenschaft DragMode auch auf dmAutomatic. Die Events OnDragOver und OnDragDrop der GroupBox könnten dann so aussehen:
Delphi-Quellcode:
Das Beispiel geht davon aus, dass die Einträge der Namen und die der Pfade immer den gleichen Index haben.
procedure TForm1.gbDestDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean); var lb : TListBox; begin if Source is TListBox then begin lb := Source as TListBox; // Drop erlauben, wenn die Quelle die richtige ListBox ist // und ein Eintrag ausgewählt wurde Accept := (lb.Tag = 1) and (lb.ItemIndex > -1); end; end; procedure TForm1.gbDestDragDrop(Sender, Source: TObject; X, Y: Integer); var lb : TListBox; begin if Source is TListBox then begin lb := Source as TListBox; if lb.Tag = 1 then begin // Quelle war die richtige ListBox // dann korrespondierenden Eintrag der anderen in das Label schreiben lblPath.Caption := lbPath.Items[lb.ItemIndex]; end; end; end; [EDIT] Code vervollständigt (gemäss Kranichs Posting) [/EDIT] |
Re: Drag&Drop Listbox ---> Groupbox (---> Label)
Hey,
vielen vielen lieben Dank, hat wunderbar funktioniert :-) Liebe Grüße, Kranich PS: Der Vollständigkeit halber, damit auch andere den Code Schnipsel nutzen können: In der einen Prozedur fehlt die Deklaration von lb. |
Re: Drag&Drop Listbox ---> Groupbox (---> Label)
Hey, kaum hat sich das eine gelöst, kommt ein anderes Problem auf.
Ich habe Hotkeys definiert, mit dem keydown ereignis. Die Tasten F1, F3 und F4 funktionieren nachwievor ohne Probleme, doch F2 streikt und tut gar nichts, dabei hat es vorher funktioniert...
Delphi-Quellcode:
Ich versteh's nicht, da die anderen nach wie vor funktionieren.
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin if key=VK_F1 then playaClick(Sender); if key=VK_F2 then breakaClick(Sender); if key=VK_F3 then stopaClick(Sender); if key=VK_F4 then fadeaClick(Sender); end; Ach so:
Delphi-Quellcode:
Liebe Grüße und vielen Dank im Voraus:
procedure TForm1.breakaClick(Sender: TObject);
begin if playera.filename<>'' then begin playera.Pause; timera.Enabled:=false; end; end; Kranich |
Re: Drag&Drop Listbox ---> Groupbox (---> Label)
Bitte mach zu einer neuen Frage auch einen neuen Thread auf.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 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