這是個很簡單的元件,編寫它的目的也很單純,就是想解決資料錄入時的特殊字元檢查問題。一開始要寫函式實現,不過覺得麻煩,後來就想到寫乙個簡單的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...