Registriert seit: 17. Jan 2007
1.169 Beiträge
Turbo Delphi für Win32
|
Re: Listbox Einträge verschieben
5. Mär 2007, 02:10
Moin,
@Thomasl, hier ist meine Version:
Delphi-Quellcode:
procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
var
verschieben, ItemPos, i: integer;
begin
if (Source is TListbox) and ((Source as Tlistbox).SelCount> 0) then
with Source as TListbox do
begin
ItemPos:= ItemAtPos(point(x, y), true);
if (ItemPos< 0) or (ItemPos>= Items.Count) then
exit;
if Selected[ItemPos] then
ItemIndex:= ItemPos;
verschieben:= ItemIndex- ItemPos;
if verschieben<> 0 then
begin
if verschieben> 0 then
i:= 0
else
i:= pred(Items.Count);
while (i>= 0) and (i< Items.Count) do
begin
if Selected[i] then
begin
if (i- verschieben>= 0) and (i- verschieben< Items.Count) then
begin
Items.Move(i, i- verschieben);
Selected[i]:= false;
Selected[i- verschieben]:= true;
end
else
break;
end;
if verschieben> 0 then
inc(i)
else
dec(i);
end;
end;
Accept:= true
end
else
Accept:= false;
end;
Gruß bitsetter
"Viele Wege führen nach Rom" Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
|
|
Zitat
|