Allereerst moet ik even kwijt dat ik echt een ongelofelijke new-bie ben met Delphi (heb er nu twee dagen mee gewerkt...)
In ieder geval heb ik het volgende probleem:
Ik maak gedurende runtime een X aantal SpinEdit's aan. Deze houd ik bij in een componentlist (clZones).
Op een gegeven moemnt wil ik alle waarden optellen die staan in de aangemaakte SpinEdit's. Daarom roep ik de componentlist aan en typecast ik hem naar SpinEdit, zodat ik de waarde value eruit kan halen, die ik nodig heb om alles op te tellen.
Dat doe ik alsvolgt:
Deze procedure wordt aangeroepen bij het onchange event van de SpinEdit. Het werkt in principe goed als je de +1 en -1 knopjes gebruikt van de SpinEdit. Maar zodra je handmatig (dus met je numpad) een waarde invoert in de Spinedit, dan crasht het programma.
Volgens mij omdat ie op dat moment eerst de box even leeg maakt om er vervolgens een getal in te zetten. Bij het leegmaken wordt de procedure TelAantalLocaties aangeroepen en is die box leeg, dus werkt mijn typecasting niet, en crasht de boel.
Is dit inderdaad wat er fout gaat, en zoja, wat kan ik daar aan doen? Zonee, wat gaat er dan fou en wat is dan de oplossing?
In ieder geval heb ik het volgende probleem:
Ik maak gedurende runtime een X aantal SpinEdit's aan. Deze houd ik bij in een componentlist (clZones).
Op een gegeven moemnt wil ik alle waarden optellen die staan in de aangemaakte SpinEdit's. Daarom roep ik de componentlist aan en typecast ik hem naar SpinEdit, zodat ik de waarde value eruit kan halen, die ik nodig heb om alles op te tellen.
Dat doe ik alsvolgt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| {Telt het aantal locaties dat er in de zones is}
procedure TfrMain.TelAantalLocaties(Sender: TObject);
var i,j,k : integer;
begin
j:=0;
for i := clZones.Count-1 downto 0 do
begin
k:=TSpinEdit(Clzones[i]).value;
j:=j+k;
end;
edtAantalLocaties.Text:=IntToStr(j);
end; |
Deze procedure wordt aangeroepen bij het onchange event van de SpinEdit. Het werkt in principe goed als je de +1 en -1 knopjes gebruikt van de SpinEdit. Maar zodra je handmatig (dus met je numpad) een waarde invoert in de Spinedit, dan crasht het programma.
Volgens mij omdat ie op dat moment eerst de box even leeg maakt om er vervolgens een getal in te zetten. Bij het leegmaken wordt de procedure TelAantalLocaties aangeroepen en is die box leeg, dus werkt mijn typecasting niet, en crasht de boel.
Is dit inderdaad wat er fout gaat, en zoja, wat kan ik daar aan doen? Zonee, wat gaat er dan fou en wat is dan de oplossing?