2013-10-13
展开全部
如果是仅仅对数字进行判断可以进行调用字符串向数字转换的函数如inttostr,通过异常扑捉来判定。 如对整型输入字符串的处理
:
try
IntoStr("你的输入")
except
Message("输入非法")
end
如果是字母和数字 那么只能通过循环一个一个字符进行ASCII码范围校验了
Delphi提供的字符串操作函数:
Pos在字符串中查找指定字符串的位置,用于文字的查找
Delete删除字符串中从指定位置开始指定数量的字符
Insert在字符串指定文字开始插入字符串
Copy返回字符串中指定位置的一定长度的字符串
Length返回指定字符串的长度
:
try
IntoStr("你的输入")
except
Message("输入非法")
end
如果是字母和数字 那么只能通过循环一个一个字符进行ASCII码范围校验了
Delphi提供的字符串操作函数:
Pos在字符串中查找指定字符串的位置,用于文字的查找
Delete删除字符串中从指定位置开始指定数量的字符
Insert在字符串指定文字开始插入字符串
Copy返回字符串中指定位置的一定长度的字符串
Length返回指定字符串的长度
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-10-13
展开全部
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
procedure Edit1Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Edit1Enter(Sender: TObject);
procedure Edit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
qi: integer;
qStr: string;
implementation
{$R *.dfm}
procedure TForm1.Edit1Change(Sender: TObject);
var
str: string;
i: integer;
begin
str := Edit1.Text;
i := Length(Edit1.Text); //第一个字符a的Ascii码
if i-qi <=0 then
begin
Exit;
// Edit1.SelStart := i-1;
end;
if i-qi>1 then
begin
Edit1.Text := qStr;
Edit1.SelStart := i;
Exit;
end;
if i - qi = 1 then begin
if not (ord(Str[i]) in [48..57,65..90,97..122]) then
begin
Edit1.Text := qStr;
Edit1.SelStart := i + 1;
Exit;
end
else begin
qi := Length(Edit1.Text);
qStr := Edit1.Text;
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
qi := Length(Edit1.Text);
qStr := Edit1.Text;
end;
procedure TForm1.Edit1Enter(Sender: TObject);
begin
Edit1.SelLength := 0;
end;
procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Edit1.SelLength <> 0 then
Edit1.SelLength := 0;
end;
end.
还有可以用MaskEdit控件,比较简单,我就不写了
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
procedure Edit1Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Edit1Enter(Sender: TObject);
procedure Edit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
qi: integer;
qStr: string;
implementation
{$R *.dfm}
procedure TForm1.Edit1Change(Sender: TObject);
var
str: string;
i: integer;
begin
str := Edit1.Text;
i := Length(Edit1.Text); //第一个字符a的Ascii码
if i-qi <=0 then
begin
Exit;
// Edit1.SelStart := i-1;
end;
if i-qi>1 then
begin
Edit1.Text := qStr;
Edit1.SelStart := i;
Exit;
end;
if i - qi = 1 then begin
if not (ord(Str[i]) in [48..57,65..90,97..122]) then
begin
Edit1.Text := qStr;
Edit1.SelStart := i + 1;
Exit;
end
else begin
qi := Length(Edit1.Text);
qStr := Edit1.Text;
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
qi := Length(Edit1.Text);
qStr := Edit1.Text;
end;
procedure TForm1.Edit1Enter(Sender: TObject);
begin
Edit1.SelLength := 0;
end;
procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Edit1.SelLength <> 0 then
Edit1.SelLength := 0;
end;
end.
还有可以用MaskEdit控件,比较简单,我就不写了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-10-13
展开全部
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9', 'A'..'Z', 'a'..'z', #8, #46]) then
Key := #0;
end;
begin
if not (Key in ['0'..'9', 'A'..'Z', 'a'..'z', #8, #46]) then
Key := #0;
end;
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以通过Edit1控件的KeyPress事件来进行控制。
KeyPress中有个参数Key,当键盘输入时。你可以对Key进行判断,
下面是一个只接收0-9,小数点和退格、回车、ESC的例子:
If not (Key in ['0'..'9','.',#27,#13,#8]) then
Key:=#0
Else
Key:=SendKey;
end;
KeyPress中有个参数Key,当键盘输入时。你可以对Key进行判断,
下面是一个只接收0-9,小数点和退格、回车、ESC的例子:
If not (Key in ['0'..'9','.',#27,#13,#8]) then
Key:=#0
Else
Key:=SendKey;
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以先将你抓到的包保存到文件 主要代码: /* 回调函数,用来处理数据包 */ void packet_handler(u_char *dumpfile, const struct pcap_pkthdr *header, const u_char *pkt_data) { /* 保存数据包到堆文件 */ pcap_dump(dumpfile, header,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询