Form de Login - controlar Form1 e Form2

Delphi

15/04/2005

Peguei este exemplo:

{
* Crie um novo Projeto. Este certamente terá o Form1.
* Adicione um novo Form (Form2).
* Coloque no Form2 dois botões TBitBtn.
* Mude a propriedade Kind do BitBtn1 para bkOK.
* Mude a propriedade Kind do BitBtn2 para bkCancel.
* Vá no menu ´Project/Options´ na aba ´Forms´ e passe o
Form2 de ´Auto-create Forms´ para ´Available Forms´.
* Abra o arquivo Project.dpr (menu Project/View Source).
* Altere o conteúdo deste arquivo conforme abaixo:
}

program Project1;

uses
Forms, Controls,
Unit1 in ´Unit1.pas´ ,
Unit2 in ´Unit2.pas´ ;

{$R *.RES}

var
F: TForm2;

begin
F := TForm2.Create(Application);
try
if F.ShowModal = mrOK then begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end;
finally
F.Free;
end;
end.


Tudo certinho, mas to sem conseguir controlar a condição no BitBtn1.
Quando dou Ok ele testa minha condição de login, mas depois abre o Form1 e fecha o Form2. Como controlar ??



[b:9c23020746]Título editado: ´FORM DE LOGIN - DÚVIDA (deve ser simples)´[/b:9c23020746]
Não escreva o título do tópico utilizando caixa alta. Veja a [url=http://forum.clubedelphi.net/viewtopic.php?p=17019#1c]cláusula 1c[/url] das Regras de conduta.
Sandra/Moderação


Laelsonc

Laelsonc

Curtidas 0

Respostas

Rjun

Rjun

15/04/2005

Bom, pelo código o comportamente teria q ser isso mesmo. Oq vc quer realmente que aconteça ?


GOSTEI 0
Laelsonc

Laelsonc

15/04/2005

Ora, quero que se a condição for falsa ele não abra nada. D~e tipo uma mensagem: Senha incorreta !

Valeus..


GOSTEI 0
Rjun

Rjun

15/04/2005

Voce deve tratar isso no evento OnCloseQuery do Form2.

Se a senha for incorreta, exiba a mensagem que vc quiser e altere o valor da variavel CanClose para false, desse modo o Form2 não é fechado;


GOSTEI 0
Laelsonc

Laelsonc

15/04/2005

CanClose, que variável é essa ?

Obs.: A minha condição de login é simples, não to usando banco ainda...


GOSTEI 0
Rjun

Rjun

15/04/2005

Abre o Form2. Na janela de propriedades de um duplo clique no evento OnCloseQuery. Voce pode reparar que na lista de parametros tem a variavel CanClose. Essa variavel voce deve setar para false, impedindo desse modo que a janela seja fechada.

Ex:

Código tosco. Isso é só um exemplo para ter uma idéia.

if (Senha <> ´Senha´) then
begin
  ShowMessage(´A senha informada é incorreta.´);
  Canclose := False;
end;
[/code]


GOSTEI 0
Laelsonc

Laelsonc

15/04/2005

Garoto esperto....valeu mesmo brother ! :lol:


GOSTEI 0
Laelsonc

Laelsonc

15/04/2005

Espere, mas agora o botão FECHAR não funcionar a não ser q atenda a condição ( a senha estiver correta ). O botão OK tranquilo, parece q todos se tranformam botão q testa a condicional.

Como fazer agora ?


GOSTEI 0
POSTAR