Implementing Biometric Authentication in Delphi 11.3: Examples and Best Practices

Alen IBRIC
5 min readMay 22, 2023

Biometric authentication is becoming increasingly popular in software development, as it provides a secure and convenient way for users to access their accounts. Delphi 11.3 offers a range of tools and libraries that make it easy to implement biometric authentication in your projects.

One of the most popular biometric authentication methods is fingerprint recognition. Delphi 11.3 includes a library called TTouchManager that provides access to the device’s fingerprint scanner. Here’s an example of how you can use TTouchManager to authenticate a user’s fingerprint:

uses

FMX.Platform, System.SysUtils;

procedure TForm1.Button1Click(Sender: TObject);

var

TouchManager: TTouchManager;

begin

TouchManager := TPlatformServices.Current.GetPlatformService(TTouchManager) as TTouchManager;

if Assigned(TouchManager) then

begin

TouchManager.Capture(Self,

procedure(const ABitmap: TBitmap)

begin

// Use the captured bitmap to authenticate the user’s fingerprint

if AuthenticateFingerprint(ABitmap) then

begin

ShowMessage(‘Authentication successful!’);

end

else

begin

ShowMessage(‘Authentication failed!’);

end;

end);

end

else

begin

ShowMessage(‘Fingerprint scanner not available.’);

end;

end;

function TForm1.AuthenticateFingerprint(const ABitmap: TBitmap): Boolean;

begin

// Use the captured bitmap to authenticate the user’s fingerprint

// Return True if the fingerprint is authenticated, False otherwise

end;

In this example, we use TTouchManager to capture the user’s fingerprint and pass it to the AuthenticateFingerprint function, which performs the actual authentication. If the authentication is successful, we display a message to the user.

Another biometric authentication method that Delphi 11.3 supports is facial recognition. The TCameraComponent library provides access to the device’s camera, which can be used to capture the user’s face and authenticate it. Here’s an example of how you can use TCameraComponent to authenticate a user’s face:

uses

FMX.Media, System.SysUtils;

procedure TForm1.Button1Click(Sender: TObject);

var

CameraComponent: TCameraComponent;

begin

CameraComponent := TCameraComponent.Create(Self);

try

CameraComponent.Kind := TCameraKind.FrontCamera;

CameraComponent.Quality := TVideoCaptureQuality.HighQuality;

CameraComponent.OnSampleBufferReady := SampleBufferReady;

CameraComponent.Active := True;

except

CameraComponent.Free;

ShowMessage(‘Camera not available.’);

end;

end;

procedure TForm1.SampleBufferReady(Sender: TObject; const ATime: TMediaTime);

var

SampleBuffer: TSampleBuffer;

begin

TThread.Synchronize(nil,

procedure

begin

SampleBuffer := TSampleBuffer(Sender);

// Use the captured sample buffer to authenticate the user’s face

if AuthenticateFace(SampleBuffer) then

begin

ShowMessage(‘Authentication successful!’);

end

else

begin

ShowMessage(‘Authentication failed!’);

end;

end);

end;

function TForm1.AuthenticateFace(const ASampleBuffer: TSampleBuffer): Boolean;

begin

// Use the captured sample buffer to authenticate the user’s face

// Return True if the face is authenticated, False otherwise

end;

In this example, we use TCameraComponent to capture the user’s face and pass it to the AuthenticateFace function, which performs the actual authentication. If the authentication is successful, we display a message to the user.

Delphi 11.3 includes a library called TAudioCaptureDevice that provides access to the device’s microphone. You can use this library to capture the user’s voice and authenticate it. Here’s an example of how you can use TAudioCaptureDevice to authenticate a user’s voice:

uses

FMX.AudioCapture, System.SysUtils;

procedure TForm1.Button1Click(Sender: TObject);

var

AudioCaptureDevice: TAudioCaptureDevice;

begin

AudioCaptureDevice := TAudioCaptureDevice.Create(Self);

try

AudioCaptureDevice.OnSampleBufferReady := SampleBufferReady;

AudioCaptureDevice.Active := True;

except

AudioCaptureDevice.Free;

ShowMessage(‘Microphone not available.’);

end;

end;

procedure TForm1.SampleBufferReady(Sender: TObject; const ATime: TMediaTime);

var

SampleBuffer: TSampleBuffer;

begin

TThread.Synchronize(nil,

procedure

begin

SampleBuffer := TSampleBuffer(Sender);

// Use the captured sample buffer to authenticate the user’s voice

if AuthenticateVoice(SampleBuffer) then

begin

ShowMessage(‘Authentication successful!’);

end

else

begin

ShowMessage(‘Authentication failed!’);

end;

end);

end;

function TForm1.AuthenticateVoice(const ASampleBuffer: TSampleBuffer): Boolean;

begin

// Use the captured sample buffer to authenticate the user’s voice

// Return True if the voice is authenticated, False otherwise

end;

In this example, we use TAudioCaptureDevice to capture the user’s voice and pass it to the AuthenticateVoice function, which performs the actual authentication. If the authentication is successful, we display a message to the user.

few more examples of how you can implement biometric authentication in Delphi 11.3:

  1. Voice Recognition

Delphi 11.3 includes a library called TAudioCaptureDevice that provides access to the device’s microphone. You can use this library to capture the user’s voice and authenticate it. Here’s an example of how you can use TAudioCaptureDevice to authenticate a user’s voice:

uses

FMX.AudioCapture, System.SysUtils;

procedure TForm1.Button1Click(Sender: TObject);

var

AudioCaptureDevice: TAudioCaptureDevice;

begin

AudioCaptureDevice := TAudioCaptureDevice.Create(Self);

try

AudioCaptureDevice.OnSampleBufferReady := SampleBufferReady;

AudioCaptureDevice.Active := True;

except

AudioCaptureDevice.Free;

ShowMessage(‘Microphone not available.’);

end;

end;

procedure TForm1.SampleBufferReady(Sender: TObject; const ATime: TMediaTime);

var

SampleBuffer: TSampleBuffer;

begin

TThread.Synchronize(nil,

procedure

begin

SampleBuffer := TSampleBuffer(Sender);

// Use the captured sample buffer to authenticate the user’s voice

if AuthenticateVoice(SampleBuffer) then

begin

ShowMessage(‘Authentication successful!’);

end

else

begin

ShowMessage(‘Authentication failed!’);

end;

end);

end;

function TForm1.AuthenticateVoice(const ASampleBuffer: TSampleBuffer): Boolean;

begin

// Use the captured sample buffer to authenticate the user’s voice

// Return True if the voice is authenticated, False otherwise

end;

In this example, we use TAudioCaptureDevice to capture the user’s voice and pass it to the AuthenticateVoice function, which performs the actual authentication. If the authentication is successful, we display a message to the user.

  1. Iris Recognition

Delphi 11.3 includes a library called TCameraComponent that provides access to the device’s camera. You can use this library to capture the user’s iris and authenticate it. Here’s an example of how you can use TCameraComponent to authenticate a user’s iris:

uses

FMX.Media, System.SysUtils;

procedure TForm1.Button1Click(Sender: TObject);

var

CameraComponent:CameraComponent;

begin

CameraComponent := TCameraComponent.Create(Self);

try

CameraComponent.Kind := TCameraKind.BackCamera;

CameraComponent.Quality := TVideoCaptureQuality.HighQuality;

CameraComponent.OnSampleBufferReady := SampleBufferReady;

CameraComponent.Active := True;

except

CameraComponent.Free;

ShowMessage(‘Camera not available.’);

end;

end;

procedure TForm1.SampleBufferReady(Sender: TObject; const ATime: TMediaTime);

var

SampleBuffer: TSampleBuffer;

begin

TThread.Synchronize(nil,

procedure

begin

SampleBuffer := TSampleBuffer(Sender);

// Use the captured sample buffer to authenticate the user’s iris

if AuthenticateIris(SampleBuffer) then

begin

ShowMessage(‘Authentication successful!’);

end

else

begin

ShowMessage(‘Authentication failed!’);

end;

end);

end;

function TForm1.AuthenticateIris(const ASampleBuffer: TSampleBuffer): Boolean;

begin

// Use the captured sample buffer to authenticate the user’s iris

// Return True if the iris is authenticated, False otherwise

end;

In this example, we use TCameraComponent to capture the user’s iris and pass it to the AuthenticateIris function, which performs the actual authentication. If the authentication is successful, we display a message to the user.

  1. Signature Recognition

Delphi 11.3 includes a library called TSignatureCaptureDevice that provides access to the device’s touchscreen. You can use this library to capture the user’s signature and authenticate it. Here’s an example of how you can use TSignatureCaptureDevice to authenticate a user’s signature:

uses

FMX.SignatureCapture, System.SysUtils;

procedure TForm1.Button1Click(Sender: TObject);

var

SignatureCaptureDevice: TSignatureCaptureDevice;

begin

SignatureCaptureDevice := TSignatureCaptureDevice.Create(Self);

try

SignatureCaptureDevice.OnSignature := SignatureReady;

SignatureCaptureDevice.Active := True;

except

SignatureCaptureDevice.Free;

ShowMessage(‘Touchscreen not available.’);

end;

end;

procedure TForm1.SignatureReady(Sender: TObject; const ABitmap: TBitmap);

begin

// Use the captured bitmap to authenticate the user’s signature

if AuthenticateSignature(ABitmap) then

begin

ShowMessage(‘Authentication successful!’);

end

else

begin

ShowMessage(‘Authentication failed!’);

end;

end;

function TForm1.AuthenticateSignature(const ABitmap: TBitmap): Boolean;

begin

// Use the captured bitmap to authenticate the user’s signature

// Return True if the signature is authenticated, False otherwise

end;

In this example, we use TSignatureCaptureDevice to capture the user’s signature and pass it to the AuthenticateSignature function, which performs the actual authentication. If the authentication is successful, we display a message to the user.

These are just a few examples of how you can implement biometric authentication in Delphi 11.3. By using the tools and libraries provided by Delphi 11.3, you can provide your users with a secure and convenient way to access their accounts.

In conclusion, Delphi 11.3 provides a range of tools and libraries that make it easy to implement biometric authentication in your projects. Whether you’re using fingerprint recognition or facial recognition, Delphi 11.3 has you covered. By using these tools and libraries, you can provide your users with a secure and convenient way to access their accounts.

--

--