Fórum compilação form #425383

03/10/2012

0

Por favor alguem me ajude!

fiz uma tela de login com o seguinte codigo:

var
Form9: TForm9;
tentativas : integer;

implementation

uses Unit1, Unit3, Unit5, Unit6, Unit7;

{$R *.dfm}

procedure TForm9.BitBtn1Click(Sender: TObject);

begin
if tentativas = 3 then

begin
BitBtn1.Enabled :=false;
ShowMessage('Numero de tentativas excedido');
end
else
begin
if (Edit1.Text = 'paulosg') and (Edit2.Text = '1')then
begin
Form1.Show;
end
else
begin
tentativas :=tentativas +1;
ShowMessage('Usuário ou Senha inválidos');


end;
end;
end;

end.


agora não estou conseguindo compilar para aparecer somente a tela de login. Qdo compilo o projeto aparece a tela de login mais tambem a tela principal(ela só tem abrir, quando eu inserir o usuario e senha). me ajudem a fazer com que a tela principal apareça qdo fizer login correto.
Paulo

Paulo

Responder

Posts

03/10/2012

Gilvanio Gonçalves

colega para carregar somente a tela de login ser ter o form principal atras da tela de login

abra o seu projeto, no menu do delphi clique em project e em options

na aba forms, na opção Main form selecione seu form de login. exemplo ele se chama frmlogin.

logo abaixo tem dois quadros um se chama auto create forms, esta a esquerda.
o outro se chama Available form esta a direita.


se seu form frologin estiver no quadro da direita, selecione ele e clique
na seta para a esquerda rara ser levado para o quadro da direita.

se seu form principal estiver no quadro a esquerda selecione ele e clique na set
para a direita ara ele ser levado para o quadro da esquerda, e é isto.

dê ok. para finalizar e pronto.

facil, facil.

não esqueça que em main form tem que ficar frmlogin
Responder

Gostei + 0

03/10/2012

Marcos Iwazaki

Amigo..
Pq teria problema de aparecer sua tela principal embaixo da tela de login?
Simplesmente se o cara erra ou cancelar o login da um Applicaton.Terminate e fecha tudo.

Não fica legal vc deixar a tela de login como principal.
Qual tela vc setar como tela principal do projeto... ela não pode ser fechada, pois qdo fechar ela fecha o sistema.

Dae fica aqueles programas feios que qdo vc clica em minizar, ele não minimiza direito.. fica aparecendo acima da barra do windows.
Responder

Gostei + 0

04/10/2012

Gilvanio Gonçalves

Amigo, cada programador tem a sua linha de raciocinio
ou sua logica.

como é mais comum fazerem aplicativos com tela de login na frente do form
principal, como cita o colega acima, pois sendo mais facil como um B A BA de iniciantes.

mas tem se usado muito tela de login separada como vc quer, em programas de empresas de desenvolvimento de
software bém profissional.
não vejo incoveniencia nisto, a unica coisa que pode é ficar um pouco desagradavel na questão
de layout(visualização), pois a tela de login ficará por cima dos icones da area de trabalho do seu cliente
se a area estiver lotada de icones, sua tela de login ficará com visualização prejudicada
devido a tantas coisas no desktop, mas isto vem de vc.
uma tela login com um layout bém feito e apresentavel, vale a pena.
Responder

Gostei + 0

04/10/2012

Paulo

Amigo..
Pq teria problema de aparecer sua tela principal embaixo da tela de login?
Simplesmente se o cara erra ou cancelar o login da um Applicaton.Terminate e fecha tudo.

Não fica legal vc deixar a tela de login como principal.
Qual tela vc setar como tela principal do projeto... ela não pode ser fechada, pois qdo fechar ela fecha o sistema.

Dae fica aqueles programas feios que qdo vc clica em minizar, ele não minimiza direito.. fica aparecendo acima da barra do windows.


eu quero a tela principal embaixo do login, mais ela está aparecendo em cima do login. Como eu faço para ela(frmprincipal) ap aparecer em baixo do login?

Os codigos que estou usando são:
var
FrmLogin: TFrmLogin;
tentativas : integer;

implementation

uses Unit1, Unit3, Unit5, Unit6, Unit7;

{$R *.dfm}

procedure TFrmLogin.BitBtn1Click(Sender: TObject);

begin
if tentativas = 3 then

begin
BitBtn1.Enabled :=false;
ShowMessage('Numero de tentativas excedido');
end
else
begin
if (EdtApelido.Text = 'PAULOSG') and (EdtSenha.Text = '1')then
begin
Form1.Showmodal;
end
else
begin
tentativas :=tentativas +1;
ShowMessage('Usuário ou Senha inválidos');


end;
end;
end;

procedure TFrmLogin.BtnCancelarClick(Sender: TObject);
begin
Application.Terminate;
end;

end.


Só lembrando que na opção dos forms, eu coloquei o frmlogin 1º, por isso eu não estou entendendo pq o frm principal aparece 1º do que o frmlogin. por favor me ajudem.
Responder

Gostei + 0

04/10/2012

Alisson Santos

Coloca a chamada da tela de login no oncreate do seu formulario principal, pois ele primeiro vai executar a tela de login e após abrir a tela principal.
Responder

Gostei + 0

04/10/2012

Paulo

Coloca a chamada da tela de login no oncreate do seu formulario principal, pois ele primeiro vai executar a tela de login e após abrir a tela principal.


nao deu certo. Abriu 1º a tela principal.
Responder

Gostei + 0

04/10/2012

Marcos Iwazaki

Foi por isso que eu perguntei a ele o motivo.
Pois quando eu comecei a programar tbm fiz isso.
So depois de um tempo que vi q era errado, e fica feio.
So que qdo eu comecei ninguem me disse nada. Por isso se ele realmente quer fazer desta maneira ok, vamos ajudá-lo a fazer.
Agora se ele esta fazendo desta maneira pq ele achava que era a unica maneira, agente ja pode ajudar mostrando outras formas.



Amigo, cada programador tem a sua linha de raciocinio
ou sua logica.

como é mais comum fazerem aplicativos com tela de login na frente do form
principal, como cita o colega acima, pois sendo mais facil como um B A BA de iniciantes.

mas tem se usado muito tela de login separada como vc quer, em programas de empresas de desenvolvimento de
software bém profissional.
não vejo incoveniencia nisto, a unica coisa que pode é ficar um pouco desagradavel na questão
de layout(visualização), pois a tela de login ficará por cima dos icones da area de trabalho do seu cliente
se a area estiver lotada de icones, sua tela de login ficará com visualização prejudicada
devido a tantas coisas no desktop, mas isto vem de vc.
uma tela login com um layout bém feito e apresentavel, vale a pena.
Responder

Gostei + 0

04/10/2012

Marcos Iwazaki

Amigo.
posta aqui o codigo do seu dpr fazendo favor.

Coloca a chamada da tela de login no oncreate do seu formulario principal, pois ele primeiro vai executar a tela de login e após abrir a tela principal.


nao deu certo. Abriu 1º a tela principal.
Responder

Gostei + 0

04/10/2012

Paulo

Amigo.
posta aqui o codigo do seu dpr fazendo favor.

Coloca a chamada da tela de login no oncreate do seu formulario principal, pois ele primeiro vai executar a tela de login e após abrir a tela principal.


nao deu certo. Abriu 1º a tela principal.


codigo dpr:

unit Unit10;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;

type
TFrmLogin = class(TForm)
EdtUsuario: TEdit;
EdtSenha: TEdit;
LblUsuario: TLabel;
LblSenha: TLabel;
BtnOk: TBitBtn;
BtnCancelar: TBitBtn;
procedure BtnOkClick(Sender: TObject);
procedure BtnCancelarClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
FrmLogin: TFrmLogin;
tentativas : integer;

implementation

uses Unit1, Unit3, Unit5, Unit6, Unit7;

{$R *.dfm}
Responder

Gostei + 0

04/10/2012

Marcos Iwazaki

isto não é o seu dpr amigo..
esse é o .pas da unit10.

vai em project > view source

Amigo.
posta aqui o codigo do seu dpr fazendo favor.

Coloca a chamada da tela de login no oncreate do seu formulario principal, pois ele primeiro vai executar a tela de login e após abrir a tela principal.


nao deu certo. Abriu 1º a tela principal.


codigo dpr:

unit Unit10;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;

type
TFrmLogin = class(TForm)
EdtUsuario: TEdit;
EdtSenha: TEdit;
LblUsuario: TLabel;
LblSenha: TLabel;
BtnOk: TBitBtn;
BtnCancelar: TBitBtn;
procedure BtnOkClick(Sender: TObject);
procedure BtnCancelarClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
FrmLogin: TFrmLogin;
tentativas : integer;

implementation

uses Unit1, Unit3, Unit5, Unit6, Unit7;

{$R *.dfm}
Responder

Gostei + 0

04/10/2012

Paulo

isto não é o seu dpr amigo..
esse é o .pas da unit10.

vai em project > view source

Amigo.
posta aqui o codigo do seu dpr fazendo favor.

Coloca a chamada da tela de login no oncreate do seu formulario principal, pois ele primeiro vai executar a tela de login e após abrir a tela principal.


nao deu certo. Abriu 1º a tela principal.


codigo dpr:

unit Unit10;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;

type
TFrmLogin = class(TForm)
EdtUsuario: TEdit;
EdtSenha: TEdit;
LblUsuario: TLabel;
LblSenha: TLabel;
BtnOk: TBitBtn;
BtnCancelar: TBitBtn;
procedure BtnOkClick(Sender: TObject);
procedure BtnCancelarClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
FrmLogin: TFrmLogin;
tentativas : integer;

implementation

uses Unit1, Unit3, Unit5, Unit6, Unit7;

{$R *.dfm}







Codigo dpr:
program Project1;

uses
Forms,
Unit1 in 'Unit1.pas' ,
Unit3 in 'Unit3.pas' ,
Unit5 in 'Unit5.pas' ,
Unit6 in 'Unit6.pas' ,
Unit7 in 'Unit7.pas' ,
Unit10 in 'Unit10.pas' ;

{$R *.res}

begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TFrmLogin, FrmLogin);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm5, Form5);
Application.CreateForm(TForm6, Form6);
Application.CreateForm(TForm7, Form7);
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Responder

Gostei + 0

04/10/2012

Marcos Iwazaki

OK...
Se vc quer que apenas o Login apareça
Vai em Project > Option > Forms > Main Form <- aqui selecione o seu form login

se vc quer q o form principal aparece e logo depois venha o login e fique em cima do form principal
Vai em Project > Option > Forms > Main Form <- aqui selecione o seu form principal
e no OnCreate do form Principal chame o login como showmodal.
Responder

Gostei + 0

04/10/2012

Marcos Iwazaki

veja este exemplo q eu fiz
https://dl.dropbox.com/u/43263814/Login.rar
Responder

Gostei + 0

04/10/2012

Alisson Santos

Amigo o que quer então é abrir a tela de login antes da tela principal, e se caso der certo aparecer a tela para você??
Vou fazer um exemplo desse em casa e posto aqui para você.
Responder

Gostei + 0

05/10/2012

Paulo

OK...
Se vc quer que apenas o Login apareça
Vai em Project > Option > Forms > Main Form <- aqui selecione o seu form login

se vc quer q o form principal aparece e logo depois venha o login e fique em cima do form principal
Vai em Project > Option > Forms > Main Form <- aqui selecione o seu form principal
e no OnCreate do form Principal chame o login como showmodal.


não deu Certo.

Mais obrigado!
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar