这里可以,为什么那里就不可以?(100分)

  • 主题发起人 主题发起人 jomee
  • 开始时间 开始时间
J

jomee

Unregistered / Unconfirmed
GUEST, unregistred user!
这段可以正常编译:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
hCurrentWindow : HWnd;
szText : array[0..254] of char;
begin
hCurrentWindow := GetWindow(Handle, GW_HWNDFIRST);
while hCurrentWindow <> 0 do
begin
if GetWindowText(hCurrentWindow, @szText, 255)>0 then
Memo1.Lines.Add(StrPas(@szText));
hCurrentWindow:=GetWindow(hCurrentWindow, GW_HWNDNEXT);
end;
end;

我想把她独立成一个函数放在unit2,可是就出错了:
function GetWindowcaption:string;
var
hCurrentWindow : HWnd;
szText : array[0..254] of char;
begin
hCurrentWindow := GetWindow(Handle, GW_HWNDFIRST);//这里Handie就过不去了,应该怎么办?
while hCurrentWindow <> 0 do
begin
if GetWindowText(hCurrentWindow, @szText, 255)>0 then
Result:=StrPas(@szText);
hCurrentWindow:=GetWindow(hCurrentWindow, GW_HWNDNEXT);
end;
end;
 
Handle是Form1的,可以通过参数带过来嘛
 
我带了。
function GetWindowcaption(cc:HWnd):string;
var
hCurrentWindow : HWnd;
szText : array[0..254] of char;
begin
hCurrentWindow := GetWindow(cc, GW_HWNDFIRST);
while hCurrentWindow <> 0 do
begin
if GetWindowText(hCurrentWindow, @szText, 255)>0 then
Result:=StrPas(@szText);
hCurrentWindow:=GetWindow(hCurrentWindow, GW_HWNDNEXT);
end;
end;

可以编译,但结果不一样了。
 
procedure TForm1.BitBtn1Click(Sender: TObject);
中返回Form1的Handle
而function GetWindowcaption:string;
中就找不到了
 
把GetWindowcaption函数定义成你的TForm类中的成员函数,在定义该函数时为
function TForm1.GetWindowcaption:string;
^^^^^^^
 
接受答案了.
 
后退
顶部