请问  怎样得到  一个窗体里面有很多richedit的句柄,意思是我要分别列出他们各自的句柄,该怎样操作?注:单个的能找到,我要分别列出来 ,怎么做,我使用循环没有起作用, 请教一下各位

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      i:integer;
      richeditarr: array[1..100] of trichedit;
      richeditcount:integer;
    begin
      //取得窗口所有RICHEDIT控件存入控件数组
      richeditcount:=0;
      for i := self.componentcount-1 downto 0 do
          if self.components[i] is trichedit then
          begin
            richeditcount:=richeditcount+1;
            richeditarr[richeditcount]:= trichedit(self.components[i]);
          end;
      //列出这些RICHEDIT控件的名称
      for i:=1 to richeditcount do
          memo1.Lines.Add(richeditarr[i].Name );
    end;
      

  2.   

    楼上的 我的意思是得到 别人程序(我没有原代码) 里面有很多 richedit  我想把这些richedit的每一个句柄都列出来,该怎样做?
      

  3.   

    var
      hWin,hCurr : HWND;
    begin
      hWin := ;//假设父窗体已经找到
      hCurr := 0;
      repeat
        hCurr := FindWindowEx(hWin,hCurr,'TRichEdit',0);
        ShowMessage(IntToStr(hCurr));
      until(hCurr = 0);
    end;