Drei verschiedene Comboboxen

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
Ruulf87
Beiträge: 2
Registriert: Mi 18. Mär 2015, 21:14

Drei verschiedene Comboboxen

Beitrag von Ruulf87 »

Liebes Forum

Ich bin ganz neu hier und hoffe auf eure Unterstützung. Grundsätzlich bin ich noch nicht lange am arbeiten mit Lazarus.

Nun hab ich folgende Frage:
In meinem Programm hab ich drei Comboboxen eingebaut. Wenn in der Combobox eins z.B. die Marke Sony angewählt ist, sollen in der Combobox zwei nur die Typen von Sony erscheinen und die Typen von Barco und Panasonic sollen nicht ausgewählt werden können.

Im Moment stehe ich komplett auf dem Schlauch. :cry: Vielleicht kann mir jemand hier drin auf die Sprünge helfen?

Grz Ruulf

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Drei verschiedene Comboboxen

Beitrag von theo »

Im Ereignis OnSelect (afair) der ersten CB kannst du die Items der zweiten CB befüllen

Die Frage ist auch, wie du die Daten hältst bzw. woher sie kommen: Hardcoded (Array..), Datenbank, XML ... ?

Ruulf87
Beiträge: 2
Registriert: Mi 18. Mär 2015, 21:14

Re: Drei verschiedene Comboboxen

Beitrag von Ruulf87 »

Hallo Theo danke für deine prompte Antwort.
Nach langem hin und her probieren, bin ich noch nicht beim gewünschten Ergebniss.
Die Daten sind hardcoded.

Beispiel: Ich hab in der Combobox 1 drei verschiedene Marken. In der Combobox 2 neun verschiedene Typen. Wenn ich jetzt auf dem die Marke 1 klicke, sollten in der Combobox 2 nur die Typen 1-3 erscheinen.
Bei mir erscheinen jedoch die Typen 1-3 auch dann, wenn ich die Marke zwei anwähle. Untenstehend noch der Code. Hast du einen Vorschlag wie ich mein Vorhaben erreichen kann?

procedure TForm1.ComboBox1Select(Sender: TObject);
begin
if (ComboBox1.[0]='Sony') then
Combobox2.Items[0]:=('VPL FH-31')
end;

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Drei verschiedene Comboboxen

Beitrag von theo »

Du verwendest die falschen Eigenschaften.

Code: Alles auswählen

procedure TForm1.ComboBox1Select(Sender: TObject);
begin
  case ComboBox1.ItemIndex of
   0: ComboBox2.Items.Text:='A'+LineEnding+'B'+LineEnding+'C';
   1: ComboBox2.Items.Text:='D'+LineEnding+'E'+LineEnding+'F';
  end;
end;   

Antworten