ďťż

Ł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
  •