Hallo Leute,
versuche gerade Mastermind zu programmieren und erstell dafür dynamisch (,weil ich will das so) die Comboboxen dafür. ^^
Problem bei der Sache ist jetzt nur, dass er die onChange-Funktion nicht so übernimmt, dass er auf sich selber zu greifen kann bzw. ich einfach nicht wirklich weiß, wie das geht xD
Ich hab's mal geschafft gehabt, warum weiß ich aber nicht genau.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| for i := 0 to code_laenge- 1 do begin combobox[i] := Tcombobox.Create(self); combobox[i].Parent:= Form1; combobox[i].Top := 20; combobox[i].Left := round(((Form1.Width/code_laenge +10)*i)+10); combobox[i].OnChange:= farbeAuswaehlen; for x := 0 to anzahl_farben - 1 do combobox[i].Items.Add(farben[x])
end; |
Damit werden also nun die Comboboxen erstellt und die Farben zugewiesen (farben['rot', 'gelb', 'blau', 'grün']).
Die "farbenAuswaehlen"-Prozedur:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure TForm1.farbeAuswaehlen(Sender: TObject); var combobox : Tcombobox; begin versuch[0] := farben[combobox.ItemIndex] ; end; |
So. Wie ihr seht, gibt es da noch ein weiteres Problem.
Ich muss die Position in dem Array versuch auch noch genau durch die Combobox ermitteln lassen. Also die zuerst kreirte Combobox soll bei einer Änderung versuch[0] definieren und die z.B. 3. dann eben versuch[3]. Allerdings weiß ich da noch weniger, wo ich ansetzen soll ^^
Achja, hab vergessen zu erwähnen, dass versuch als private Variable gesetzt ist und dass wenn ich die Combobox ändere, da ein Zugriffsfehler kommt.
Habt ihr da ein paar Tipps für mich?
Gr33tZ
Rn