Ich bin zwar kein Lottospieler, jedoch bin ich mir ziemlich sicher,
dass es jede Zahl in einem Zahlenfeld nur einmal gibt?!?
Du musst jetzt also nurnoch überprüfen, ob die Liste bereits eine Zahl beinhaltet, welche die Checkbox anhängt! Wenn nein => häng an,
wenn ja => dann nicht!
Die Funktion dazu könnte bspw. so aussehen:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39:
| var CurrentNumber: String;
procedure AddNumber(); var i: Integer; founded: Boolean; begin founded := false;
with Form1 do begin if(ListBox1.Items.Capacity > 0) then begin for i := 0 to ListBox1.Items.Capacity - 1 do begin if(ListBox1.Items.Strings[i] = CurrentNumber) then founded := true; end; end;
if(founded = false) then ListBox1.Items.Add(CurrentNumber);
founded := false; end; end;
procedure TForm1.CheckBox1Click(Sender: TObject); begin CurrentNumber := CheckBox1.Caption; AddNumber(); end;
procedure TForm1.CheckBox2Click(Sender: TObject); begin CurrentNumber := CheckBox2.Caption; AddNumber(); end; |
Du könntest dir es natürlich noch einfacher machen und sagen,
wenn der user gehakt hat, ist die Checkbox einfach disabled!
Dann machst du halt noch nen Button dazu, wo drauf steht, "Neu" oder "Reset"!
Delphi-Quelltext
1: 2: 3: 4:
| procedure TForm1.CheckBox1Click(Sender: TObject); begin CheckBox1.Enabled := false; end; |
Das wird bei dir wie ich sehe aber sowieso ein wurschtelcode!
Du schreibst warscheinlich jetzt wirklich 48 mal oder was weiß ich wie viele
Felder das sind diese Prozedur[/delphi]?
Delphi-Quelltext
1: 2: 3: 4: 5:
| procedure TForm1.CheckBox01Click(Sender: TObject); begin if CheckBox01.Checked = true then Listbox1.Items.Add('01'); end; |
Schon mal was von einem ObjektArray gehört??????
Wenn es dich interressiert, wie das so viel einfacher geht,
dann schreib das hier rein!!!!!! Dann mach ich mir halt schnell die Arbeit!
Ansonsten nicht....
CU
Seraph
Moderiert von
Christian S.: Delphi-Tags repariert.