Fórum Problema na criação dinâmica de componentes #277533
16/04/2005
0
Estou tentando criar os componentes no form mais de uma vez e não estou conseguindo só cria uma vez. Acompanhem o código abaixo.
Desde já muito obrigado
unit Imagem;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, ComCtrls, ExtDlgs;
type
TFrm_Imagem = class(TForm)
ScrollBox: TScrollBox;
procedure FormShow(Sender: TObject);
private
{ Private declarations }
Procedure Cria_Tela(x, i:integer);
public
{ Public declarations }
end;
var
Frm_Imagem: TFrm_Imagem;
implementation
{$R *.DFM}
procedure TFrm_Imagem.Cria_Tela(x, i:integer);
var
Panel : TPanel;
Scroll : TScrollBox;
Image : TImage;
begin
Panel := TPanel.Create(Self);
Panel.Parent := ScrollBox; //Self;
Panel.Left := 0;
Panel.Top := x;
Panel.Width := 528;
Panel.Height := 320;
Panel.Align := alClient;
Panel.Name := ´Panel´ + IntToStr(i);
Scroll := TScrollBox.Create(Self);
Scroll.Parent := Panel;
Scroll.Left := 1;
Scroll.Top := 1;
Scroll.Width := 526;
Scroll.Height := 318;
Scroll.Align := alClient;
Scroll.Name := ´Scroll´ + IntToStr(i);
Image := TImage.Create(Self);
Image.Parent := Scroll;
Image.Left := 0;
Image.Top := 0;
Image.Width := 800;
Image.Height := 600;
Image.AutoSize := True;
Image.Picture.LoadFromFile(´c:\jefferson\informática.bmp´);
Image.Name := ´Image´ + IntToStr(i);
end;
procedure TFrm_Imagem.FormShow(Sender: TObject);
begin
Cria_Tela(0, 1);
Cria_Tela(90, 2);
end;
end.
Desde já muito obrigado
unit Imagem;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, ComCtrls, ExtDlgs;
type
TFrm_Imagem = class(TForm)
ScrollBox: TScrollBox;
procedure FormShow(Sender: TObject);
private
{ Private declarations }
Procedure Cria_Tela(x, i:integer);
public
{ Public declarations }
end;
var
Frm_Imagem: TFrm_Imagem;
implementation
{$R *.DFM}
procedure TFrm_Imagem.Cria_Tela(x, i:integer);
var
Panel : TPanel;
Scroll : TScrollBox;
Image : TImage;
begin
Panel := TPanel.Create(Self);
Panel.Parent := ScrollBox; //Self;
Panel.Left := 0;
Panel.Top := x;
Panel.Width := 528;
Panel.Height := 320;
Panel.Align := alClient;
Panel.Name := ´Panel´ + IntToStr(i);
Scroll := TScrollBox.Create(Self);
Scroll.Parent := Panel;
Scroll.Left := 1;
Scroll.Top := 1;
Scroll.Width := 526;
Scroll.Height := 318;
Scroll.Align := alClient;
Scroll.Name := ´Scroll´ + IntToStr(i);
Image := TImage.Create(Self);
Image.Parent := Scroll;
Image.Left := 0;
Image.Top := 0;
Image.Width := 800;
Image.Height := 600;
Image.AutoSize := True;
Image.Picture.LoadFromFile(´c:\jefferson\informática.bmp´);
Image.Name := ´Image´ + IntToStr(i);
end;
procedure TFrm_Imagem.FormShow(Sender: TObject);
begin
Cria_Tela(0, 1);
Cria_Tela(90, 2);
end;
end.
Jdasg
Curtir tópico
+ 0
Responder
Posts
16/04/2005
Massuda
O problema é que você está criando dois paineis com Align = alClient...
...
procedure TFrm_Imagem.Cria_Tela(x, i:integer);
...
Panel := TPanel.Create(Self);
...
[color=red:e62daeb455]Panel.Align := alClient;[/color:e62daeb455]
...
...por causa disso, um painel acaba ficando por cima do outro.
Responder
Gostei + 0
16/04/2005
Jdasg
Muito obrigado Massura pelo toque.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)