Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Eine Komponente über eine Variable ansprechen
juergen - Mi 22.01.03 19:02
Titel: Eine Komponente über eine Variable ansprechen
Hallo,
ich möchte einige Checkboxen (30) auf ihre Eigenschaft CHECKED in einer FOR Schleife abfragen.
Hab folgendes probiert:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| var check_name : TCheckBox; . . .
for i:=1 to 30 do begin check_name.Name:='checkbox'+inttostr(i); if check_name.Checked = true then s:='JA' else s:='NEIN'; end; |
Beim Compilieren geht alles gut.
Zur Laufzeit kommt dann an der Stelle wo ich den Namen zuweise die Fehlermeldung:
Zugriffsverletzung bei Adresse ...
WARUM ?
DANKE
juergen
smiegel - Mi 22.01.03 19:09
Hallo,
Du musst das folgendermassen machen:
Quelltext
1: 2: 3: 4: 5:
| for i:=1 to 30 do begin if TCheckBox(FindComponent('checkbox'+IntToStr(i))).Checked then s:='JA' else s:='NEIN'; end; // for i |
juergen - Do 23.01.03 09:16
Vielen Dank smiegel !
juergen
Brueggendiek - Do 23.01.03 10:29
Hallo Freunde!
Da ist aber bei Smiegels Programm ein kleiner Fehler drin - die Routine liefert den Wert der letzten Checkbox!
Richtig ist:
Quelltext
1: 2: 3: 4: 5: 6:
| s:='NEIN'; // vorbelegen, falls keiner angekreuzt ist for i:=1 to 30 do begin if TCheckBox(FindComponent('checkbox'+IntToStr(i))).Checked then s:='JA'; end; // for i |
Gruß
Dietmar Brüggendiek
smiegel - Do 23.01.03 10:34
Hallo,
| Zitat: |
Brueggendiek schrieb:
bei Smiegels Programm ein kleiner Fehler drin
|
Ich habe nur den Code von juergen so überabeitet, dass er das tut was er soll. Also ist dies nicht mein Fehler, sondern juergens.
Brueggendiek - Do 23.01.03 10:52
Hallo Smigel!
| smiegel hat folgendes geschrieben: |
| Ich habe nur den Code von juergen so überabeitet, dass er das tut was er soll. Also ist dies nicht mein Fehler, sondern juergens. |
Sorry, ich hatte die Frage von Juergen nicht mehr gelesen und nur den (leider beliebten) Fehler in Deiner Antwort bemerkt.
Unabhängig davon, wer es nun war: Es folgt doch gleich die Frage "liefert falsche Werte, was ist los", wenn ein Leser das kopiert und nicht versteht!
Im Übrigen ergibt die ganze Schleife so ja keinen Sinn und steht auch im Widerspruch zum Anfang der Fragestellung:
| juergen hat folgendes geschrieben: |
| ich möchte einige Checkboxen (30) auf ihre Eigenschaft CHECKED in einer FOR Schleife abfragen. |
Die fehlerhafte Behandlung der Komponentennamen führte dann zu einem offensichtlichen Problem und dem Posting.
Gruß
Dietmar Brüggendiek
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!