Ĺadny brzuch
Jaki jest bład w kodzie:
procedure TglownaForm.WczytajTesty; begin ini:=tinifile.Create(extractfilepath(application.exename)+'testy.ini') ; try liczbatestow:=Ini.ReadInteger('ogolne','liczbatestow',liczbatestow) ; finally end; if liczbatestow <= 0 then begin ShowMessage('W programie nie ma żadnego testu. Program zostanie zamknięty!'); glownaform.Hide; end else begin for i:=1 to liczbatestow do begin s:='test'+inttostr(i); try begin testy[i]:=Ini.ReadString(s,'nazwa',testy[i]); end; finally Ini.Free; end; testylistbox.items.Add(testy[i]); end; end; end;
bo wyskakuje bład:
Access violation at adresse 0045985E in module 'test.exe'. Read of adresse 00000004
Mozliwości:
1. tablica testy - i > rozmiaru tej tablicy
2. Bardziej prawdopodobne - ini za wcześnie zwalniane - bo już po pierwszym przebiegu pętli ...
Mozliwości:
1. tablica testy - i > rozmiaru tej tablicy
2. Bardziej prawdopodobne - ini za wcześnie zwalniane - bo już po pierwszym przebiegu pętli ...
Przecież nic nie zmieniłeś tak naprawdę ... Dalej Ini jest zwalniane po pierwszym przebiegu pętli ... Ini zwolnij poza pętlą for ... czyli
for i := 1 to costam do begin try // czytaj z ini i cośtam jeszcze rób except ShowMessage('Jakieś błędy o odczycie ini albo przy "cośtam jeszcze"'); Break; end; end; Ini.Free;
Przecież nic nie zmieniłeś tak naprawdę ... Dalej Ini jest zwalniane po pierwszym przebiegu pętli ... Ini zwolnij poza pętlą for ... czyli
for i := 1 to costam do begin try // czytaj z ini i cośtam jeszcze rób except ShowMessage('Jakieś błędy o odczycie ini albo przy "cośtam jeszcze"'); Break; end; end; Ini.Free;
Jak masz zadeklarowaną zmienną testy ??
Jak masz zadeklarowaną zmienną testy ??
testy:array of string;
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
procedure TglownaForm.WczytajTesty; begin ini:=tinifile.Create(extractfilepath(application.exename)+'testy.ini') ; try liczbatestow:=Ini.ReadInteger('ogolne','liczbatestow',liczbatestow) ; finally end; if liczbatestow <= 0 then begin ShowMessage('W programie nie ma żadnego testu. Program zostanie zamknięty!'); glownaform.Hide; end else begin for i:=1 to liczbatestow do begin s:='test'+inttostr(i); try begin testy[i]:=Ini.ReadString(s,'nazwa',testy[i]); end; finally Ini.Free; end; testylistbox.items.Add(testy[i]); end; end; end;
bo wyskakuje bład:
Access violation at adresse 0045985E in module 'test.exe'. Read of adresse 00000004
Mozliwości:
1. tablica testy - i > rozmiaru tej tablicy
2. Bardziej prawdopodobne - ini za wcześnie zwalniane - bo już po pierwszym przebiegu pętli ...
Mozliwości:
1. tablica testy - i > rozmiaru tej tablicy
2. Bardziej prawdopodobne - ini za wcześnie zwalniane - bo już po pierwszym przebiegu pętli ...

Przecież nic nie zmieniłeś tak naprawdę ... Dalej Ini jest zwalniane po pierwszym przebiegu pętli ... Ini zwolnij poza pętlą for ... czyli
for i := 1 to costam do begin try // czytaj z ini i cośtam jeszcze rób except ShowMessage('Jakieś błędy o odczycie ini albo przy "cośtam jeszcze"'); Break; end; end; Ini.Free;
Przecież nic nie zmieniłeś tak naprawdę ... Dalej Ini jest zwalniane po pierwszym przebiegu pętli ... Ini zwolnij poza pętlą for ... czyli
for i := 1 to costam do begin try // czytaj z ini i cośtam jeszcze rób except ShowMessage('Jakieś błędy o odczycie ini albo przy "cośtam jeszcze"'); Break; end; end; Ini.Free;

Jak masz zadeklarowaną zmienną testy ??
Jak masz zadeklarowaną zmienną testy ??

testy:array of string;
