如何根据窗体的句柄,如果和给窗体中的memo赋值
解决方案 »
- 如何在DBGrid中加载单选框列?
- 数据库备份
- 此程序怎么不显示窗口?(不要用隐藏窗口的方法实现,dos窗口也不行,因为它是越小越好)
- 我用API函做了一个文件收发程序客户机向服务器发,我想做成服务器同时能收好几个请求,急急急急急急
- 求教dbgridg与数据库方面的问题,上次问题不明确,这次希望各位大侠能帮我解决。
- 我用dede反编译报错?
- 如何解决这个问题,关于方便用户输入的选择框
- 在编译Delphi5工程时候,提示找不到***.dcu,请问为什么?
- 初学delphi
- 在database desktop中建的*.db表,现无法打开了,怎么办?
- [求助]关于二进制文件格式
- delphi 内存映射 键盘钩子 出现访问地址错误。
直接根据窗体名给其Memo赋值不快多了?
获取句柄还是要知道窗体名
var
fHandle: THandle;
begin
fHandle:= FindWindowEx(0,0,nil,'Form1');
end;
如果fHandle不为0就是你要的窗体句柄了!
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;
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('你的文字')));
赋值,假设是给一个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 用户的解答 由于此人把该回答发到了另外一个帖子中,偶特别把他的回复搬过来