问题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.   

    //为了占第一名,先贴出两个来,一会儿再贴
    //问题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;
      

  2.   

    //第3个问题答案也出来了
    procedure TForm1.Button3Click(Sender: TObject);
    var
    i:integer;
    begin
    for i:=0 to form1.ControlCount-1 do
        if (form1.Controls[i] is TEdit)or(form1.Controls[i]is TButton) then
           begin
           showmessage('已找到');
           break;
           end;
    end;
      

  3.   

    2樓關於第三題的答案是錯誤的
    大致思路是:
    1. 使用enumchildwindow函數來枚舉窗體中的控件,該函數需要使用第2步中聲明的迴調函數
    2. 聲明一個迴調函數,該函數用來接收enumchildwindow枚舉的句柄,使用getclassname來獲取類名,可知是否為Edit或者Button.具體代碼,自己寫吧
      

  4.   

    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;
    这是找一个的,自已改改