G gyang Unregistered / Unconfirmed GUEST, unregistred user! 2003-12-01 #1 已知窗体的 Handle<br>如何单独创建这个窗体 及 单独显示(Show)这个窗体呢?<br>(创建是单独一个过程,显示也是一个单独的过程,也就是说这两步要单独完成)<br>窗体的TComponentClass不定,可能是任意TForm的继承类(可能是n层)
已知窗体的 Handle<br>如何单独创建这个窗体 及 单独显示(Show)这个窗体呢?<br>(创建是单独一个过程,显示也是一个单独的过程,也就是说这两步要单独完成)<br>窗体的TComponentClass不定,可能是任意TForm的继承类(可能是n层)
H hqiang Unregistered / Unconfirmed GUEST, unregistred user! 2003-12-01 #2 不明白,没创建哪来的handle<br>如果要问动态创建的话:<br>ex:<br> var<br> xx:tform;<br>begin<br> xx:=tform.create(nil);<br> xx.show;<br>end;
不明白,没创建哪来的handle<br>如果要问动态创建的话:<br>ex:<br> var<br> xx:tform;<br>begin<br> xx:=tform.create(nil);<br> xx.show;<br>end;
G gyang Unregistered / Unconfirmed GUEST, unregistred user! 2003-12-01 #3 可能是我打字的时候打错了,不好意思<br>我是指,<br>从另一个已创建的窗体中(其它的EXE或DLL),得到了Handle<br>现在要显示这个窗体(不能用ShowWindow API),如何做到,最好还能返回来这个窗体的TComponentClass
可能是我打字的时候打错了,不好意思<br>我是指,<br>从另一个已创建的窗体中(其它的EXE或DLL),得到了Handle<br>现在要显示这个窗体(不能用ShowWindow API),如何做到,最好还能返回来这个窗体的TComponentClass
H hqiang Unregistered / Unconfirmed GUEST, unregistred user! 2003-12-01 #5 exe我没使用过不太清楚<br>dll倒是使用过<br>dll的中的窗体模态与非模态的创建是不一样的,我不知道你是那类窗体<br>模态的话,和普通的设计时候一般使用就是我上面的那些代码类似<br>非模态具体可以这么使用:<br>application.handle:=dll中窗体的handle<br>显示窗体代码就可以<br><br>主要原因是dll自己也拥有一个独立的application对象
exe我没使用过不太清楚<br>dll倒是使用过<br>dll的中的窗体模态与非模态的创建是不一样的,我不知道你是那类窗体<br>模态的话,和普通的设计时候一般使用就是我上面的那些代码类似<br>非模态具体可以这么使用:<br>application.handle:=dll中窗体的handle<br>显示窗体代码就可以<br><br>主要原因是dll自己也拥有一个独立的application对象
G gyang Unregistered / Unconfirmed GUEST, unregistred user! 2003-12-03 #6 又如说<br>我得到了一个DLL或EXE程序的某个窗体的Handle<br>现在我要用那一个自己写的程序显示这个DLL或EXE上的这个窗体<br>(当然这个窗体已经创建过了,只是没有显示出来,)<br>应该说清楚了吧。。。。<br><br>还有一个小问题:<br>根据一个窗体的Handle,获得它的实例<br>如:vHandle := Form1.Handle;<br>目的:根据这个vHandle反回这Form1(Form1: TForm)
又如说<br>我得到了一个DLL或EXE程序的某个窗体的Handle<br>现在我要用那一个自己写的程序显示这个DLL或EXE上的这个窗体<br>(当然这个窗体已经创建过了,只是没有显示出来,)<br>应该说清楚了吧。。。。<br><br>还有一个小问题:<br>根据一个窗体的Handle,获得它的实例<br>如:vHandle := Form1.Handle;<br>目的:根据这个vHandle反回这Form1(Form1: TForm)
H hqiang Unregistered / Unconfirmed GUEST, unregistred user! 2003-12-03 #7 已经知道handle的窗体的话,用sendmessage,showwindow都可以
G gyang Unregistered / Unconfirmed GUEST, unregistred user! 2003-12-03 #8 就是不想直接用API,用delphi自己的方法,有没有
桦 桦树皮 Unregistered / Unconfirmed GUEST, unregistred user! 2003-12-03 #9 如果说有API能直接解决为什么还用Delphi自己的方法呢?
H hqiang Unregistered / Unconfirmed GUEST, unregistred user! 2003-12-03 #10 .................晕,有api干什么不用,说白了不管什么方法都是调用api
W watsonyin Unregistered / Unconfirmed GUEST, unregistred user! 2003-12-04 #12 我宁愿用API,起码速度更快。<br><br>显示窗口<br>showwindow(handle,sw_show);<br><br>取得窗口类名<br>procedure TForm1.Button1Click(Sender: TObject);<br>var<br> s:array[0..127] of char;<br>begin<br> getclassname(handle,s,127);<br> showmessage(strpas(s));<br>end;
我宁愿用API,起码速度更快。<br><br>显示窗口<br>showwindow(handle,sw_show);<br><br>取得窗口类名<br>procedure TForm1.Button1Click(Sender: TObject);<br>var<br> s:array[0..127] of char;<br>begin<br> getclassname(handle,s,127);<br> showmessage(strpas(s));<br>end;
T tranke Unregistered / Unconfirmed GUEST, unregistred user! 2003-12-17 #14 偶认为什么方法的最终都是调用API!<br>这不是同样的原理了吗!
A Another_eYes Unregistered / Unconfirmed GUEST, unregistred user! 2003-12-17 #15 如果考虑跨平台需要还是有一定实用意义的