![]() |
Nue eine CheckBox wird gefunden !
Hallo,
habe seit Tagen ein Problem mit den CheckBoxen, und komme nicht mehr weiter. Wahrscheinlich ein kleines Problem, aber ich hab mir Delphi selbs angeeignet, und habe somit wenig Erfahrung und Ahnung von Delphi. Zum Problem : hab 10 CheckBoxen Dynamisch erzeugt, und kann nur eine davon abfragen, wieso ? // 10 CheckBoxen erzeugen (0-9) h := 64; // Höhe i:=0; While i <=9 Do Begin newCheckBox := TCheckBox.Create(newCheckBox); newCheckBox.parent := newtab; newCheckBox.name := 'NewCheckBox'+inttostr(k)+inttostr(i); newCheckBox.caption := 'Neue CheckBox'+inttostr(k)+inttostr(i); newCheckBox.width := 120; newCheckBox.left := 80; newCheckBox.top := h; newCheckBox.visible := true; h := h +24; i:=i+1; end; // Die 10 CheckBoxen abfragen i:=0; While i<=9 Do begin Test := 'NewCheckBox7' + IntToStr(i); If TCheckBox(FindComponent(Test)).Checked = true then ShowMessage('Ergebnis : True') ELSE ShowMessage('Ergebnis : False') ; i:=i+1; end; Erster Durchlauf (i=0) wird NewCheckBox70 eindeutig gefunden, aber bei der nächsten (i=1) NewCheckBox71 bricht das Prg. zusammen, wieso ? Gruß Mike, ich hoffe Ihr könnt mir da weiter helfen......... |
AW: Nue eine CheckBox wird gefunden !
Das Interessanteste hast Du weggelassen: Wie fragst Du ab?
Delphi-Quellcode:
ist auch etwas ungünstig. Nimm besser die Form oder newTab als Owner oder Nil.
newCheckBox := TCheckBox.Create(newCheckBox);
|
AW: Nue eine CheckBox wird gefunden !
Hallo,
danke für die schnelle Antwort, aber alles was ich Versuche geht nicht, habs mit newTab und Nil versucht. Ich versuche die ganze Zeit 10 CheckBoxen auf ein TabSheet zu erzeugen. Das Neue TabSheet hab ich so erzeugt:
Delphi-Quellcode:
//
k := PageControl1.PageCount + 1; newtab := TTabSheet.Create(PageControl1); newtab.PageControl := PageControl1; newtab.name := 'tab'+inttostr(k); newtab.Caption := 'Tab '+inttostr(k); // Danach 2x Label mit Text // newlabel := TLabel.Create(newlabel); newlabel.name := 'tablabel1'+inttostr(k); newlabel.caption := 'Bitte Aktivieren Sie die Felder die im Listfenster angezeigt werden sollen.'; newlabel.Left := 48; newlabel.Top := 384; newlabel.visible := true; newlabel.parent := newtab; // Danach diese CheckBoxen // h := 64; i:=0; While i <=9 Do Begin newCheckBox := TCheckBox.Create(newCheckBox); newCheckBox.parent := newtab; newCheckBox.name := 'NewCheckBox'+inttostr(k)+inttostr(i); newCheckBox.caption := 'Neue CheckBox'+inttostr(k)+inttostr(i); newCheckBox.width := 120; newCheckBox.left := 80; newCheckBox.top := h; newCheckBox.visible := true; h := h +24; i:=i+1; end; // jetzt die Abfrage dazu i:=0; While i<=9 Do begin Test := 'NewCheckBox7' + IntToStr(i); If TCheckBox(FindComponent(Test)).Checked = true then ShowMessage('Ergebnis : True') ELSE ShowMessage('Ergebnis : False') ; i:=i+1; end; Müsste doch eigentlich Funktionieren. Geht ja auch, aber nur die erste CheckBox, bei den nächsten gibts einen abbruch. |
AW: Nue eine CheckBox wird gefunden !
Es wäre sehr freundlich, wenn du deinen Delphi-Quellcode mit den Delphi-Tags umschließen würdest, dann sieht der Quelltext gleich lesbarer aus.
Aus
Code:
wird
[DELPHI]
procedure foo; begin DoBar(); end; [/DELPHI]
Delphi-Quellcode:
procedure foo;
begin DoBar(); end; |
AW: Nue eine CheckBox wird gefunden !
Du hast die Checkboxen doch selber erzeugt? Warum willst Du die dann suchen?
|
AW: Nue eine CheckBox wird gefunden !
Zum eigentlichen Thema:
Die Dokumentation zu ![]()
Delphi-Quellcode:
sagt
TComponent.FindComponent
Zitat:
Häng deine Komponenten an einen
Delphi-Quellcode:
und dann frage diesen
Owner
Delphi-Quellcode:
nach den gesuchten Komponenten ab.
Owner
Alternativ kannst du aber auch rekursiv durch alle beteiligten Komponenten durchsuchen, was aber auch nur dann funktioniert, wenn die gesuchten Komponenten einen
Delphi-Quellcode:
haben.
Owner
Weitere ALternative ist das suchen über die
Delphi-Quellcode:
-Beziehung abfragen mit
Parent
![]()
Delphi-Quellcode:
TWinControl.FindChildControl
|
AW: Nue eine CheckBox wird gefunden !
Zitat:
|
AW: Nue eine CheckBox wird gefunden !
Hallo,
probier doch ma Kommentare aus ...
Delphi-Quellcode:
newCheckBox := TCheckBox.Create(newCheckBox); ist auch etwas ungünstig. Nimm besser die Form oder newTab als Owner oder Nil.
Markus Kinzler
Delphi-Quellcode:
newCheckBox := TCheckBox.Create(Self);
Und fertig. Heiko |
AW: Nue eine CheckBox wird gefunden !
Danach diese Checkboxen
Delphi-Quellcode:
jetzt die Abfrage dazu
var ListederCheckBoxen = TList<TCheckBox>;
begin // ListederCheckBoxen = TList<TCheckBox>.Create; h := 64; i:=0; While i <=9 Do Begin newCheckBox := TCheckBox.Create(newCheckBox); ListederCheckBoxen.Add(NewCheckBox); newCheckBox.parent := newtab; newCheckBox.name := 'NewCheckBox'+inttostr(k)+inttostr(i); newCheckBox.caption := 'Neue CheckBox'+inttostr(k)+inttostr(i); newCheckBox.width := 120; newCheckBox.left := 80; newCheckBox.top := h; newCheckBox.visible := true; h := h +24; i:=i+1; end; // end;
Delphi-Quellcode:
Fertig.
i:=0;
While i<=9 Do begin If ListederCheckBoxen.Items[I].Checked = true then ShowMessage('Ergebnis : True') ELSE ShowMessage('Ergebnis : False') ; i:=i+1; end; ListederCheckBoxen.Free; // |
AW: Nue eine CheckBox wird gefunden !
Aber das auch gleich beheben:
Delphi-Quellcode:
newCheckBox := TCheckBox.Create(self);
Delphi-Quellcode:
If ListederCheckBoxen.Items[I].Checked then
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz