Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.107 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Drag&Drop Listbox ---> Groupbox (---> Label)

  Alt 5. Okt 2006, 22:23
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:
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;
Das Beispiel geht davon aus, dass die Einträge der Namen und die der Pfade immer den gleichen Index haben.

[EDIT]
Code vervollständigt (gemäss Kranichs Posting)
[/EDIT]
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist