Witam!
Mam formę ze String Gridem (SG):
unit UnitL;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DateUtils, Grids;
type
Takcja = (wcisniecie, puszczenie);
Tlogi = packed record
czas_ms : Double;
wiadomosc : Takcja;
ktory_klawisz : byte;
pozycja_myszy : TPoint;
end;
TForm1 = class(TForm)
{...}
SG: TStringGrid;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
WczytywaneLogi : array [1..1000] of TLogi;
PlikLogi : File of TLogi;
NazwaPliku : ShortString;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
i : Int64;
ilosc : Int64;
begin
If not FileExists(Form1.Edit1.Text) then begin ShowMessage('Plik o podanej sciezce dostepu nie istnieje!'); Exit; end;
NazwaPliku := Form1.Edit1.Text;
AssignFile(PlikLogi, NazwaPliku);
try
Reset(PlikLogi);
i := 0;
While not Eof(PlikLogi) do // petli for sizeof -1 kompilator nie chciał zaakceptować
begin
Read(PlikLogi, WczytywaneLogi[i]);
Ilosc := i;
Inc(Ilosc, 1);
Form1.SG.Cells[0, 0] := 'a'; // wykrzacza się tutaj i w każdym innym odwołaniu do tego elementu
If Form1.SG.RowCount <= Ilosc then Form1.SG.RowCount := Ilosc+1; // tu również się wykrzacza...
{itd...}
end;
finally
CloseFile(PlikLogi);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
SG.FixedRows := 1;
SG.FixedCols := 1;
SG.ColCount := 6;
SG.RowCount :=2;
SG.Cells[0,0] := 'Lp.'; SG.Cells[1,0] := 'Czas'; SG.Cells[2,0] := 'Mysz X'; SG.Cells[3,0] := 'Mysz Y'; SG.Cells[4,0] := 'Akcja'; SG.Cells[5,0] := 'Klawisz';
end;
end.
Jak mam się odwołać do tego elementu z procedury, żeby nie było AV? W FormCreate wszystko śmiga i się realizuje, ale kliknięcie buttona powoduje AV :(
Znalazłem w googlach temat w którym najprawdopodobniej jest o tym samym - http://forum.ru-board.com/topic.cgi?forum=33&topic=7445 ale nie znam rosyjskiego :(
EDIT. Też coś o tym, ale dalej nie działa u mnie http://www.elektroda.pl/rtvforum/topic90865.html
Z góry dziękuję za pomoc