Index: VerpakkingsDefinitie/UI/LogInScherm.pas =================================================================== diff -u -r593 -r611 --- VerpakkingsDefinitie/UI/LogInScherm.pas (.../LogInScherm.pas) (revision 593) +++ VerpakkingsDefinitie/UI/LogInScherm.pas (.../LogInScherm.pas) (revision 611) @@ -22,9 +22,14 @@ procedure EditGebruikersnaamChange(Sender: TObject); procedure PanelLogInMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure PanelLogInMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); - procedure PanelButtonEnableChange(Sender: TPanel); + procedure EditGebruikersnaamKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure EditWachtwoordKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure EditWachtwoordKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure EditGebruikersnaamKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); private FUserAgent: TUserAgent; + procedure PanelButtonUpdateClickedVisual(Panel: TPanel; Ingedrukt: boolean); + procedure PanelButtonUpdateEnableVisual(Sender: TPanel); procedure Login(); public Constructor Create(AOwner: TComponent; Navigator: INavigator; ApplicationContext: TApplicationContext; UserAgent: TUserAgent); @@ -48,30 +53,82 @@ begin EditWachtwoord.PasswordChar := '*'; // Verberg paswoord PanelLogIn.Enabled := false; - PanelButtonEnableChange(PanelLogIn); + PanelButtonUpdateEnableVisual(PanelLogIn); end; procedure TFormLogin.PanelLogInClick(Sender: TObject); begin Login(); end; -// Indrukken van button simuleren op panel: http://www.festra.com/wwwboard/messages/1006.html procedure TFormLogin.PanelLogInMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin - (Sender as TPanel).BevelOuter := bvLowered; + PanelButtonUpdateClickedVisual((Sender as TPanel), true); end; procedure TFormLogin.PanelLogInMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin - (Sender as TPanel).BevelOuter := bvRaised; + PanelButtonUpdateClickedVisual((Sender as TPanel), false); end; -procedure TFormLogin.PanelButtonEnableChange(Sender: TPanel); +// Enter in Edit Text's zorgt voor login + +procedure TFormLogin.EditGebruikersnaamKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin + inherited; + if ord(Key) = VK_RETURN then + begin + Key := 0; + PanelButtonUpdateClickedVisual(PanelLogIn, true); + end; +end; + +procedure TFormLogin.EditGebruikersnaamKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); +begin + inherited; + if ord(Key) = VK_RETURN then + begin + Key := 0; + Login(); + end; +end; + +procedure TFormLogin.EditWachtwoordKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); +begin + inherited; + if ord(Key) = VK_RETURN then + begin + Key := 0; + PanelButtonUpdateClickedVisual(PanelLogIn, true); + end; +end; + +procedure TFormLogin.EditWachtwoordKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); +begin + inherited; + if ord(Key) = VK_RETURN then + begin + Key := 0; + PanelButtonUpdateClickedVisual(PanelLogIn, false); + Login(); + end; +end; + +// Indrukken van button simuleren op panel: http://www.festra.com/wwwboard/messages/1006.html +procedure TFormLogin.PanelButtonUpdateClickedVisual(Panel: TPanel; Ingedrukt: boolean); +begin + // Enkel animatie tonen als panel enabled is + if Ingedrukt and PanelLogIn.Enabled then + Panel.BevelOuter := bvLowered + else + Panel.BevelOuter := bvRaised; +end; + +procedure TFormLogin.PanelButtonUpdateEnableVisual(Sender: TPanel); +begin if Sender.Enabled then begin - Sender.ParentBackground := True; // Neem kleur van parent (default) + Sender.ParentBackground := true; // Neem kleur van parent (default) Sender.Font.Color := clWhite; end else @@ -81,20 +138,23 @@ Sender.Color := TColor(TUtil.LightenColor(Vcl.Graphics.ColorToRGB(PanelLogIn.Parent.Brush.Color), 70)); Sender.Font.Color := clGray; end; - end; procedure TFormLogin.EditGebruikersnaamChange(Sender: TObject); begin // We kijken enkel naar gebruikersnaam, want leeg ww zou geldig kunnen zijn - PanelLogIn.Enabled := (Sender as TEdit).Text <> EmptyStr; - PanelButtonEnableChange(PanelLogIn); + PanelLogIn.Enabled := Trim((Sender as TEdit).Text) <> EmptyStr; + PanelButtonUpdateEnableVisual(PanelLogIn); end; procedure TFormLogin.Login(); var ErrorMessage: string; begin + // Enkel inloggen als er geldige velden zijn + if Trim(EditGebruikersnaam.Text) = EmptyStr then + exit; + FUserAgent.GebruikerAanmelden(EditGebruikersnaam.Text, EditWachtwoord.Text, self.ApplicationContext.UserContext); if ApplicationContext.UserContext.IsOK then