Forum
Grundkurs
»Introduktion
»Snabbguide
»Komponenter
»Händelser
»Strängar
»Räkna med Delphi »Egna
typer
»Selektion
»Iteration
»Menyer
»Funktioner
»Arraystrukturer
Tips & Tricks
»Nya tips
»Blandat
»Databaser
»Filer
»Forms
»Grafik
»Internet
»Komponenter
»Matematik
»Multimedia
»Objekt/ActiveX
»Skrivare
»Strängar
»System
»Mest lästa tips
Artiklar
»Delphi och ADO
»Bygga en DLL
»Skapa en enkel rapport
»Hantera registret
»Enheter, units
»Klassen TCanvas
»Använd LookUp Controls
Nya
tips
Lägg
till tips
Delphilänkar
Gästbok
|
|
|
|
Ändra ordning bland raderna i en TListBox
|
Kategori: Komponenter
Inlagt: 2006-06-16
Läst: 1254
Inlagt av: Staffan Berg
|
Beskrivning |
Med detta kodexempel kan du flytta om elementen i en TListBox med musen (Drag And Drop). Ställ in listrutans Dragmode-egenskap till dmAutomatic. Hantera sedan MouseDown, DragOver and DragDrop-händelserna enligt koden nedan.
|
Kod |
var // form level StartingPoint : TPoint; implementation ... procedure TForm1.FormCreate(Sender: TObject) ; begin ListBox1.DragMode := dmAutomatic; end; procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer) ; var DropPosition, StartPosition: Integer; DropPoint: TPoint; begin DropPoint.X := X; DropPoint.Y := Y; with Source as TListBox do begin StartPosition := ItemAtPos(StartingPoint,True) ; DropPosition := ItemAtPos(DropPoint,True) ; Items.Move(StartPosition, DropPosition) ; end; end; procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean) ; begin Accept := Source = ListBox1; end; procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer) ; begin StartingPoint.X := X; StartingPoint.Y := Y; end;
|
|
|