I am trying to develop delphi program with embeded Gecko This is a sample program BrowseWin taken from http://www.ftp.newbielabs.com/Delphi%20Gecko%20SDK/ that I try to change. The program displays xhtml file with SVG inline. the problems are: 1.how to print the page 2. how chane the size of the window. I have writtena a small procedure FormResize that uses SetSize but I am getting acces violation every time I resize the window I output the exe into gecko folder with dll's (xpcom, ...)and folders (chrome, components...)
Can anybody help me please Leszek ------------------- unit Brow10; interface uses nsXPCOM, nsXPCOMGlue, nsTypes, nsError, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type nsIWidget = interface end; nsIBaseWindow = interface(nsISupports) ['{046BC8A0-8015-11d3-AF70-00A024FFC08C}'] procedure InitWindow(parentNativeWindow: Pointer; parentWidget: nsIWidget; x: PRInt32; y: PRInt32; cx: PRInt32; cy: PRInt32); safecall; procedure Create(); safecall; procedure Destroy(); safecall; procedure SetPosition(x: PRInt32; y: PRInt32); safecall; procedure GetPosition(out x: PRInt32; out y: PRInt32); safecall; procedure SetSize(cx: PRInt32; cy: PRInt32); safecall; procedure GetSize(out cx: PRInt32; out cy: PRInt32); safecall; procedure SetPositionAndSize(x: PRInt32; y: PRInt32; cx: PRInt32; cy: PRInt32); safecall; procedure GetPositionAndSize(out x: PRInt32; out y: PRInt32; out cx: PRInt32; out cy: PRInt32); safecall; procedure Repaint(force: PRBool); safecall; function GetParentWidget: nsIWidget; safecall; procedure SetParentWidget(aParentWidget: nsIWidget); safecall; function GetNativeWindow: Pointer; safecall; procedure SetNativeWindow(aNativeWindow: Pointer); safecall; function GetVisibility: PRBool; safecall; procedure SetVisibility(aVisibility: PRBool); safecall; function GetEnabled: PRBool; safecall; procedure SetEnabled(aEnabled: PRBool); safecall; function GetBlurSupression: PRBool; safecall; procedure SetBlurSupression(aBlurSupression: PRBool); safecall; function GetMainWidget: nsIWidget; safecall; procedure SetFocus(); safecall; function GetTitle: PWideChar; safecall; procedure SetTitle(aTitle: PWideChar); safecall; end; nsIWebNavigation = interface(nsISupports) ['{F5D9E7B0-D930-11d3-B057-00A024FFC08C}'] function GetCanGoBack: PRBool; safecall; function GetCanForward: PRBool; safecall; procedure GoBack(); safecall; procedure GoForward(); safecall; procedure GotoIndex(index: PRInt32); safecall; procedure LoadURI(uri: PWideChar; loadFlags: PRUint32; referer: nsIURI; postData: nsIInputStream; headers: nsIInputStream); safecall; procedure Reload(reloadFlags: PRUint32); safecall; procedure Stop(stopFlags: PRUint32); safecall; function GetDocument: nsIDOMDocument; safecall; function GetCurrentURI: nsIURI; safecall; function GetReferringURI: nsIURI; safecall; function GetSessionHistory: nsISHistory; safecall; end; nsIDOMWindowInternal = interface(nsISupports) ['{f914492c-0138-4123-a634-6ef8e3f126f8}'] end; nsIWindowMediator = interface(nsISupports) ['{0659cb83-faad-11d2-8e19-b206620a657c}'] function getMostRecentWindow(windowType: PWideChar): nsIDOMWindowInternal; stdcall; end; type TForm1 = class(TForm) procedure FormDestroy(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormResize(Sender: TObject); private { Private declarations } FBrowser: nsIWebBrowser; basewin: nsIBaseWindow; navigation: nsIWebNavigation; public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var wm : nsIWindowMediator; begin GRE_Startup; NS_CreateInstance(NS_WEBBROWSER_CONTRACTID, nsIWebBrowser, FBrowser); basewin := FBrowser as nsIBaseWindow; basewin.InitWindow(Pointer(Handle), nil, 0, 0, ClientWidth, ClientHeight); basewin.Create; basewin.SetVisibility(True); navigation := FBrowser as nsIWebNavigation; navigation.LoadURI('file://L:\PROMED\reportserver\test_wynik20061216.xml/', 0, nil, nil, nil); Tag := 1; end; procedure TForm1.FormDestroy(Sender: TObject); begin FBrowser := nil; GRE_Shutdown; end; //I wrote this procedure, but it does not work procedure TForm1.FormResize(Sender: TObject); begin if Tag = 0 then exit; basewin.SetSize(ClientWidth, ClientHeight); end; end. ------------------- _______________________________________________ dev-embedding mailing list dev-embedding@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-embedding