problemas com FORM ...
eu tenho uma aplicaçao em MDI...
e nela to criando forms em run-time.. nao forms child .. form normal mesmo.
to tendo os seguintes problemas ... prar criar tah criando normal ...
procedure TMainForm.Opes1Click(Sender: TObject);
var Form2: TForm2;
begin
Form2 := TForm2.Create(self);
Form2.Show;
end;
o problema tah sendo quando eu tento mudar a propriedade de componentes ou mesmo
do form ... como por ex .. dar um form2.close;
ou mudar a propriedade de algum componente no form como por ex ..
dar um... form2.panel1.visible := false;
ps. qndo os comandos pra mudar ex a propriedade do panel, partem de um botao
que esta no form2 ele muda normalmente....
mas se eu lançar um comando de outro form como disse ali encima
´form2.panel1.visible := false;´
ele nao funciona .... alguem aew sabe o pq nao rola?
e se tem como dar um jeito nisso ae?
:)
e nela to criando forms em run-time.. nao forms child .. form normal mesmo.
to tendo os seguintes problemas ... prar criar tah criando normal ...
procedure TMainForm.Opes1Click(Sender: TObject);
var Form2: TForm2;
begin
Form2 := TForm2.Create(self);
Form2.Show;
end;
o problema tah sendo quando eu tento mudar a propriedade de componentes ou mesmo
do form ... como por ex .. dar um form2.close;
ou mudar a propriedade de algum componente no form como por ex ..
dar um... form2.panel1.visible := false;
ps. qndo os comandos pra mudar ex a propriedade do panel, partem de um botao
que esta no form2 ele muda normalmente....
mas se eu lançar um comando de outro form como disse ali encima
´form2.panel1.visible := false;´
ele nao funciona .... alguem aew sabe o pq nao rola?
e se tem como dar um jeito nisso ae?
:)
Salsa
Curtidas 0
Respostas
Beppe
23/01/2004
Talvez você não esteja se referindo ao form corretamente. No código que passou você atribui o form à uma variável local à procedure, e depois pode estar usando a variável global definida na unit do form.
GOSTEI 0
Salsa
23/01/2004
e oq vc sugere q eu faça pra arrumar isso?
GOSTEI 0
Wolverine
23/01/2004
amigo, eu já tive este erro, no form2 da td certo, mais qdo vc atribuir um valor no form1 para o form2 da um erro de acesso violado no endereço, coisa assim, porem percebi q quando o delphi criava automaticamente os froms (auto-create form) eu conseguia atribuir um valor no form1 para o form2, a única solução q eu consegui resolver, foi :
fazer q o Delphi crie automaticamente tds os form, e no Source do Projeto eu fecho o form
Ex.
o meu programa era um editor de texto em MDI, tinha um form principal, q cria o outro form para q eu possa editar o texto, então eu deixei q o delphi crie os 2 form e no source e fecho o form2
program edit;
uses
Forms,
prin in ´prin.pas´ ,
editor in ´editor.pas´ ;
{$R *.res}
begin
Application.Initialize;
Application.Title := ´Edit Fácil´;
Application.CreateForm(TFormprim, Formprim);
{
Formedit.Close;
Foi posto esta linha de comando pq eu ñ consegui
colocar comandos no ToolBar ´ex:Formedit.salvarExecute(Sender);´ semper dava erro
entao mandei q o delphi cria-se os dois form´s e depois fecha o formedit
}
Application.CreateForm(TFormedit, Formedit);
[b:86b35047dc]Formedit.Close;[/b:86b35047dc]
Application.Run;
end.
no button q cria o formedit coloque este código:
procedure TFormprim.Novo1Click(Sender: TObject);
begin
//LockWindowUpdate(Handle) é para retirar o efeito da maximização
LockWindowUpdate(Handle);
//comando para criar o from
with TFormedit.Create(Self) do
begin
Show;
LockWindowUpdate(0);
end;
end;
com isso vc ñ precisa criar uma var Form2: TForm2;
fazer q o Delphi crie automaticamente tds os form, e no Source do Projeto eu fecho o form
Ex.
o meu programa era um editor de texto em MDI, tinha um form principal, q cria o outro form para q eu possa editar o texto, então eu deixei q o delphi crie os 2 form e no source e fecho o form2
program edit;
uses
Forms,
prin in ´prin.pas´ ,
editor in ´editor.pas´ ;
{$R *.res}
begin
Application.Initialize;
Application.Title := ´Edit Fácil´;
Application.CreateForm(TFormprim, Formprim);
{
Formedit.Close;
Foi posto esta linha de comando pq eu ñ consegui
colocar comandos no ToolBar ´ex:Formedit.salvarExecute(Sender);´ semper dava erro
entao mandei q o delphi cria-se os dois form´s e depois fecha o formedit
}
Application.CreateForm(TFormedit, Formedit);
[b:86b35047dc]Formedit.Close;[/b:86b35047dc]
Application.Run;
end.
no button q cria o formedit coloque este código:
procedure TFormprim.Novo1Click(Sender: TObject);
begin
//LockWindowUpdate(Handle) é para retirar o efeito da maximização
LockWindowUpdate(Handle);
//comando para criar o from
with TFormedit.Create(Self) do
begin
Show;
LockWindowUpdate(0);
end;
end;
com isso vc ñ precisa criar uma var Form2: TForm2;
GOSTEI 0