读书人

新手子窗口怎么调用父窗口的方法

发布时间: 2012-03-31 13:13:26 作者: rapoo

新手求助,子窗口如何调用父窗口的方法
如题,本人delphi菜鸟,现在用delphi写了一个简易浏览器(被逼的),然后又因为要通过js和应用程序进行一些交互,因此做了一个扩展。

Delphi(Pascal) code
unit UMyExternal;interfaceuses  Classes, ComObj, Article22_TLB,Windows, Messages, SysUtils, Variants, Graphics,Controls, Forms,  Dialogs, OleCtrls, SHDocVw, ComCtrls, StdCtrls,IniFiles,ActiveX,MSHTML;type  TMyExternal = class(TAutoIntfObject, IMyExternal, IDispatch)  private    fData: TStringList; // info from data file    procedure ShowSBMsg(const Msg: string); // helper method  protected    { IMyExternal methods }    function GetPrecis(const ProgID: WideString): WideString;      safecall;    procedure ShowURL(const ProgID: WideString); safecall;    procedure HideURL; safecall;    procedure flashShow; safecall;    procedure flashHide; safecall;    procedure SetVideoOpen; safecall;  public    constructor Create;    destructor Destroy; override;  end;implementationuses    StdActns;{ TMyExternal }procedure TMyExternal.SetVideoOpen;begin  // 就是这里,我想让主窗口的一个控件显示出来,应该怎么做。。end;constructor TMyExternal.Create;var  TypeLib: ITypeLib;    // type library information  ExeName: WideString;  // name of our program's exe filebegin  // Get name of application  ExeName := ParamStr(0);  // Load type library from application's resources  OleCheck(LoadTypeLib(PWideChar(ExeName), TypeLib));  // Call inherited constructor  inherited Create(TypeLib, IMyExternal);  // Create and load string list from file  fData := TStringList.Create;  //fData.LoadFromFile(ChangeFileExt(ExeName, '.dat'));end;


现在问题出来了,我想在这个扩展的方法中调用主窗口的方法,以此来控制各种组件的状态。


请教各位大侠,我该怎么做,最好能给出代码片段,小弟感激不尽。。

[解决办法]
主窗口的一个控件显示出来?显示到子窗口上?

uses Main;
procedure TMyExternal.SetVideoOpen;
begin
mainform.控件名称.Visible := true;
end;
又或者是:mainform.控件名称.Parent := self; ???

没怎么理解,不知道对不对
[解决办法]
探讨
谢谢大家,我想实现的是让 主窗口的一个控件显示出来, 方法越简单越好。

to: case5166 ,我应该怎样做才可以拿到 mainform

[解决办法]
给Application.MainForm发送消息,mainform实现该消息的处理函数,主窗自行控制组件状态。需要传额外信息,可将消息的LParam或wParam利用起来。
[解决办法]
最简单的,比如你的主窗体是Form1,单元名是unit1,则
uses unit1;


Form1.XXOO.visible:=True;

读书人网 >.NET

热点推荐