2个文本字符问题(一个30分)1个句柄问题(40分)(共100分)
问题1: ( 30分 )
S:string;
V:string;
begin
S:='dd4djj2j3o5a9';
end;
要求:删除S变量里的英文,将数字赋予到V变量中.
问题2: ( 30分 )
S:string;
begin
S:='Dell删phii删'
end;
要求:pos S变量里的'删'和'删'前面一个字符 得到结果:S:='delphi'
问题3: (40分 )
枚举对话框句柄(类名:#32770)(无标题),并查找是否包含:'Button'和'Edit' 2个构件
如果有,将此对话框的标题改成:'已找到'
当日散分有效 考试题目
[解决办法]
//为了占第一名,先贴出两个来,一会儿再贴
//问题1:
procedure TForm1.Button1Click(Sender: TObject);
type
TNumCharSet=set of '0'..'9';
var
NumCharSet:TNumCharSet;
S,V:string;
i:integer;
begin
NumCharSet:=['0'..'9'];
S:= 'dd4djj2j3o5a9 ';
V:='';
for i:=1 to length(S) do
if S[i] in NumCharSet then
V:=V+S[i];
showmessage(V);
end;
//问题2:
procedure TForm1.Button2Click(Sender: TObject);
function DelChar(S:Widestring):string;
Var
i,len:integer;
begin
i:=pos('删',S);
len:=length(S);
result:=copy(S,1-1,i-2)+copy(S,i+1,len-i);
end;
var
S:WideString;
i:integer;
begin
S:='Dell删phii删';
i:=pos('删',S);
while i>0 do
begin
S:=DelChar(S);
i:=pos('删',S);
end;
showmessage(s);
end;
[解决办法]
function Callchat(h:hwnd;param:Lparam):boolean;stdcall; //edit and button handle
var
buf:array[0..255] of char;
buff:array[0..255] of char;
text:array [0..12] of string;
txt:string;
begin
result:=true;
Getclassname(h,@buf,255);
if strpas(buf)='button' then
begin
Enablewindow(h,true);
texthandle:=h;
result:=false;
end;
end;
procedure TForm1.Button5Click(Sender: TObject); //查找对话框
var
EWProc: EnumWindowsProc;
begin
EWProc := ; //:#32770的句柄
EnumWindows (@Callchat, 0);
end;
这是找一个的,自已改改