Einzelnen Beitrag anzeigen

maluprog

Registriert seit: 20. Okt 2009
Ort: Wildau
19 Beiträge
 
Delphi 6 Professional
 
#5

AW: 2 Listboxen gleichzeitig bearbeiten

  Alt 27. Sep 2010, 17:17
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
  Mit Zitat antworten Zitat