program Dmv;
uses
  Forms,
  Dmv1 in 'DMV1.PAS' {Main},
  Dmv2 in 'DMV2.PAS' {SrchDlg};

{$R *.RES}

begin
  Application.CreateForm(TMain, Main);
  Application.CreateForm(TSrchDlg, SrchDlg);
  Application.Run;
end.

unit Dmv1;
interface

uses
  SysUtils, Windows, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls, ExtCtrls,
  DBCtrls, Menus, DMV2;

type
  TMain = class(TForm)
    Exit: TButton;
    dbgDriver: TDBGrid;
    DrivQuery: TQuery;
    tableDriver: TTable;
    dsDriver: TDataSource;
    QueryResults: TDataSource;
    MainMenu1: TMainMenu;
    Driver1: TMenuItem;
    Find1: TMenuItem;
    ByName1: TMenuItem;
    ByNumber1: TMenuItem;
    AllRecords1: TMenuItem;
    DBNavigator1: TDBNavigator;
    DrivQueryDrivNum: TStringField;
    DrivQueryName: TStringField;
    DrivQueryAddress: TStringField;
    DrivQueryLicenseClass: TStringField;
    procedure ExitClick(Sender: TObject);
    procedure ByName1Click(Sender: TObject);
    procedure ByNumber1Click(Sender: TObject);
    procedure AllRecords1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Main: TMain;

implementation

{$R *.DFM}

procedure TMain.ExitClick(Sender: TObject);
begin
 Application.Terminate;
end;

procedure TMain.ByName1Click(Sender: TObject);
begin
 SrchDlg.Caption := 'Driver Name Search';
 SrchDlg.ShowModal;
 DrivQuery.SQL.Clear;
 DrivQuery.SQL.Add(format('SELECT * FROM DRIVER WHERE Name LIKE "%%%s%%"',
                          [SrchDlg.Srch.Text]));
 DrivQuery.Open;
 if DrivQuery.RecordCount > 1 then
 begin
  Application.MessageBox('More then one match found',
              'Please make search more explicit', mb_OK);
  DrivQuery.Close;
 end;
end;

procedure TMain.ByNumber1Click(Sender: TObject);
begin
 SrchDlg.Caption := 'Driver Licence Number Search';
 SrchDlg.ShowModal;
 DrivQuery.SQL.Clear;
 DrivQuery.SQL.Add(format('SELECT * FROM DRIVER WHERE DrivNum LIKE "%%%s%%"',
                          [SrchDlg.Srch.Text]));
 DrivQuery.Open;
 if DrivQuery.RecordCount > 1 then
 begin
  Application.MessageBox('More then one match found',
              'Please make search more explicit', mb_OK);
  DrivQuery.Close;
 end;

end;

procedure TMain.AllRecords1Click(Sender: TObject);
begin
 DrivQuery.Close;
end;

end.

unit Dmv2;
interface

uses
  SysUtils, Windows, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls;

type
  TSrchDlg = class(TForm)
    Label1: TLabel;
    Srch: TEdit;
    OK: TButton;
    procedure OKClick(Sender: TObject);
    procedure FormActivate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  SrchDlg: TSrchDlg;

implementation

{$R *.DFM}

procedure TSrchDlg.OKClick(Sender: TObject);
begin
 Close;
end;

procedure TSrchDlg.FormActivate(Sender: TObject);
begin
 Srch.Text := '';
end;

end.