Einzelnen Beitrag anzeigen

Sanni13
(Gast)

n/a Beiträge
 
#1

ListBox Eingabe mit Bezug auf vorheriges ListBox

  Alt 25. Dez 2015, 14:01
Hallo,
ich möchte mehrere Listboxen mit Bezug aufeinander nutzen. Die erste Listbox soll die Auswahl a oder b haben. Bei der zweiten sollen, abhängig ob a oder b in Listbox1 gewählt wurde, verschiedene Auswahlmöglichkeiten angezeigt werden. Soweit funktioniert es. Ich kann dann aber die Auswahlmöglichkeiten in Listbox2 nicht anklicken. Es soll danach noch eine dritte Listbox geben welche sich auf die Auswahl der zweiten bezieht. Wie lässt es sich lösen, dass ich die zweite Listbox zwar anklicken aber nichts auswählen kann?
Außerdem zeigt mir das Programm bei der Ausführung eine System-Fehlermeldung "out of bound" an, wenn ich Listbox2 anwähle bevor ich eine Auswahl in ListBox1 treffe. Lässt sich diese Meldung ausschalten?

Vielen Dank im Voraus und schöne Feiertage =)

Hier mein Quelltext:

Delphi-Quellcode:
procedure ListBox2Click(Sender: TObject);
var x:String;
begin
 x:= Listbox1.Items[ListBox1.Itemindex] ;
if ListBox1.ItemIndex >=0 then
 begin
 if x='athen
   begin
   ListBox2.Items.Clear;
   ListBox2.Items.Add('a1');
   ListBox2.Items.Add('a2');
   end
  else if x='bthen
    begin
    ListBox2.Items.Clear;
    ListBox2.Items.Add('b1');
    ListBox2.Items.Add('b2');
    end
  end
else ShowMessage('Bitte Wert aus Liste1 auswählen');
end;

procedure ListBox3Click(Sender: TObject);
var y:String;
 begin
if ListBox2.ItemIndex >=0 then
 begin
 y:= Listbox2.Items[ListBox2.Itemindex] ;
 if y='a1then
  begin
  ListBox3.Items.Clear;
  ListBox3.Items.Add('a11');
  ListBox3.Items.Add('a12');
  end
 else if y='b2then
   begin
   ListBox3.Items.Clear;
   ListBox3.Items.Add('b21');
   ListBox3.Items.Add('b22');
   end
 else if y='a2or 'b1then
   ListBox4.Items.Clear;
 end
else ShowMessage('Bitte Wert aus Liste2 auswählen');
end;

Geändert von mkinzler (27. Dez 2015 um 12:42 Uhr) Grund: Delphi-Tag eingefügt
  Mit Zitat antworten Zitat