📄 parserfm.~pas
字号:
unit ParserFm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons, XPMan;
type
TParserForm = class(TForm)
Label1: TLabel;
EdtInput: TEdit;
LBWords: TListBox;
BtnAddWord: TBitBtn;
BtnFindAdd: TBitBtn;
BtnDellWord: TBitBtn;
BtnSort: TBitBtn;
BtnClearAll: TBitBtn;
EdtInputWord: TEdit;
Label2: TLabel;
StaticText1: TStaticText;
RGSort: TRadioGroup;
BtnAdd: TBitBtn;
XPManifest1: TXPManifest;
procedure BtnAddClick(Sender: TObject);
procedure BtnAddWordClick(Sender: TObject);
procedure BtnFindAddClick(Sender: TObject);
procedure BtnDellWordClick(Sender: TObject);
procedure BtnSortClick(Sender: TObject);
procedure BtnClearAllClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
ParserForm: TParserForm;
implementation
{$R *.dfm}
//**********************************************************
function IsAlphabet(c:char):boolean;
begin
if((c>='a')and(c<='z'))or((c>'A')and(c<'Z')) then
Result:=True
else
Result:=False;
end;
//**********************************************************
function IsAWord(s:String):boolean;
var
Index:integer;
T:string;
begin
T:=Trim(S);
Index:=1;
while Index<=Length(T)do
begin
if not IsAlphabet(T[Index])then
Result:=False;
Inc(Index);
end;
Result:=True;
end;
//**********************************************************
procedure TParserForm.BtnAddClick(Sender: TObject);
var
S,T:string;
InWord:boolean;
Index,FirstChar:Integer;
begin
LBWords.Items.Clear;
S := EdtInput.Text +' ';
InWOrd:=False;
Index:=1;
FirstChar:=1;
while Index <= Length(s) do
begin
T:=Copy(S,Index,1);
if((T>='a')and(T<='z'))or((T>'A')and(T<'Z'))then //??
begin
if not InWord then //??
FirstChar:=Index;
Inword:=True;
end
else if T=' ' then
begin
if InWord then
begin
T:=Copy(S,FirstChar,Index-FirstChar);
LBWords.Items.Add(T);
InWord:=False;
end;
end
else
begin
showMessage('你的输入有误');
Break;
end;
Inc(Index);
end;
end;
//**********************************************************
procedure TParserForm.BtnAddWordClick(Sender: TObject);
var
S:string;
begin
S:=Trim(EdtInputWord.Text);
if IsAWord(S) then
LBWords.Items.Add(s)
else
showmessage('输入的单词有误');
end;
//**********************************************************
procedure TParserForm.BtnFindAddClick(Sender: TObject);
var
S:string;
Index:integer;
begin
s:=Trim(EdtInputWord.Text);
Index:=LBWords.Items.IndexOf(s);
if index=-1 then
showmessage('末找到'+s)
else
LBWords.Selected[index]:=true;
end;
//**********************************************************
procedure TParserForm.BtnDellWordClick(Sender: TObject);
begin
LBWords.Items.Delete(LBwords.ItemIndex); //??
end;
//**********************************************************
procedure TParserForm.BtnSortClick(Sender: TObject);
begin
if RGSort.ItemIndex =0 then //??
Lbwords.Sorted :=true
else
Lbwords.Sorted:=false;
end;
//**********************************************************
procedure TParserForm.BtnClearAllClick(Sender: TObject);
begin
lbwords.Clear ;
end;
//**********************************************************
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -