Fórum Erro na criação de Forms #483777
26/06/2014
0
begin
form2:= form2.create(self);
form2.showmodal;
freeandnil(form2);
end;
Eu usei o componente TImage por que ele me permite adicionar uma imagem diretamente no Form, isso cria um visual mais interessante do que colocar em um botão por exemplo, se alguém souber uma form de inserir imagens diretamente no Form com o TImageList também vai me ajudar.
PS: Se eu passo o Form2 para Available Forms na opção Project -> Options -> Forms, quando tento criar o segundo form ele da um erro de Access Violation
Andrew Vargas
Curtir tópico
+ 0Posts
27/06/2014
Joel Rodrigues
Obs.: use a formatação de código (primeiro botão) disponível na barra de formatação aqui na caixa de repostas.
Gostei + 0
27/06/2014
Itamar Souza
Se você tem 2 formulários, sendo o 1 chamando o segundo, você pode fazer assim.
procedure TForm1.Button1Click(Sender: TObject);
begin
try
Form2 := TForm2.Create(Application);
Form2.ShowModal;
finally
FreeAndNil(Form2);
end
end;
No form2 você adiciona o seu Image é na abertura da tela você faz assim:
procedure TForm2.FormShow(Sender: TObject);
var
FileName : string;
begin
//carrega a imagem
FileName := 'C:\caminhodaimagem.jpg';
if FileExists(FileName) then
Image1.Picture.LoadFromFile(FileName)
else
Image1.Picture := nil;
end;
Mesmo que o formulário esteja no Available vai funcionar.
Gostei + 0
27/06/2014
Marco Salles
Alguumas dicas podem não resolver seu problema , mas podem com certeza evitar OUTROS
1)
O Try vem Depois do Create
ERRADO
try Form2 := TForm2.Create(Application);
CERTO
Form2 := TForm2.Create(Application); try
TryAninhados
2) Segundo
A aplicação como Proprietária nesta estrutura não é aconselável .. Vc ests destruindo a Instancia e não a Aplicação . Logo o Proprietário deve ser NIL
Form2 := TForm2.Create(NIL);
3)Não Utilize a Variavel Global quando não tiver controle sobre a Intancia , a não ser se vc estiver utilizando um Padrão Singleton (que parece não ser o seu caso)
Faça assim
var Form:TFORM; begin try Form:=TFORM2.Create(Nil); Form.ShowModal; finally FreeAndNil(Form); end
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)