Marco Web Center

[an error occurred while processing this directive]

Home: Code Repository: Mastering Delphi 5

Project FLDTEXT

Project Structure


FLDTEXT.DPR

program FldText;

uses
  Forms,
  FldTextF in 'FldTextF.pas' {DbaForm};

{$R *.RES}

begin
  Application.Initialize;
  Application.CreateForm(TDbaForm, DbaForm);
  Application.Run;
end.

FLDTEXTF.PAS

unit FldTextF;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Db, DBTables, StdCtrls, Mask, DBCtrls, ExtCtrls, Grids, DBGrids, ComCtrls;

type
  TDbaForm = class(TForm)
    Table1: TTable;
    DataSource1: TDataSource;
    Panel1: TPanel;
    Button2: TButton;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
    DBCheckBox1: TDBCheckBox;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    DBComboBox1: TDBComboBox;
    DBText1: TDBText;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    DBListBox1: TDBListBox;
    Table1LastName: TStringField;
    Table1FirstName: TStringField;
    Table1Department: TSmallintField;
    Table1Branch: TStringField;
    Table1Senior: TBooleanField;
    Table1HireDate: TDateField;
    procedure FormCreate(Sender: TObject);
    procedure Table1DepartmentGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure Table1DepartmentSetText(Sender: TField; const Text: String);
  private
    { Private declarations }
  end;

var
  DbaForm: TDbaForm;

implementation

{$R *.DFM}

procedure TDbaForm.FormCreate(Sender: TObject);
begin
  if not Table1.Exists then
  begin
    Table1.CreateTable;
    ShowMessage ('You can add data to this table'#13 +
      'by using the DbAware example of Chapter 11');
  end;
  Table1.Open;
end;

procedure TDbaForm.Table1DepartmentGetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
  case Sender.AsInteger of
    1: Text := 'Sales';
    2: Text := 'Accounting';
    3: Text := 'Production';
    4: Text := 'Management';
  else
    Text := '[Error]';
  end;
end;

procedure TDbaForm.Table1DepartmentSetText(Sender: TField;
  const Text: String);
begin
  if Text = 'Sales' then
    Sender.Value := 1
  else if Text = 'Accounting' then
    Sender.Value := 2
  else if Text = 'Production' then
    Sender.Value := 3
  else if Text = 'Management' then
    Sender.Value := 4
  else
    raise Exception.Create ('Error in Department field conversion');
end;

end.

FLDTEXTF.DFM

object DbaForm: TDbaForm
  Left = 196
  Top = 109
  Width = 489
  Height = 289
  Caption = 'Workers (Field Text Demo)'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = True
  OnCreate = FormCreate
  PixelsPerInch = 96
  TextHeight = 13
  object Panel1: TPanel
    Left = 0
    Top = 0
    Width = 481
    Height = 41
    Align = alTop
    TabOrder = 0
    object Button2: TButton
      Left = 16
      Top = 8
      Width = 121
      Height = 25
      Caption = '&Add Random Data'
      TabOrder = 0
    end
  end
  object PageControl1: TPageControl
    Left = 0
    Top = 41
    Width = 481
    Height = 221
    ActivePage = TabSheet1
    Align = alClient
    TabOrder = 1
    object TabSheet1: TTabSheet
      Caption = 'Record View'
      object DBText1: TDBText
        Left = 336
        Top = 16
        Width = 42
        Height = 13
        AutoSize = True
        DataField = 'HireDate'
        DataSource = DataSource1
      end
      object Label1: TLabel
        Left = 280
        Top = 16
        Width = 46
        Height = 13
        Caption = 'Hire date:'
      end
      object Label2: TLabel
        Left = 18
        Top = 52
        Width = 51
        Height = 13
        Caption = '&Last Name'
        FocusControl = DBEdit1
      end
      object Label3: TLabel
        Left = 18
        Top = 80
        Width = 50
        Height = 13
        Caption = '&First Name'
        FocusControl = DBEdit2
      end
      object Label4: TLabel
        Left = 18
        Top = 112
        Width = 34
        Height = 13
        Caption = '&Branch'
        FocusControl = DBComboBox1
      end
      object DBNavigator1: TDBNavigator
        Left = 16
        Top = 8
        Width = 240
        Height = 25
        DataSource = DataSource1
        TabOrder = 0
      end
      object DBCheckBox1: TDBCheckBox
        Left = 80
        Top = 144
        Width = 81
        Height = 17
        Caption = '&Senior'
        DataField = 'Senior'
        DataSource = DataSource1
        TabOrder = 1
        ValueChecked = 'True'
        ValueUnchecked = 'False'
      end
      object DBEdit1: TDBEdit
        Left = 80
        Top = 48
        Width = 121
        Height = 21
        DataField = 'LastName'
        DataSource = DataSource1
        TabOrder = 2
      end
      object DBEdit2: TDBEdit
        Left = 80
        Top = 80
        Width = 121
        Height = 21
        DataField = 'FirstName'
        DataSource = DataSource1
        TabOrder = 3
      end
      object DBComboBox1: TDBComboBox
        Left = 80
        Top = 112
        Width = 121
        Height = 21
        DataField = 'Branch'
        DataSource = DataSource1
        ItemHeight = 13
        Items.Strings = (
          'Baltimore'
          'Berlin'
          'Boston'
          'Brasilia'
          'Cape Town'
          'Chicago'
          'Dallas'
          'Denver'
          'Dublin'
          'Las Vegas'
          'London'
          'Los Angeles'
          'Louisville'
          'Mexico City'
          'Miami'
          'Minneapolis'
          'Moscow'
          'New Orleans'
          'New York'
          'Orlando'
          'Rome'
          'Salt Lake City'
          'San Diego'
          'San Francisco'
          'San Jose'
          'Seattle'
          'Singapore'
          'Tokio'
          'Toronto'
          'Vancouver')
        Sorted = True
        TabOrder = 4
      end
      object DBListBox1: TDBListBox
        Left = 280
        Top = 48
        Width = 177
        Height = 113
        DataField = 'Department'
        DataSource = DataSource1
        ItemHeight = 13
        Items.Strings = (
          'Sales'
          'Accounting'
          'Production'
          'Management')
        TabOrder = 5
      end
    end
    object TabSheet2: TTabSheet
      Caption = 'Grid View'
      ImageIndex = 1
      object DBGrid1: TDBGrid
        Left = 0
        Top = 0
        Width = 473
        Height = 193
        Align = alClient
        DataSource = DataSource1
        TabOrder = 0
        TitleFont.Charset = DEFAULT_CHARSET
        TitleFont.Color = clWindowText
        TitleFont.Height = -11
        TitleFont.Name = 'MS Sans Serif'
        TitleFont.Style = []
      end
    end
  end
  object Table1: TTable
    DatabaseName = 'DBDEMOS'
    FieldDefs = <
      item
        Name = 'LastName'
        DataType = ftString
        Size = 20
      end
      item
        Name = 'FirstName'
        DataType = ftString
        Size = 20
      end
      item
        Name = 'Department'
        DataType = ftSmallint
      end
      item
        Name = 'Branch'
        DataType = ftString
        Size = 20
      end
      item
        Name = 'Senior'
        DataType = ftBoolean
      end
      item
        Name = 'HireDate'
        DataType = ftDate
      end>
    StoreDefs = True
    TableName = 'Workers'
    Left = 384
    Top = 8
    object Table1LastName: TStringField
      FieldName = 'LastName'
    end
    object Table1FirstName: TStringField
      FieldName = 'FirstName'
    end
    object Table1Department: TSmallintField
      Alignment = taLeftJustify
      FieldName = 'Department'
      OnGetText = Table1DepartmentGetText
      OnSetText = Table1DepartmentSetText
    end
    object Table1Branch: TStringField
      FieldName = 'Branch'
    end
    object Table1Senior: TBooleanField
      FieldName = 'Senior'
    end
    object Table1HireDate: TDateField
      FieldName = 'HireDate'
    end
  end
  object DataSource1: TDataSource
    DataSet = Table1
    Left = 344
    Top = 8
  end
end