OSDN Git Service

・板一覧更新の処理メッセージを追加
[gikonavigoeson/gikonavi.git] / RegExpTester.pas
1 unit RegExpTester;
2
3 interface
4
5 uses
6   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7   Dialogs, StdCtrls;
8
9 type
10   TRegExpTest = class(TForm)
11     Label1: TLabel;
12     TargetEdit: TEdit;
13     Label2: TLabel;
14     RegExpEdit: TEdit;
15     TestButton: TButton;
16     CloseButton: TButton;
17     procedure TestButtonClick(Sender: TObject);
18     procedure FormShow(Sender: TObject);
19     procedure FormCreate(Sender: TObject);
20   private
21     { Private \90é\8c¾ }
22     FRegExp: String;
23   public
24     { Public \90é\8c¾ }
25     procedure SetRegExp(const src: String);
26   end;
27
28 var
29   RegExpTest: TRegExpTest;
30
31 implementation
32
33 uses bmRegExp;
34
35 {$R *.dfm}
36
37
38 procedure TRegExpTest.FormCreate(Sender: TObject);
39 var
40     CenterForm: TCustomForm;
41 begin
42     CenterForm := TCustomForm(Owner);
43     if Assigned(CenterForm) then begin
44         Left := ((CenterForm.Width - Width) div 2) + CenterForm.Left;
45         Top := ((CenterForm.Height - Height) div 2) + CenterForm.Top;
46     end else begin
47         Left := (Screen.Width - Width) div 2;
48         Top := (Screen.Height - Height) div 2;
49     end;
50 end;
51
52 procedure TRegExpTest.SetRegExp(const src: String);
53 begin
54     FRegExp := src;
55 end;
56
57 procedure TRegExpTest.FormShow(Sender: TObject);
58 begin
59     RegExpEdit.Text := FRegExp;
60 end;
61
62 procedure TRegExpTest.TestButtonClick(Sender: TObject);
63 var
64     AWKStr: TAWKStr;
65         RStart: Integer;
66         RLength: Integer;
67 begin
68     if (TargetEdit.Text = '') then begin
69         Application.MessageBox('\91Î\8fÛ\95\8e\9a\97ñ\82ð\8ew\92è\82µ\82Ä\82­\82¾\82³\82¢\81B', PChar(Caption), MB_OK or MB_ICONERROR);
70         Exit;
71     end;
72     if (RegExpEdit.Text = '') then begin
73         Application.MessageBox('\90³\8bK\95\\8c»\82ð\8ew\92è\82µ\82Ä\82­\82¾\82³\82¢\81B', PChar(Caption), MB_OK or MB_ICONERROR);
74         Exit;
75     end;
76
77         AWKStr := TAWKStr.Create(nil);
78         try
79         AWKStr.RegExp := RegExpEdit.Text;
80         if (AWKStr.Match(AWKStr.ProcessEscSeq(TargetEdit.Text), RStart, RLength) > 0) then
81             Application.MessageBox('\83}\83b\83`\82µ\82Ü\82µ\82½\81B', PChar(Caption), MB_OK or MB_ICONINFORMATION)
82         else
83             Application.MessageBox('\83}\83b\83`\82µ\82Ü\82¹\82ñ\82Å\82µ\82½\81B', PChar(Caption), MB_OK or MB_ICONWARNING);
84         except
85                 on E: Exception do
86             ShowMessage(E.Message);
87     end;
88         FreeAndNil(AWKStr);
89 end;
90
91 end.