Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Strings aus TListBox in Edit...

  Alt 18. Dez 2005, 14:52
Noch eine Ergänzung: wenn DragMode = dmAutomatic, dann muss man überlegen, was passieren soll, wenn der Benutzer aus dem leeren Teil der ListBox zieht. Und wie geht man um mit der Tatsache, dass kein oder mehrere Items selektiert wurden? DragItemIndex ist als private form variable zu deklarieren:

Delphi-Quellcode:
procedure TDemoForm.EditDragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  Accept := (Source is TListBox) // accept item from listbox only
    and (TListBox(Source).SelCount = 1) // drag one only
    and (DragItemIndex <> -1); // selection by mouse is mandatory
end;

procedure TDemoForm.EditDragDrop(Sender, Source: TObject; X, Y: Integer);
begin
  with Source as TListBox do
    TEdit(Sender).Text := Items[DragItemIndex];
end;

procedure TDemoForm.ListBoxMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  DragItemIndex := ListBox.ItemAtPos(Point(X, Y), true);
end;
Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat