如何根据窗体的句柄,如果和给窗体中的memo赋值

解决方案 »

  1.   

    为什么要根据窗体的句柄给窗体的Memo赋值呢?
    直接根据窗体名给其Memo赋值不快多了?
    获取句柄还是要知道窗体名
    var
      fHandle: THandle;
    begin
      fHandle:= FindWindowEx(0,0,nil,'Form1');
    end;
    如果fHandle不为0就是你要的窗体句柄了!
      

  2.   

    假设你的窗口类名叫TAAForm,句柄变量为handle
    for i := 0 to screen.formcount do 
      if (screen.forms[i].handle = handle) and (screen.forms[i] is TAAForm) then 
      begin 
        TAAForm(screen.forms[i]).memo.lines.add('text');
        break; 
      end;
      

  3.   

    找到窗口和控件的句柄,然后SENDMESSAGE
      

  4.   

    根据窗口句柄,枚举子窗体,枚举过程根据Memo类名获取到Memo句柄function enumWin(AhWnd: HWND; AlParam: lParam): boolean; stdcall;
    var bufClassName: array[0..255] of Char;
      findClassName: string;
    begin
      GetClassName(AhWnd, bufClassName, 255);
      findClassName := StrPas(bufClassName);
      if findClassName = 'TMemo' then
      begin
        MemoHwnd = AhWnd;
      end
      Result := true;
    end;然后SENDMESSAGE给Memo句柄
    SendMessage(MemoHwnd, WM_SETTEXT, 0, LongInt(Pchar('你的文字')));
      

  5.   

    显示窗口前面有人说了,就不说了 
    赋值,假设是给一个Memo赋值: 
    根据窗口句柄,枚举子窗体,枚举过程根据Memo类名获取到Memo句柄 function enumWin(AhWnd: HWND; AlParam: lParam): boolean; stdcall; 
    var bufClassName: array[0..255] of Char; 
      findClassName: string; 
    begin 
      GetClassName(AhWnd, bufClassName, 255); 
      findClassName := StrPas(bufClassName); 
      if findClassName = 'TMemo' then 
      begin 
        MemoHwnd = AhWnd; 
      end 
      Result := true; 
    end; 然后SENDMESSAGE给Memo句柄 
    SendMessage(MemoHwnd, WM_SETTEXT, 0, LongInt(Pchar('你的文字')));=================================================================
    以上文字来自 WTS  用户的解答 由于此人把该回答发到了另外一个帖子中,偶特别把他的回复搬过来