Hola, estoy rellenando un stringgrid con los datos de un array bidimensional de enteros y hasta tres cuartas partes lo hace bien. Luego me lo rellena con unos valores raros. He comprobado los valores originales en el array y son correctos. Es en la conversión. Debo estar haciendo algo mal pero no lo encuentro, ¿podéis echarme una mano? El código de la unidad es el siguiente:
unit Unit2;
{$mode ObjFPC}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, Grids, StdCtrls;
type
ciclos = array [1..20 , 1..25] of integer;
{ TForm2 }
TForm2 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Label1: TLabel;
StringGrid1: TStringGrid;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure aleatorio(var ciclo: ciclos);
procedure presenta(var ciclo: ciclos);
procedure StringGrid1Click(Sender: TObject);
end;
var
Form2: TForm2;
ciclo: ciclos;
Grid: TStringGrid;
implementation
{$R *.lfm}
{ TForm2 }
procedure TForm2.Button1Click(Sender: TObject);
begin
Label1.Caption:='General';
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
Label1.Caption:='Cambio clave';
end;
procedure TForm2.Button3Click(Sender: TObject);
begin
Label1.Caption:='Emergencia 1';
end;
procedure TForm2.Button4Click(Sender: TObject);
begin
Label1.Caption:='Emergencia 2';
end;
procedure TForm2.Button5Click(Sender: TObject);
begin
Label1.Caption:='Emergencia 3';
end;
procedure TForm2.Button6Click(Sender: TObject);
begin
Label1.Caption:='Generacion aleatoria';
aleatorio(ciclo);
presenta(ciclo);
end;
procedure TForm2.Button7Click(Sender: TObject);
begin
Label1.Caption:='Edicion';
end;
procedure TForm2.Button8Click(Sender: TObject);
begin
Label1.Caption:='Graba';
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
end;
procedure Tform2.aleatorio(var ciclo: ciclos );
var
i, j, z: integer;
begin
Randomize;
for i:=1 to 20 do
begin
for j:= 1 to 25 do
begin
ciclo[i,j]:= random(520);
end
end;
end;
procedure Tform2.presenta(var ciclo:ciclos);
var
i, j: integer;
z: longint;
begin
with Grid do
begin
for i:=1 to 25 do
begin
for j:=1 to 20 do
begin
z:= ciclo[i,j];
StringGrid1.Cells[j, i] :=Inttostr(z);
end;
end;
end;
end;
end.
Gracias de antemano.