AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein 2 Listboxen gleichzeitig bearbeiten

2 Listboxen gleichzeitig bearbeiten

Ein Thema von maluprog · begonnen am 27. Sep 2010 · letzter Beitrag vom 28. Sep 2010
 
maluprog

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

2 Listboxen gleichzeitig bearbeiten

  Alt 27. Sep 2010, 14:02
Hallo !

Habe 2 Listboxen in Verwendung, die Daten beinhalten und zwischen den Listboxen bestimmten Inhalten zugeornet sind.
zBsp.: Listbox1: C:\Daten5\a.txt
C:\Daten5\b.txt
......
Listbox2: a.txt
b.txt
......

Möchte mittels Mouse in der Listbox2 eine bestimmte Datei selectiren und an einer anderen Stelle in der Listbox2 neu plazieren.
Beide Listboxen gemeinsam selectieren funktioniert. Das gemeinsame verschieben klappt nicht, wobei wenn ich jede einzelne Listbox selectiere dann geht es.
Wo liegt der Fehler, wenn ich Listbox2 selectiere und verschiebe in Listbox1 nichts passiert.

Hier der Code: ( unter Verwendung einer ActionList-Komponente )
Delphi-Quellcode:
procedure TFMain.ListBox2Click(Sender: TObject);
begin
        if not ( Listbox2.ItemIndex = Listbox2.Count - 0 ) then
        begin
         Listbox1.ItemIndex := Listbox2.ItemIndex;
        end;
end;

function ListMenu(mi: TMenuItem): Integer;
var
  i: Integer;
  item: TMenuItem;
begin
  Result := 0;
  for i := 0 to Pred(mi.Count) do
  begin
    item := mi.Items[i];
    if item.Count = 0
      then item.Visible := item.Enabled
      else item.Visible := ListMenu(item) > 0;
    Inc(Result, Ord(item.Visible and not item.IsLine));
  end;
end;

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.MoveDownActionUpdate(Sender: TObject);
var
  at: TListBox;
begin
  with Sender as TAction do
  begin
    at := ActiveControl as TListBox;
    Enabled := (at.ItemIndex >= 0) and (at.ItemIndex < Pred(at.Count));
  end;
end;

procedure TFMain.MoveDownActionExecute(Sender: TObject);
var
  at: TListBox;
begin
  with Sender as TAction do
    at := ActiveControl as TListBox;
  with at do
    Listbox2.Items.Exchange(Listbox2.ItemIndex, Succ(Listbox2.ItemIndex));
    Listbox1.Items.Exchange(Listbox1.ItemIndex, Succ(Listbox1.ItemIndex));
end;

procedure TFMain.MoveUpActionExecute(Sender: TObject);
var
  at: TListBox;
begin
  with Sender as TAction do
    at := ActiveControl as TListBox;
  with at do
    Listbox2.Items.Exchange(Listbox2.ItemIndex, Pred(Listbox2.ItemIndex));
    Listbox1.Items.Exchange(Listbox1.ItemIndex, Pred(Listbox1.ItemIndex));
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;

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.ListBox1ContextPopup(Sender: TObject; MousePos: TPoint;
  var Handled: Boolean);
begin
  with Sender as TListBox do
    Listbox2.ItemIndex := ItemAtPos(MousePos, False);
end;

procedure TFMain.ListBox2DragDrop(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.ListBox2DragOver(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;

procedure TFMain.ListBox2ContextPopup(Sender: TObject; MousePos: TPoint;
  var Handled: Boolean);
begin
  with Sender as TListBox do
    //Listbox1.ItemIndex := Listbox2.ItemAtPos(MousePos, False);
    Listbox1.ItemIndex := Listbox2.ItemIndex;
end;
Einem Hinweis wäre ich dankbar !

ml
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:11 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