Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: Strings aus TListBox in Edit...

  Alt 18. Dez 2005, 14:32
Hi,
einfach bei der Listbox die Eigenschaft DragMode auf dmAutomatic stellen, damit kannst du dann die Elemente per Drag&Drop bewegen.
Wenn du nun ein Element per Drag über ein Controll ziehst, wird bei diesem Cotroll (z.B. einem TEdit) das OnDragOver-Ereignis ausgelöst. Hier musst du nur prüfen, wo das Objekt her kommt, dass dieses Ereignis ausgelöst hat. Wenn es die ListBox ist, setzt du accept auf True (du würdest ein Drag&Drop annehmen) und beim loslassen wird dann wiederum das OnDragDrop-Ereignis ausgelöst. Hier musst du nur noch den ausgewählten Text ins Edit eintragen.

Also 3 Schritte,
1) Bei der Listbox DragMode auf dmAutomatic setzen
2) Beim Edit das Ereignis OnDragOver erstellen
3) Beim Edit das Ereignis OnDragDrop erstellen

Dann sollte dein Code ungefähr so aussehen
Delphi-Quellcode:
procedure TForm1.Edit1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  if Source = ListBox1 then
    begin
      Accept := true;
    end;
end;

procedure TForm1.Edit1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
  (Sender as TEdit).Text := ListBox1.Items[ListBox1.ItemIndex];
end;
Das war's schon. Achtung, hab im DragDrop jetzt nicht überprüft ob der Sender überhaupt eine Listbox ist und ob die Referenz darauf gültig ist, sollte man natürlich immer machen.

Gruß Der Unwissende
  Mit Zitat antworten Zitat