Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-06-2006
nenufer nenufer is offline
Miembro
 
Registrado: dic 2005
Posts: 90
Poder: 19
nenufer Va por buen camino
Question problema con array de componentes

holaa!!
Estoy creando paneles en tiempo de ejecucion y quiero guardarlos en un array para luego crear en ellos un Timage. El problema es que los paneles no se guardan en el array. Las posiciones del array son nil. El array lo declaro global y de forma dinamica.

Código Delphi [-]
Paneles: array of TPanel

El codiog que utilizo es:

Código Delphi [-]
procedure TForm.CreaPaneles();
var
 x,y,i:Integer;
 PnlImagen : TPanel;
begin
 x := PnlImagenes.Width;
 y := PnlImagenes.Height;
 
 setlength(ArPaneles,2);//Array para los panes
 
 for i:=low(Paneles) to high(Paneles) do
  begin
   PnlImagen := TPanel.Create(PnlImagenes);
   PnlImagen.Parent := PnlImagenes;
   PnlImagen.Visible := true;
   if i=0 then
     TamPanel(x,y,PnlImag) //Procedimiento que fija longitudes del panel
   else
     if i=1 then
       TamPanel(x div 2,y div 2,PnlImagen);
end;
end;
 
procedure TForm.CreaImagen(NumImag : Integer);
var
 i : integer;
begin
 
 for i:=0 to NUmImag-1 do
  begin
   Img := TImage.Create(ArPaneles[NImagenes]); //El problema esta aqui
   Img.Parent := ArPaneles[NImagenes];//y aqui
   Img.Visible := true;
   Img.Align := alclient;
   Img.Stretch := true;
 end;
end;


El error que me da es:Acces violation at address 00403456 in module project.exe. Read of address 0000022E.

He puesto puntos de ruptura y veo el que array esta nil.
No se que hago mal. Si alguien me puede ayudar, gracias de antemano
Responder Con Cita
  #2  
Antiguo 06-06-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Código Delphi [-]

 for i:=low(ArPaneles) to high(ArPaneles) do // No uses el tipo de datos, sino la variable.
begin
   PnlImagen := TPanel.Create(PnlImagenes);
   PnlImagen.Parent := PnlImagenes;
   PnlImagen.Visible := true;

   Arpaneles[i] := pnlImagen; // guardas la referencia al panel creado. OJO ES UN PUNTERO.

   if i=0 then
     TamPanel(x,y,PnlImag) //Procedimiento que fija longitudes del panel
   else
     if i=1 then
       TamPanel(x div 2,y div 2,PnlImagen);

procedure TForm.CreaImagen(NumImag : Integer);
var
 i : integer;
begin
 
 for i:=0 to NUmImag-1 do
  begin
   Img := TImage.Create(ArPaneles[NImagenes]); //ahora si tiene un valor.
   Img.Parent := ArPaneles[NImagenes];//y aqui
   Img.Visible := true;
   Img.Align := alclient;
   Img.Stretch := true;
 end;
end;
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 06-06-2006 a las 11:23:32.
Responder Con Cita
  #3  
Antiguo 06-06-2006
nenufer nenufer is offline
Miembro
 
Registrado: dic 2005
Posts: 90
Poder: 19
nenufer Va por buen camino
Thumbs up

Gracias por contestar tan rapido. Ahora ya me funciona bien, aparte de eso me daba el error, porque en creaimagenes:

Código Delphi [-]
for i:=0 to NUmImag-1 do
  begin
   //La posicion de array no existe. tiene que ser:  
   Img := TImage.Create(ArPaneles[NumImagenes-1]); 
    Img.Parent := ArPaneles[NumImagenes-1];//y aqui
...............
 end;

Entonces ya me lo guarda y no me muestra error. Muchas gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
problema con un array de tipos aram2r OOP 5 08-06-2005 09:54:28
Como Asignar Variable Tipo Array de Tform a otro Array del Mismo tipo morfeo21 Varios 5 17-08-2004 17:39:51
Problema con los componentes ZeosBDO dango Conexión con bases de datos 11 29-04-2004 10:28:37
Problema con componentes barman Conexión con bases de datos 5 21-11-2003 14:25:18


La franja horaria es GMT +2. Ahora son las 17:05:19.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi