- Delphiartiklar, tips, forum, länksamling - 

      

START | DELPHI | LÄNKARGÄSTBOK 




 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: 1175
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;

 
 
© Copyright 2005 - Staffan Berg
- Alla rättigheter förbehålles -