![]() |
Re: Checkboxen mit gleichem Boolean-Wert zählen
nich richtig
ich hab c3 nicht in der Prozedur deklariert. Auf 0 gesetzt hab ichs aber. |
Re: Checkboxen mit gleichem Boolean-Wert zählen
Was ist nicht richtig?
|
Re: Checkboxen mit gleichem Boolean-Wert zählen
Noch nicht richtig was von debuggen gehört.
Is irgendwie noobig, kann ich mir gut vorstellen. |
Re: Checkboxen mit gleichem Boolean-Wert zählen
Hast Du denn wirklich alle Checkboxen richtig benannt?
Du kannst Deinen Code vielleicht auch so ändern, dass Du zunächst mal prüfst, ob die Checkbox des gesuchten Namens überhaupt vorhanden ist:
Delphi-Quellcode:
while c3 < 29 do begin
Inc(c3); if FindComponent('CheckBox' + IntToStr(c3))<>nil then begin if TCheckbox(FindComponent('CheckBox' + IntToStr(c3))).Checked = true then begin if durckm.ItemIndex = 1 then a.Add(TCheckbox(FindComponent('CheckBox' + IntToStr(c3))).Caption + ' hat abgeben!') else Memo1.Lines.Add(TCheckbox(FindComponent('CheckBox' + IntToStr(c3))).Caption + ' hat abgegeben!'); end else begin if durckm.ItemIndex = 1 then na.Add(TCheckbox(FindComponent('CheckBox' + IntToStr(c3))).Caption + ' hat nicht abgegeben!'); Memo1.Lines.Add(TCheckbox(FindComponent('CheckBox' + IntToStr(c3))).Caption + ' hat abgegeben!'); end; end else ShowMessage('CheckBox' + IntToStr(c3)+' existiert nicht!'); end; |
Re: Checkboxen mit gleichem Boolean-Wert zählen
Hallo, das ist ja grausamer Code hier.
Es muss doch auffallen wenn man 6 Mal das Gleiche hinschreibt. Lokale Variablen sind die Lösung.
Delphi-Quellcode:
var
comp : TComponent; cb : TCheckbox; .... comp := FindComponent('CheckBox' + IntToStr(c3)); if Assigned(comp) then begin cb := comp as TCheckbox; // und jetzt wird nur noch mit cb gearbeitet!! |
Re: Checkboxen mit gleichem Boolean-Wert zählen
Der Quellcode da liefert aber auch nicht das wahre: Delphi meint, dass
Delphi-Quellcode:
gefälligst mit einer Klammer statt ':=' (Zuweisungsoperator) geschrieben werden soll.
comp := FindComponent('CheckBox' + IntToStr(c3));
Delphi-Quellcode:
liefert auch einen Fehler (nein, nein, es liegt nicht am fehlenden Semikolon).
Assigned(comp)
Bei 'as' gibts auch ein Fehler. Also ich habs insgesamt so angewendet (Vorher natürlich auch lokal die Variablen deklariert):
Delphi-Quellcode:
while c3 < 29 do begin
comp := FindComponent('CheckBox' + IntToStr(c3)); if Assigned(comp) then begin cb := comp as TCheckbox; if cb.CHecked = true then a.Add(cb.Caption + ' hat abgegeben!') else na.Add(cb.Caption + ' hat nicht abgegeben!'); end; end; |
Re: Checkboxen mit gleichem Boolean-Wert zählen
Zitat:
Dass zwischen Variablendeklaration und den Anweisungen nur 4 Punkte stehen, sollte eigentlich zum Mitdenken anregen... |
Re: Checkboxen mit gleichem Boolean-Wert zählen
Ich meine nicht, dass er nicht das gewünschte Ergebnis liefert sondern das diese Fehler auftreten
|
Re: Checkboxen mit gleichem Boolean-Wert zählen
Wow, schwere Geburt. :roll:
Was shmia meint, sieht im Endeffekt dann so aus:
Delphi-Quellcode:
Und wenn Du das so machst, bekommst Du immer noch eine Zugriffsverletzung?
procedure TForm1.wasweissich;
var comp : TComponent; cb : TCheckbox; c3 : integer; begin c3:=0; while c3 < 29 do begin comp := FindComponent('CheckBox' + IntToStr(c3)); if Assigned(comp) then begin if cb.CHecked = true then a.Add(cb.Caption + ' hat abgegeben!') else na.Add(cb.Caption + ' hat nicht abgegeben!'); end; end; end; |
Re: Checkboxen mit gleichem Boolean-Wert zählen
So dumm bin ich dann doch wieder nicht.
Ja, es gibt immer noch Fehler. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:02 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