При присваивании ячейке таблицы значения программа вылетает с ошибкой Access Violation. Присваивание происходит из "дочерней" формы, сама таблица находится в главной. Это код "дочерней" формы.
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,grids;
type
TForm3 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Label3: TLabel;
Edit2: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses unit2;
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);
var sch1:integer;
begin
masuin[koluin]:=edit1.text+';'+edit2.text;
buf1:=masuin[koluin];
for sch1:=1 to length(buf1) do
begin
if buf1[sch1]=';' then begin
delete(buf1,sch1,1);
pass1:=buf1;
break;
end
else begin
uin1:=uin1+buf1[sch1];
delete(buf1,sch1,1);
end;
end;
form2.stringgrid1.Cells[koluin,0]:=uin1;
form2.stringgrid1.Cells[koluin,1]:=pass1;
koluin:=koluin+1;
form3.Hide;
end;
end.
// Вот в этом месте чему равен koluin ?Есть столько столбцов в Гриде? (первый параметр при обращении к Cells - номер столбца, а второй - номер строки)
form2.stringgrid1.Cells[koluin,0]:=uin1;
form2.stringgrid1.Cells[koluin,1]:=pass1;
Забыл сказать,koluin равен 0, я пробовал заменять его на 0 в присваивании - тоже самое. Причём если присвоить в главной форме с теми же параметрами-всё нормально.
Ну, не знаю, что там у тебя за проблема... Попробовал из другой формы заполнять ячейки Грида. Все работает, ошибок не выбрасывает... Можешь снять скриншот с экрана в момент ошибки?
может нужен перевод StrToInt или IntToStr
Вот скриншот.
2dron4ik, в StringGrid могут располагаться произвольные текстовые строки.
Странно...создал новый проект, в нём сделал всё то же самое...работает... Решено.