Ohjelma kääntyy ilman virheilmoituksia, mutta ajettaessa kaatuu.
Lazarus heittää dialogin, jossa lukee:
Program Ohjelma raised expection class 'External:SIGSEGV'.
Ohjelman alkupuolella koodia.
... var Form1: TForm1; kuvat:array [1..10] of TImage; implementation ...
... kuvat[1]:=Image1; kuvat[2]:=Image2; kuvat[3]:=Image3; ...
Seuraavaan koodiin ohjelma kaatuu
for silmukan toimintariville:
... var count,r:integer; arvo:string; begin arvo:=DBEdit2.Text; count:=StrToInt(arvo); for r:= 1 to count do kuvat[r].Visible:= true; end;
Eikö noita Imageita voi käsitellä taulukossa?
t.kaitsu
Kyllä tuon pitäisi toimia, kunhan kuvat sijoitetaan taulukkoon jossain järkevässä vaiheessa eli ikkunan luonnin yhteydessä tai sen jälkeen. Oletko tarkistanut, mitä muuttujissa count ja r on, kun virhe tapahtuu? Kannattaa opetella käyttämään myös debuggeria, sillä näkisi ongelman suoraan.
Imaget laitetaan taulukkoon FormCreate prosessa.
count, r on oikeassa arvossa.
Mutta semmoinen kohta kuin Self lukee <error reading variable>
Sender kohta on oikein.
Nyt toimii. Kuvat pitää laittaa taulukkoon ENNEN tietokannan avaamista,
vaikka molemmat tehdään samassa proseduurissa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.