Inhalt

Aktueller Ordner: duesseldorfer-schuelerinventar-freepascal-client
⬅ Übergeordnet

u_login.pas

unit u_login;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls,
  u_api, u_profilelist;

type

  { TLoginForm }

  TLoginForm = class(TForm)
    btnLogin: TButton;
    edtUsername: TEdit;
    edtPassword: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    lblTitle: TLabel;
    lblInfo: TLabel;
    procedure btnLoginClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    procedure DoLogin;
  public

  end;

var
  LoginForm: TLoginForm;

implementation

{$R *.lfm}

procedure TLoginForm.FormCreate(Sender: TObject);
begin
  btnLogin.OnClick := @btnLoginClick;
  ShowMessage('Formular wurde erstellt!');
end;

procedure TLoginForm.btnLoginClick(Sender: TObject);
begin
  ShowMessage('Button wurde geklickt!');
  DoLogin;
end;

procedure TLoginForm.DoLogin;
var
  Response: TLoginResponse;
begin
  ShowMessage('DoLogin gestartet mit: ' + edtUsername.Text);
  
  btnLogin.Enabled := False;
  Screen.Cursor := crHourGlass;

  try
    ShowMessage('Rufe Login API auf...');
    Response := Login(edtUsername.Text, edtPassword.Text);
    ShowMessage('Login API zurückgekehrt');
    
    ShowMessage('Success: ' + BoolToStr(Response.Success, True) + sLineBreak +
                'UserID: ' + Response.UserID + sLineBreak +
                'Session: ' + Copy(Response.Session, 1, 20) + sLineBreak +
                'Error: ' + Response.Error);

    if Response.Success then
    begin
      ShowMessage('Login erfolgreich! Öffne Profilliste...');
      ShowMessage('Rufe TProfileListForm.Create auf...');
      with TProfileListForm.Create(Self, Response.UserID, Response.Session) do
      begin
        ShowMessage('TProfileListForm wurde erstellt, zeige es an...');
        Show;
        ShowMessage('LoginForm wird versteckt...');
        LoginForm.Hide;
        ShowMessage('Alles erledigt');
      end;
    end
    else
    begin
      ShowMessage('Anmeldung fehlgeschlagen: ' + Response.Error);
      btnLogin.Enabled := True;
      Screen.Cursor := crDefault;
    end;
  except
    on E: Exception do
    begin
      ShowMessage('Exception: ' + E.Message);
      btnLogin.Enabled := True;
      Screen.Cursor := crDefault;
    end;
  end;
end;

end.