怎么读取函数里的返回值?

小小de巫师 2014-03-14 12:27:11
Function EnumChildWndProc(AhWnd: LongInt): String; stdcall;
Var
WndCaption: Array [0 .. 254] of char;
Begin
GetWindowText(AhWnd, WndCaption, 254);
Result := WndCaption;
End;

procedure TForm1.Button5Click(Sender: TObject);
Var
Hwnd: LongInt;
begin
EnumChildWindows(Hwnd, @EnumChildWndProc, 0);
end;

怎么把@EnumChildWndProc的返回值 读出来?
...全文
377 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
simonhehe 2014-03-16
  • 打赏
  • 举报
回复
注意函数用法.
implementation
var
  s : pchar;
{$R *.dfm}

Function EnumChildWndProc(AhWnd: LongInt): boolean; stdcall;
Var
  WndCaption: Array [0 .. 254] of char;
Begin
  GetWindowText(AhWnd, WndCaption, 254);
  s := @WndCaption[0];//你可以把需要的数据传给已经定义的变量
  Result := True;  //该返回值将作为EnumChildWindows函数的返回值传给调用方
End;

procedure TForm2.Button1Click(Sender: TObject);
Var
  Hwnd: LongInt;
  r : boolean;
begin
  s := nil;
  Hwnd := self.Handle;
  r := EnumChildWindows(Hwnd, @EnumChildWndProc, 0);
  if r then
    showmessage(strpas(s));
end;
lightdc4 2014-03-15
  • 打赏
  • 举报
回复
楼主问题没说明清楚吧,估计按照 目前的意思2楼的应该是可以返回了吧。
sololie 2014-03-14
  • 打赏
  • 举报
回复
用参数保存返回值
RayYan 2014-03-14
  • 打赏
  • 举报
回复

procedure TForm1.Button5Click(Sender: TObject);
Var
  Hwnd: LongInt;
  str:string;
begin
  str := EnumChildWindows(Hwnd, @EnumChildWndProc, 0);
end;
新乞丐王子 2014-03-14
  • 打赏
  • 举报
回复
没看明白你想干什么, 挨个取子窗口的标题吗? 那你可以在你的函数中把子窗口的标题添加到一个TListBox里面啊

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧