Ĺadny brzuch
Witam. Mam taki kod
procedure TForm1.wczytajClick(Sender: TObject); var i:Integer; znaki:string; begin if wczytany_plik.Lines.Count=0 then begin nowe_memo:=TMemo.Create(self); nowe_memo.Parent:=self; nowe_memo.Visible:=false; nowe_memo.Width:=0; nowe_memo.Height:=0; nowe_memo.ScrollBars:=ssBoth; nowe_memo.Lines.Clear; if open.Execute then begin nowe_memo.Lines.Clear; nowe_memo.Lines.LoadFromFile(open.FileName); ilosc:=nowe_memo.Lines.Count; for i:=0 to ilosc do begin znaki:=''; znaki:=nowe_memo.Lines.Strings[i]; nowe_znaki:=pchar(znaki); ExtractStrings([' '], [], nowe_znaki, wczytany_plik.Lines); end; end; status.Panels[0].Text:='Plik: ' + open.FileName; nowe_memo.Free; end else ShowMessage('Wyczysc okna'); end;
Służy on najogólniej do otwarcia pliku tekstowego i wypisania każdego słowa w osobnej linijce w Memo. Niby wszystko działa, ale jak próbuje wczytac drugi raz plik (niekoniecznie ten sam) to program wywala mi błąd (przy uruchomieniu z pozimou delphi) a pod windowsem program sam sie zamyka. Ktos wie co tu jest zle???
jaki blad! :>
otwiera sie okienko Debugger fault notificationz trescia:
Project projekt.exe faulted with message: 'access violation at 0x7ca4e035: read of adress 0x00e92038'. Process Stoped. Use Step or Run to continue.
ilosc:=nowe_memo.Lines.Count;
for i:=0 to ilosc do
Powinno być
ilosc:=nowe_memo.Lines.Count;
for i:=0 to ilosc - 1 do
nic to nie zmieniło. wszystko dakej wygląda tak samo :(
nic to nie zmieniło. wszystko dakej wygląda tak samo :(
wczytany_plik to kompenent memo na formularzu i raczej nie jest nigdzie zwalniany. a tymi klawiszami to nie bradzo wiem jak sie poslugiwac
a tymi klawiszami to nie bradzo wiem jak sie poslugiwac
Normalnie - F4 uruchamia program do miejsca, w którym jest kursor i staje, F7, F8 - wykonują sie kolejne linijki (F8 nie wchodzi głębiej w procedury i funkcje F7 wchodzi). Czyli postaw sobie kursor na linijce
if wczytany_plik.Lines.Count=0 then i daj F4 - program sie uruchomi i stanie na tej linijce. Skoro twierdzisz, że za pierwszym razem jest OK to nie zmieniając położenia kursora daj ponownie F4 - program znów stanie na tej linijce. I dalej lecisz klawiszami F7/F8 linijka po linijce aż do wystąpienia błędu - i juz będziesz znał ta linijkę ;)
no i w tym miejscu program sie wywala:
if open.Execute then
Nie zwalniasz gdzies tego dialogu ?? Jakieś Open.Free nie pojawia się nigdzie ?? Spróbuj zmienić nazwę komponentu na np dlgOpen, spróbuj usunąć komponent i dodać jeszcze raz ...
niesety nic z tego :((
Spakuj cały projekt i wystaw gdzies na sieci (np na rapidshare.de)
Ok wrzucone. Tutaj jest link:
Palindromy
Ok wrzucone. Tutaj jest link:
Palindromy
U mnie również nie wywala błędu...
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
procedure TForm1.wczytajClick(Sender: TObject); var i:Integer; znaki:string; begin if wczytany_plik.Lines.Count=0 then begin nowe_memo:=TMemo.Create(self); nowe_memo.Parent:=self; nowe_memo.Visible:=false; nowe_memo.Width:=0; nowe_memo.Height:=0; nowe_memo.ScrollBars:=ssBoth; nowe_memo.Lines.Clear; if open.Execute then begin nowe_memo.Lines.Clear; nowe_memo.Lines.LoadFromFile(open.FileName); ilosc:=nowe_memo.Lines.Count; for i:=0 to ilosc do begin znaki:=''; znaki:=nowe_memo.Lines.Strings[i]; nowe_znaki:=pchar(znaki); ExtractStrings([' '], [], nowe_znaki, wczytany_plik.Lines); end; end; status.Panels[0].Text:='Plik: ' + open.FileName; nowe_memo.Free; end else ShowMessage('Wyczysc okna'); end;
Służy on najogólniej do otwarcia pliku tekstowego i wypisania każdego słowa w osobnej linijce w Memo. Niby wszystko działa, ale jak próbuje wczytac drugi raz plik (niekoniecznie ten sam) to program wywala mi błąd (przy uruchomieniu z pozimou delphi) a pod windowsem program sam sie zamyka. Ktos wie co tu jest zle???
jaki blad! :>
otwiera sie okienko Debugger fault notificationz trescia:
Project projekt.exe faulted with message: 'access violation at 0x7ca4e035: read of adress 0x00e92038'. Process Stoped. Use Step or Run to continue.
ilosc:=nowe_memo.Lines.Count;
for i:=0 to ilosc do
Powinno być
ilosc:=nowe_memo.Lines.Count;
for i:=0 to ilosc - 1 do
nic to nie zmieniło. wszystko dakej wygląda tak samo :(
nic to nie zmieniło. wszystko dakej wygląda tak samo :(

wczytany_plik to kompenent memo na formularzu i raczej nie jest nigdzie zwalniany. a tymi klawiszami to nie bradzo wiem jak sie poslugiwac
a tymi klawiszami to nie bradzo wiem jak sie poslugiwac
Normalnie - F4 uruchamia program do miejsca, w którym jest kursor i staje, F7, F8 - wykonują sie kolejne linijki (F8 nie wchodzi głębiej w procedury i funkcje F7 wchodzi). Czyli postaw sobie kursor na linijce
if wczytany_plik.Lines.Count=0 then i daj F4 - program sie uruchomi i stanie na tej linijce. Skoro twierdzisz, że za pierwszym razem jest OK to nie zmieniając położenia kursora daj ponownie F4 - program znów stanie na tej linijce. I dalej lecisz klawiszami F7/F8 linijka po linijce aż do wystąpienia błędu - i juz będziesz znał ta linijkę ;)
no i w tym miejscu program sie wywala:
if open.Execute then
Nie zwalniasz gdzies tego dialogu ?? Jakieś Open.Free nie pojawia się nigdzie ?? Spróbuj zmienić nazwę komponentu na np dlgOpen, spróbuj usunąć komponent i dodać jeszcze raz ...
niesety nic z tego :((
Spakuj cały projekt i wystaw gdzies na sieci (np na rapidshare.de)
Ok wrzucone. Tutaj jest link:
Palindromy
Ok wrzucone. Tutaj jest link:
Palindromy

U mnie również nie wywala błędu...