Dobrý den,
při odlaďování programu v režimu krok po kroku (F8) vyskočí chyba:
Nevíte prosím někdo v čem je problém?
Děkuji
Dobrý den,
při odlaďování programu v režimu krok po kroku (F8) vyskočí chyba:
Nevíte prosím někdo v čem je problém?
Děkuji
#2 miHan
Zatím je to krátké, takže dávám celý kód:
UNIT uHlavni;
{$mode objfpc}{$H+}
INTERFACE
USES
Classes, SysUtils, FileUtil, SynEdit, SynHighlighterXML, Forms, Controls,
Graphics, Dialogs, StdCtrls;
TYPE
{ TForm1 }
TForm1 = CLASS(TForm)
btnNacti: TButton;
btnPreved: TButton;
btnUloz: TButton;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
SynEdit1: TSynEdit;
SynEdit2: TSynEdit;
SynXMLSyn1: TSynXMLSyn;
PROCEDURE btnNactiClick(Sender: TObject);
PROCEDURE btnPrevedClick(Sender: TObject);
PROCEDURE btnUlozClick(Sender: TObject);
PROCEDURE FormCreate(Sender: TObject);
PRIVATE
{ private declarations }
PUBLIC
{ public declarations }
END;
VAR
Form1: TForm1;
IMPLEMENTATION
{$R *.lfm}
{ TForm1 }
//----- Spuštění programu -----
PROCEDURE TForm1.FormCreate(Sender: TObject);
BEGIN
Synedit1.Text:= '';
Synedit2.Text:= '';
END;
//----- TLAČÍTKO: Načti -----
PROCEDURE TForm1.btnNactiClick(Sender: TObject);
BEGIN
IF OpenDialog1.Execute THEN
begin
Synedit1.Lines.LoadFromFile(OpenDialog1.FileName);
end;
END;
//----- TLAČÍTKO: Ulož -----
PROCEDURE TForm1.btnUlozClick(Sender: TObject);
BEGIN
IF SaveDialog1.Execute THEN
begin
Synedit2.Lines.SaveToFile(SaveDialog1.FileName);
end;
END;
//----- TLAČÍTKO: Převeď -----
PROCEDURE TForm1.btnPrevedClick(Sender: TObject);
var Nacti_Radek, Poznamka, Pomocne1: String;
Pocet_Radku, Znak, Znak1, Najdi_Konec, A: Integer;
BEGIN
Najdi_Konec:= 0;
FOR A:= 0 TO 150 DO //najde konec blokku
begin
Nacti_Radek:= Synedit1.Lines[A];
Znak:= POS('</Row>', Nacti_Radek);
IF (Znak > 0) AND (Najdi_Konec = 0) THEN
Najdi_Konec:= A +1;
end;
IF Najdi_Konec = 0 THEN
EXIT;
FOR A:= 0 TO Najdi_Konec -1 DO
begin
Nacti_Radek:= Synedit1.Lines[A];
Znak:= POS('52-', Nacti_Radek);
IF Znak > 0 THEN
Poznamka:= (COPY(Nacti_Radek,Znak,7)) + ': ';
Znak:= POS('html:Color=', Nacti_Radek);
IF Znak > 0 THEN
begin
Znak:= POS(' ', Nacti_Radek);
IF Znak > 0 THEN
DELETE(Nacti_Radek,Znak,5);
IF (POS('Ski', Nacti_Radek)=0) OR (POS('SKI', Nacti_Radek)=0) OR
(POS('Ku', Nacti_Radek)=0) OR (POS('KU', Nacti_Radek)=0) OR
(POS('ROZSAH:', Nacti_Radek)=0) THEN
begin
Znak:= POS('">', Nacti_Radek);
Znak1:= POS('</Font>', Nacti_Radek);
Pomocne1:= COPY(Nacti_Radek, Znak +1, Znak1 -1);
Znak:= POS('(', Pomocne1);
IF Znak > 1 THEN
begin
end;
end;
end;
end;
END;
END.
Odlazuji btnPrevedClick ale dělá to v kterémkoliv místě, když si dám stopku (F5 - řádek je červený) a spustím program, tak až k ní to dojede v pohodě, když však chci poté krokovat, vyskočí chybová hláška.
Zajímavé přitom je, že pokud si dám stopky na každý řádek a mačkám tlačítko spustit (F9), tak to projíždí normálně řádek po řádku a nic se neseká. Je to sice taky řešení, ale pěkně krokolomné...
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku