Witam...
Jak zamienic itemy miejscami? Tzn. aby pierwszy byl drugi a drugi byl piewszy... próbowalem ale cosik mi nie wychodzi... poza tym mam 2 noce juz za saoba nie przespane i slabo mysle a musze program skonczyc na dzis...
Witam...
Jak zamienic itemy miejscami? Tzn. aby pierwszy byl drugi a drugi byl piewszy... próbowalem ale cosik mi nie wychodzi... poza tym mam 2 noce juz za saoba nie przespane i slabo mysle a musze program skonczyc na dzis...
procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
Var
APoint: TPoint;
begin
APoint.X := X;
APoint.Y := Y;
Index := TListBox(Sender).ItemAtPos(apoint, True);
IF Source.ClassType = TListBox Then
IF TListBox(Source).ItemIndex >= 0 Then
begin
TListBox(Sender).Items.Insert(index,TListBox(Source).Items[TListBox(Source).ItemIndex]);
IF Sender = Source Then TListBox(Source).Items.Delete(TListBox(Source).ItemIndex);
End ;
IF Source.ClassType = TCheckBox Then
TListBox(Sender).Items.Insert(index,TCheckBox(Source).caption);
end;
procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
accept:=true;
end;
to chyba wszystko, u mnie dziala.
zamieniasz miejscami pozycje w listboxie za pomoca przeciagania
lub tez moze kopiowac z innego listoxa :)
(mozna dosc latwo to zmienic)
// [wstyd]
To chodzi o drag and droop? :|
Mi się wydaje, że autorowi pytania chodziło o coś takiego:
procedure Exchange(List: TListView; Idx1, Idx2: Integer);
var
Item: TListItem;
begin
Item := TListItem.Create(List.Items);
try
Item.Assign(List.Items[Idx1]);
List.Items[Idx1] := List.Items[Idx2];
List.Items[Idx2] := Item;
finally
Item.Free;
end;
end;
Użycie:
Exchange(ListView, 1, 2);