Marco Web Center

[an error occurred while processing this directive]

Home: Code Repository: Mastering Delphi 6

Chapter 04 - Project StrDemo

Project Structure

StrDemo.dpr
program StrDemo;

uses
  Forms,
  StrForm in 'StrForm.pas' {Form1};

{$R *.RES}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
StrForm.pas
unit StrForm;

interface

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

type
  TForm1 = class(TForm)
    EditResemble1: TEdit;
    EditResemble2: TEdit;
    ButtonResemble: TButton;
    ListBoxMatch: TListBox;
    EditMatch: TEdit;
    ButtonMatches: TButton;
    ButtonIndex: TButton;
    EditSample: TEdit;
    ButtonTriplicate: TButton;
    ButtonReverse: TButton;
    ButtonRandom: TButton;
    procedure ButtonResembleClick(Sender: TObject);
    procedure ButtonMatchesClick(Sender: TObject);
    procedure ButtonIndexClick(Sender: TObject);
    procedure ButtonTriplicateClick(Sender: TObject);
    procedure ButtonReverseClick(Sender: TObject);
    procedure ButtonRandomClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    strArray: array of string;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

uses
  StrUtils;

procedure TForm1.ButtonResembleClick(Sender: TObject);
begin
  ShowMessage (BoolToStr (AnsiResemblesText (EditResemble1.Text, EditResemble2.Text), True));
end;

procedure TForm1.ButtonMatchesClick(Sender: TObject);
begin
  ShowMessage (BoolToStr (AnsiMatchText(EditMatch.Text, strArray), True));
end;

procedure TForm1.ButtonIndexClick(Sender: TObject);
var
  nMatch: Integer;
begin
  nMatch := AnsiIndexText(EditMatch.Text, strArray);
  ShowMessage (IfThen (nMatch >= 0,
    'Matches the string number ' + IntToStr (nMatch),
    'No match'));
end;

procedure TForm1.ButtonTriplicateClick(Sender: TObject);
begin
  ShowMessage (DupeString (EditSample.Text, 3));
end;

procedure TForm1.ButtonReverseClick(Sender: TObject);
begin
  ShowMessage (ReverseString (EditSample.Text));
end;

procedure TForm1.ButtonRandomClick(Sender: TObject);
begin
  ShowMessage (RandomFrom (strArray));
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  I: Integer;
begin
  SetLength (strArray, ListBoxMatch.Items.Count);
  for I := 0 to ListBoxMatch.Items.Count - 1 do
    strArray [I] := ListBoxMatch.Items [I];

  // set the random seed, for the RandomFrom calls
  Randomize;
end;

end.
StrForm.dfm
object Form1: TForm1
  Left = 196
  Top = 112
  Width = 489
  Height = 334
  Caption = 'StrDemo'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  OnCreate = FormCreate
  PixelsPerInch = 96
  TextHeight = 13
  object EditResemble1: TEdit
    Left = 64
    Top = 24
    Width = 121
    Height = 21
    TabOrder = 0
    Text = 'Cantù'
     end
  object EditResemble2: TEdit
    Left = 296
    Top = 24
    Width = 121
    Height = 21
    TabOrder = 1
    Text = 'Cantu'
  end
  object ButtonResemble: TButton
    Left = 200
    Top = 24
    Width = 75
    Height = 25
    Caption = 'Resembles?'
    TabOrder = 2
    OnClick = ButtonResembleClick
  end
  object ListBoxMatch: TListBox
    Left = 296
    Top = 88
    Width = 121
    Height = 113
    ItemHeight = 13
    Items.Strings = (
      'one'
      'two'
      'three'
      'four'
      'five'
      'six'
      'seven'
      'eight')
    TabOrder = 3
  end
  object EditMatch: TEdit
    Left = 64
    Top = 128
    Width = 121
    Height = 21
    TabOrder = 4
    Text = 'four'
  end
  object ButtonMatches: TButton
    Left = 200
    Top = 96
    Width = 75
    Height = 25
    Caption = 'Matches Text'
    TabOrder = 5
    OnClick = ButtonMatchesClick
  end
  object ButtonIndex: TButton
    Left = 200
    Top = 128
    Width = 75
    Height = 25
    Caption = 'Index Text'
    TabOrder = 6
    OnClick = ButtonIndexClick
  end
  object EditSample: TEdit
    Left = 64
    Top = 232
    Width = 121
    Height = 21
    TabOrder = 7
    Text = 'sample text'
  end
  object ButtonTriplicate: TButton
    Left = 200
    Top = 216
    Width = 75
    Height = 25
    Caption = 'Triplicate'
    TabOrder = 8
    OnClick = ButtonTriplicateClick
  end
  object ButtonReverse: TButton
    Left = 200
    Top = 248
    Width = 75
    Height = 25
    Caption = 'Reverse'
    TabOrder = 9
    OnClick = ButtonReverseClick
  end
  object ButtonRandom: TButton
    Left = 200
    Top = 160
    Width = 75
    Height = 25
    Caption = 'Random'
    TabOrder = 10
    OnClick = ButtonRandomClick
  end
end