Имеется обыкновенная StringGrid таблица (имя SG). Нужно просто автоматически хоть чем- то её заполнить. Туплю, не могу понять, почему не работает.
Мой код примерно такой:
procedure TForm1.FormCreate(Sender: TObject);
var i,j: integer;
begin
with SG do
for i:=0 to colcount-1 do
for j:=0 to rowcount-1 do
cells[i,j]:= IntToStr(i+j); {ну даже просто вот такой суммой}
end;
Код компилируется без ошибок, таблица пустая. Причём, если в этой процедуре явно задать что- то вроде
sg.cells[1,1]:= '123123';
, то всё равно ячейка не заполняется :(
Получилось вручную заполнить какую- то [i,j] ячейку только при использовании обработчика нажатия кнопки на форме, но мне нужно, чтобы таблица заполнялась сама автоматически!
Подскажите, где я ошибся и как вообще реализовать автозаполнение таблицы StringGrid?
Другие языки программирования и технологии
Вопрос по StringGrid Delphi
А чему у тебя равны RowCount и ColCount.
К примеру, я вот так заполняю StringGrid с именем random12x3, для которого заранее в Properties определены значения ColCount = 3 и RowCount = 12 :
procedure TMyForm.Generate12x3;
var
Z, N, Row, Col : Byte;
S : array [0..36] of Byte;
begin
S[0] := 36;
for N := 1 to 36 do
S[N] := N;
Randomize;
for Row := 0 to 11 do
for Col := 0 to 2 do
begin
Z := 1 + Random(S[0]);
random12x3.Cells[Col, Row] := IntToStr(S[Z]);
Dec(S[0]);
for N := Z to S[0] do
S[N] := S[N+1];
end;
end; // Generate12x3 - Генерируем случайное заполнение 12х3
При этом, разницы нет когда я вызову данную процедуру: то-ли в onCreate, то-ли в OnClick какой-нибудь кнопки!
К примеру, я вот так заполняю StringGrid с именем random12x3, для которого заранее в Properties определены значения ColCount = 3 и RowCount = 12 :
procedure TMyForm.Generate12x3;
var
Z, N, Row, Col : Byte;
S : array [0..36] of Byte;
begin
S[0] := 36;
for N := 1 to 36 do
S[N] := N;
Randomize;
for Row := 0 to 11 do
for Col := 0 to 2 do
begin
Z := 1 + Random(S[0]);
random12x3.Cells[Col, Row] := IntToStr(S[Z]);
Dec(S[0]);
for N := Z to S[0] do
S[N] := S[N+1];
end;
end; // Generate12x3 - Генерируем случайное заполнение 12х3
При этом, разницы нет когда я вызову данную процедуру: то-ли в onCreate, то-ли в OnClick какой-нибудь кнопки!
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var i,j: integer;
begin
with StringGrid1 do
for i:=0 to rowcount-1 do
for j:=0 to colcount-1 do
cells[i,j]:= IntToStr(i+j); {ну даже просто вот такой суммой}
end;
end.
Все работает
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var i,j: integer;
begin
with StringGrid1 do
for i:=0 to rowcount-1 do
for j:=0 to colcount-1 do
cells[i,j]:= IntToStr(i+j); {ну даже просто вот такой суммой}
end;
end.
Все работает
попробуй засунуть код не в FormCreate а в FormShow

Похожие вопросы
- Components в Delphi. при защите лабораторной возник вопрос... конкретно для Delphi. Что есть массив Components?
- Вопрос про Borland Delphi и Lazarus
- У меня вопрос к программистам DELPHI.
- вопрос для программистов (delphi)
- Сохранение из StringGrid в файл и загрузка из файла - Delphi
- Согласны с этим - Глубинные причины ненависти к Delphi/Pascal ?
- Несколько вопросов по Delphi
- Delphi:Прочитал, что если при динамическом создании компонента если указать Name объекта, то в последующем можно ->
- Один вопрос по Pascal (или Object Pascal, или Delphi) (не надо ничего решать, просто один вопрос)
- вопрос по delphi