Fórum compilação form #425383
03/10/2012
0
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
Curtir tópico
+ 0Posts
03/10/2012
Gilvanio Gonçalves
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
Gostei + 0
03/10/2012
Marcos Iwazaki
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.
Gostei + 0
04/10/2012
Gilvanio Gonçalves
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.
Gostei + 0
04/10/2012
Paulo
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.
Gostei + 0
04/10/2012
Alisson Santos
Gostei + 0
04/10/2012
Paulo
nao deu certo. Abriu 1º a tela principal.
Gostei + 0
04/10/2012
Marcos Iwazaki
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.
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.
Gostei + 0
04/10/2012
Marcos Iwazaki
posta aqui o codigo do seu dpr fazendo favor.
nao deu certo. Abriu 1º a tela principal.
Gostei + 0
04/10/2012
Paulo
posta aqui o codigo do seu dpr fazendo favor.
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}
Gostei + 0
04/10/2012
Marcos Iwazaki
esse é o .pas da unit10.
vai em project > view source
posta aqui o codigo do seu dpr fazendo favor.
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}
Gostei + 0
04/10/2012
Paulo
esse é o .pas da unit10.
vai em project > view source
posta aqui o codigo do seu dpr fazendo favor.
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.
Gostei + 0
04/10/2012
Marcos Iwazaki
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.
Gostei + 0
04/10/2012
Marcos Iwazaki
https://dl.dropbox.com/u/43263814/Login.rar
Gostei + 0
04/10/2012
Alisson Santos
Vou fazer um exemplo desse em casa e posto aqui para você.
Gostei + 0
05/10/2012
Paulo
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!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)