如果A/B/C/D/E窗体不引用主窗体, 能不能调用主窗体的过程或者是函数或者能不能访问主窗体的某个控件。
解决方案 »
- microsoft jet 数据库引擎打不开文件,它已经被别的用户以独占方式打开 或没有查看数据的权限
- 服务程序,安装反安装GOOGLE/BAIDU无解,高分求大神
- 例如我有一可执行文件,将该文件绑定在word文档上,打开word文档相当也执行该可执行文件.如何实现?
- 菜鸟问:unit中IdUDPServer如何赋OnUDPRead事件?
- 哪儿有delphi的在中文帮助?
- 关于检测代理服务器是否可用?
- 手机放在自己位子上消失,狂郁闷,散分~~~~~~~~~~~
- 菜鸟问题,简单的查询,谢谢
- bookmark
- delphi5与delphi6能否存
- delphi处理paradox表它们支持临时表吗?
- 关于对象的释放技术
2,但可以通过消息来控制,不过比较复杂;因为要用FINDWINDOWEX来找HANDLE;
怎么做
lpClassName: PChar; {a pointer to a null terminated class name string}
lpWindowName: PChar {a pointer to a null terminated window name string}
): HWND; 函数功能:该函数获得一个顶层窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配。这个函数不查找子窗口。在查找时不区分大小写。
参数:
IpClassName :指向一个指定了类名的空结束字符串,或一个标识类名字符串的成员的指针。如果该参数为一个成员,则它必须为前次调用theGlobafAddAtom函数产生的全局成员。该成员为16位,必须位于IpClassName的低 16位,高位必须为 0。IpWindowName:指向一个指定了窗口名(窗口标题)的空结束字符串。如果该参数为空,则为所有窗口全匹配。返回值:如果函数成功,返回值为具有指定类名和窗口名的窗口句柄;如果函数失败,返回值为NULL。var Wnd : HWnd;
Wnd := FindWindow('Notepad',Nil);
如果你在窗体F引用主窗体,做个函数调用主窗体的过程或者是函数
A/B/C/D/E窗体引用F窗体,调用F窗体的函数,就可以间接调用主窗体的过程或者是函数.
总之变通的方法很多,不要死脑筋
Parent: HWND; {a handle to a parent window}
Child: HWND; {a handle to a child window}
ClassName: PChar; {a pointer to a null terminated class name string}
WindowName: PChar {a pointer to a null terminated window name string}
): HWND; {returns a handle to a window}函数功能:该函数获得一个窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配。这个函数查找子窗口,从排在给定的子窗口后面的下一个子窗口开始。在查找时不区分大小写。参数;
hwndParent:要查找子窗口的父窗口句柄。
如果hwnjParent为NULL,则函数以桌面窗口为父窗口,查找桌面窗口的所有子窗口。
Windows NT5.0 and later:如果hwndParent是HWND_MESSAGE,函数仅查找所有消息窗口。
hwndChildAfter :子窗口句柄。查找从在Z序中的下一个子窗口开始。子窗口必须为hwndPareRt窗口的直接子窗口而非后代窗口。如果HwndChildAfter为NULL,查找从hwndParent的第一个子窗口开始。如果hwndParent 和 hwndChildAfter同时为NULL,则函数查找所有的顶层窗口及消息窗口。
lpszClass:指向一个指定了类名的空结束字符串,或一个标识类名字符串的成员的指针。如果该参数为一个成员,则它必须为前次调用theGlobaIAddAtom函数产生的全局成员。该成员为16位,必须位于lpClassName的低16位,高位必须为0。
lpszWindow:指向一个指定了窗口名(窗口标题)的空结束字符串。如果该参数为 NULL,则为所有窗口全匹配。返回值:如果函数成功,返回值为具有指定类名和窗口名的窗口句柄。如果函数失败,返回值为NULL。Wnd:=FindWindowEx(Wnd,0,'Edit',Nil);
因为现有100多个窗体, 每个窗体都需要调用主窗体的 菜单,(也就是每个窗体启动的时候把 窗体的标题写在 菜单-->窗口 的条目里,)如果是系统自带的菜单就直接可以访问了, application.mianform.menu
但这个菜单是第三方控件 这样做是没有用的。var Wnd : HWnd;
Wnd := FindWindow('Notepad',Nil); 哪里能做到
下面是怎样操作一个TADOQuery控件,其他类似。
qry1为TfmFavorit类中的一个TADOQuery控件,
执行qry1 := Query;后就可以在TfmFavorit中操作qry1(代码略去),相当于操作Query,
当然Query是主窗体里面的一个TADOQuery控件了。
procedure MoveURLFromFavorit(Query: TADOQuery; StrPath: string);
begin
with TfmFavorit.Create(nil) do
try
qry1 := Query;
InitForm;
ShowModal;
finally
Free;
end;
end;