Fórum Criando Form #483293
22/06/2014
0
Eu pretendo criar um programa com dois Form Applications, o primeiro que eu desejo que abra ao executar o programa, serve apenas para verificação, eu quero que após o usuário
inserir a senha correta, esse formulário seja fechado e que abra o segundo formulário, eu criei dois componentes no primeiro formulário, um Button e um Edit, e no OnClick do
botão eu implementei o seguinte:
procedure TForm2.Button1Click(Sender: TObject);
var senha:string;
begin
senha:= Edit1.Text;
if senha='admin' then
begin
ShowMessage('Senha correta');
TForm3.Create(self);
end;
end;
Eu coloquei senha admin apenas para facilitar o entendimento, o algoritmo completo é consideravelmente mais complicado, o compilador não da erro e o programa é executado
normalmente, mas quando eu digito a senha e clico no botão, ele não fecha o Form2 e abre o Form3. Qual seria o melhor comando para o caso citado?
Obrigado
inserir a senha correta, esse formulário seja fechado e que abra o segundo formulário, eu criei dois componentes no primeiro formulário, um Button e um Edit, e no OnClick do
botão eu implementei o seguinte:
procedure TForm2.Button1Click(Sender: TObject);
var senha:string;
begin
senha:= Edit1.Text;
if senha='admin' then
begin
ShowMessage('Senha correta');
TForm3.Create(self);
end;
end;
Eu coloquei senha admin apenas para facilitar o entendimento, o algoritmo completo é consideravelmente mais complicado, o compilador não da erro e o programa é executado
normalmente, mas quando eu digito a senha e clico no botão, ele não fecha o Form2 e abre o Form3. Qual seria o melhor comando para o caso citado?
Obrigado
Andrew Vargas
Curtir tópico
+ 0
Responder
Post mais votado
24/06/2014
Lucas Mees, agradeço pela ajuda, mas isso é apenas uma parte, os comandos que você disponibilizou não me ajudaram na criação do segundo form.
Valeu mesmo assim, eu reimplementei o código com suas dicas e ainda criei mais uma procedure unicamente para abertura do segundo Form, segue ai:
procedure abre_form();
begin
form3.Create(application);
end;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
var senha:string;
begin
senha:= Edit1.Text;
if senha='admin' then
begin
ShowMessage('Senha correta');
TForm3.Create(self);
close;
end;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
abre_form();
FreeAndNil(Form2);
Form2.Hide; //esconde o form
Form2.Destroy; //como o nome diz ele destoi
end;
end.
Valeu mesmo assim, eu reimplementei o código com suas dicas e ainda criei mais uma procedure unicamente para abertura do segundo Form, segue ai:
procedure abre_form();
begin
form3.Create(application);
end;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
var senha:string;
begin
senha:= Edit1.Text;
if senha='admin' then
begin
ShowMessage('Senha correta');
TForm3.Create(self);
close;
end;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
abre_form();
FreeAndNil(Form2);
Form2.Hide; //esconde o form
Form2.Destroy; //como o nome diz ele destoi
end;
end.
use o freeandnill depois do hide e tire o destroy apenas utilise o freeandnill
vc n precisa usar 1 procedure para isso.
Lucas Mees
Responder
Gostei + 1
Mais Posts
22/06/2014
Lucas Mees
no evento OnClose vc pode colocar
e de uma olhada no FreeAndNill para tira-lo da memória
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin Form1.Hide; //esconde o form Form1.Destroy; //como o nome diz ele destoi end;
e de uma olhada no FreeAndNill para tira-lo da memória
Responder
Gostei + 0
23/06/2014
Andrew Vargas
Lucas Mees, agradeço pela ajuda, mas isso é apenas uma parte, os comandos que você disponibilizou não me ajudaram na criação do segundo form.
Valeu mesmo assim, eu reimplementei o código com suas dicas e ainda criei mais uma procedure unicamente para abertura do segundo Form, segue ai:
procedure abre_form();
begin
form3.Create(application);
end;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
var senha:string;
begin
senha:= Edit1.Text;
if senha='admin' then
begin
ShowMessage('Senha correta');
TForm3.Create(self);
close;
end;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
abre_form();
FreeAndNil(Form2);
Form2.Hide; //esconde o form
Form2.Destroy; //como o nome diz ele destoi
end;
end.
Valeu mesmo assim, eu reimplementei o código com suas dicas e ainda criei mais uma procedure unicamente para abertura do segundo Form, segue ai:
procedure abre_form();
begin
form3.Create(application);
end;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
var senha:string;
begin
senha:= Edit1.Text;
if senha='admin' then
begin
ShowMessage('Senha correta');
TForm3.Create(self);
close;
end;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
abre_form();
FreeAndNil(Form2);
Form2.Hide; //esconde o form
Form2.Destroy; //como o nome diz ele destoi
end;
end.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)