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.