檢查特殊字元的簡單VCL

2021-04-17 07:06:02 字數 3134 閱讀 7459

這是個很簡單的元件,編寫它的目的也很單純,就是想解決資料錄入時的特殊字元檢查問題。一開始要寫函式實現,不過覺得麻煩,後來就想到寫乙個簡單的vcl來遍歷form上所有的元件的方法。這個vcl目前只是檢查所有的tedit和tcombobox元件,有興趣的朋友可以自己擴充功能。

我想這個vcl對於編寫資料庫程式的人員來說還是有一點幫助的,比如對單引號的check。

想要檢查什麼符號只要在屬性中設定一下就搞定,而且執行時只需要執行乙個checking函式,他就會自動檢查咯。

它的另乙個作用就是可以作為編寫vcl的簡單入門例程。

unit symbolchecker;

inte***ce

uses

windows, messages, sysutils, classes, controls,stdctrls,dialogs,strutils;

type

tcheckcontrol = (ctedit, ctcombobox);

tcheckcontrols = set of tcheckcontrol;

tsymbolchecker = class(tcomponent)

private

factive: boolean;

fcheckcontrols:tcheckcontrols;

fcheckstring:string;

procedure setactive(value: boolean);

procedure setcheckcontrols(value: tcheckcontrols);

procedure setcheckstring(value: string);

protected

public

constructor create(aowner: tcomponent); override;

published

procedure checking();

property active: boolean read factive write setactive default false;

property checkcontrols: tcheckcontrols read fcheckcontrols write setcheckcontrols default [ctedit, ctcombobox];

property checkstring: string read fcheckstring write setcheckstring;

end;

procedure register;

implementation

procedure register;

begin

registercomponents('myvcl', [tsymbolchecker]);

end;

constructor tsymbolchecker.create(aowner: tcomponent);

begin

inherited create(aowner);

checkcontrols := [ctedit, ctcombobox];

end;

procedure tsymbolchecker.setactive(value: boolean);

begin

if value = factive then exit;

factive := value;

end;

procedure tsymbolchecker.setcheckcontrols(value: tcheckcontrols);

begin

if value = fcheckcontrols then exit;

fcheckcontrols := value;

end;

procedure tsymbolchecker.setcheckstring(value: string);

begin

if value = fcheckstring then exit;

fcheckstring := value;

if trim(fcheckstring) = '' then setactive(false);

end;

procedure tsymbolchecker.checking();

vari,j:integer;

begin

if factive then

begin

for i:= 0 to owner.componentcount - 1 do

begin

if (owner.components[i] is tedit) and (ctedit in checkcontrols) then

begin

for j :=1 to length(trim(fcheckstring)) do

begin

if pos(midstr(trim(fcheckstring),j,1),tedit(owner.components[i]).text)>0 then

begin

showmessage('error symbol!');

tedit(owner.components[i]).setfocus;

exit;

end;

end;

end;

if (owner.components[i] is tcombobox) and (ctcombobox in checkcontrols) then

begin

for j :=1 to length(trim(fcheckstring)) do

begin

if pos(midstr(trim(fcheckstring),j,1),tcombobox(owner.components[i]).text)>0 then

begin

showmessage('error symbol!');

tcombobox(owner.components[i]).setfocus;

exit;

end;

end;

end;

end;

end;

end;

end.

最後要說明一點的是它是用delphi6寫的。

shell的特殊字元

點 命令 點 命令是乙個shell內部命令,它可以使使用者在當前的shell中執行程式,而不建立子程序。注釋 shell指令碼的注釋符號 重定向符 用法 command filename,可以將command的輸出儲存在filename檔案中。同 類似,但表示追加。用法 command filena...

特殊字元的分隔

特殊字元的分隔 system.out.println 方法一 string aa sss ccc string vv aa.split system.out.println 以 分隔的陣列長度 vv.length system.out.println 方法二 string bb aaaa cccc ...

特殊的空格字元

特殊的空格字元 author 大風 在asp程式設計中,我們常常使用trim rtrim ltrim 函式去掉一些資料的開頭和結尾的空格,筆者最近寫了乙個asp聊天室,有下面的一段 dim name,title name trim request.form name password trim re...