moin,
ich hab folgendes problem:
ich hab ne checklistbox, welche mit 8 einträgen gefüllt ist.
nun will ich zur schnellen verarbeitung die werte in einem string schreiben. bei aktivierung des ersten eintrages soll der string dann so aussehen: 10000000
wenn die ersten 2 ausgewählt sind, dann so: 11000000
das prinzip sollte klar sein. nur kommt bei folgendem quelltext etwas unerklärbares raus:
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: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50:
| procedure TfrmUser.FlatButton1Click(Sender: TObject); var savestr : string[9]; begin savestr := '00000000';
if box.Checked[1] then savestr[0] := '1' else savestr[0] := '0'; if box.checked[2] then savestr[1] := '1' else savestr[1] := '0'; if box.Checked[3] then savestr[2] := '1' else savestr[2] := '0'; if box.checked[4] then savestr[3] := '1' else savestr[3] := '0'; if box.Checked[5] then savestr[4] := '1' else savestr[4] := '0'; if box.checked[6] then savestr[5] := '1' else savestr[5] := '0'; if box.Checked[7] then savestr[6] := '1' else savestr[6] := '0'; if box.checked[8] then savestr[7] := '1' else savestr[7] := '0';
showmessage(savestr); end; |
so, wenn ich abwechselnd einen der einträge aktiviere
kommt bei dem string folgendes raus:
10101000
also müll! die ersten 3 werden ignoriert. das hab ich durchs testen rausgefunden! allerdings kann ich keinen fehler sehen!
vieleicht sieht einer von euch etwas.
mfg matthias
p.s. es handelt sic um eine flatlistbox
Ein Spezialist ist ein Mensch, der immer mehr von immer weniger weis, bis er alles von nichts weis!