Hallo Fabian,
habe komplett nochmal überarbeitet:
Delphi-Quellcode:
procedure TFMain.MoveUpActionUpdate(Sender: TObject);
var
at: TListBox;
begin
with Sender as TAction do
begin
at := ActiveControl as TListBox;
Enabled := at.ItemIndex > 0;
end;
end;
procedure TFMain.MoveUpActionExecute(Sender: TObject);
var
at: TListBox;
begin
with Sender as TAction do
at := ActiveControl as TListBox;
with at do
Items.Exchange(ItemIndex, Pred(ItemIndex));
end;
procedure TFMain.ListBox1ContextPopup(Sender: TObject; MousePos: TPoint;
var Handled: Boolean);
begin
with Sender as TListBox do
ItemIndex := ItemAtPos(MousePos, False)
end;
procedure TFMain.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
index: Integer;
begin
with Sender as TListBox do
begin
index := ItemAtPos(Point(X, Y), True);
Items.Move(ItemIndex, index);
end;
end;
procedure TFMain.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
var
index: Integer;
begin
with Sender as TListBox do
index := ItemAtPos(Point(X, Y), True);
Accept := (Sender = Source) and (index > -1);
end;
Damit kann ich per Mouse eine bestimmte Zeile in der Listbox1 selectieren und dann an einer anderen Stelle in der Listbox1 wieder einordnen. Das funktioniert aufwärts und abwärts.
Mit nachfolgendem kann ich dann ebenfalls dieselbe Zeile in der Listbox2 selectieren.
Delphi-Quellcode:
procedure TFMain.ListBox1Click(Sender: TObject);
begin
if not ( Listbox1.ItemIndex = Listbox1.Count - 0 ) then
begin
Listbox2.ItemIndex := Listbox1.ItemIndex;
end;
end;
Ich möchte nichts weiter, dass, wenn ich in der Listbox1 - was ja funktioniert - zBsp. von zeile 5 nach 2 oder von zeile 2 nach 10 vershiebe auch in der Listbox2 passiert. Das selectieren klappt ja aber beim verschieben futzt es nicht, auch wenn ich der Listbox2 dieselben Parameter analog der Listbox1 zuordnet.
Im Klartext zBsp.: Verschiebe Box1 von 3 nach 5, dann soll gleichzeitig Box2 auch von 3 nach 5.
Ich glaube jetzt ist es eindeutig und Du kannst damit etwas anfangen. Jedoch muss
ListBox1DragOver und
ListBox1DragDrop bleiben sonst gehts nicht.
mfg
ml