PDA

Ver la Versión Completa : Array de paneles (TPanel)


VRO
25-04-2005, 11:07:02
HOla vereis, hoy lunes estoy un tanto empanada y no encuentro el error:

Estoy creando un array de paneles(TPanel) en el formulario principal , en la funcion ONCreate de dicho Form,

Os posteo el codigo de todo el formulario:



unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
p:array [1..37,1..15] of TPanel;
procedure FormCreate(Sender: TObject);
end;

var
Form1: TForm1;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var i,j:integer;
begin
for i:=1 to 37 do
for j:=1 to 15 do
begin
p[i,j]:=tPanel.Create(Self);
p[i,j].Left:=0;
p[i,j].Top:=16;
p[i,j].Width:=50;
p[i,j].Height:=25;
end;
end;
end.



pero no hace nada , nada más ejecutar me da el siguiente error:

Class EReadError with message 'Error reading Form1.OnCrete.Invalid property value'. Process
He hecho la misma prueba con TButtons, ya que venían en un hilo de este foro, pero nada el mismo error.

¿Porque da ese error?¿Dñonde estoy metiendo la gamba?

Gracias por todo.

kalimero
25-04-2005, 11:15:03
Hola.

Bueno, me da la impresión, de que el evento OnCreate del Form puede que no sea el mejor lugar para crear los paneles. Ten en cuenta que todavia no tienes seguridad en que el form se ha creado. Prueba a poner el mismo codigo en otro evento como por ejemplo , OnShow.

Saludos

VRO
25-04-2005, 11:29:32
Muchas gracias, te iva a decir que en OnShow me daba el mismo error,

pero ya le encontré, si te fijas en el código el OnCrete está declarado como función publca en vez de función propia del form1 no se si me he explicado, es decir, tenía que estar declarado debajo de


TForm1 = class(TForm)

Pienso que es eso porque ya no me da el error, pero tampoco me he fijado lo que sale , he corrido a decirtelo

Eternamente agradecida.