![]() |
Probleme mit der Funktion Move und DragOver
Hi,
ich habe im Forum folgenden Drag&Drop-Code gefunden:
Delphi-Quellcode:
Da die Items nur die Ausgabe eines Arrays sind, muss das Array noch aktualisiert werden. Dies wollte ich an der mit * markierten Stelle mit der Funktion Move erledigen:
procedure TfrmMain.lbListDragOver(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;
Delphi-Quellcode:
Warum ändert sich im Array nichts ?
Move(fFiles[i], fFiles[i - verschieben], ((i - verschieben) - i) * SizeOf(fFiles[i]));
[Wie ich Drag&Drop liebe, zumal die Titelformulierungen hierbei noch unglücklicher als sonst sind....] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz