私はDelphiで消費されるWebviewインターフェイスを変換し始めました。私はロードするWebkitライブラリを取得することができ、呼び出されたインタフェースメソッドは正しく動作するように見えますが、メインフォームにWebviewを表示することはできません。以下はDelphi XE2を使用してMacOSでWebviewが表示されない
WebFrameClass = interface(NSObjectClass)
['{7BE750C8-DFEC-4870-851A-12DBCB0B78F6}']
end;
WebFrame = interface(NSObject)
['{BCFA04BE-41AB-4B78-89C0-3330F12C7695}']
procedure loadRequest(request: NSURLRequest); cdecl;
end;
TWebFrame = class(TOCGenericImport<WebFrameClass, WebFrame>) end;
WebViewClass = interface(NSViewClass)
['{0D9F44B7-09FD-4E35-B96E-8DB71B9A2537}']
{class} function canShowMIMEType(MIMEType: NSString): Boolean; cdecl;
end;
WebView = interface(NSView)
['{C36D8016-2FCB-49F0-BA1C-C9913A37F9AC}']
procedure clos; cdecl;
procedure setHostWindow(hostWindow: NSWindow); cdecl;
function initWithFrame(frame: NSRect; frameName: NSString; groupName: NSString): Pointer; cdecl;
function mainFrame: WebFrame; cdecl;
end;
TWebView = class(TOCGenericImport<WebViewClass, WebView>) end;
を宣言し、ここでのWebViewを構築するために、コードに次のされて、私のインターフェイスです:
procedure TForm2.Button1Click(Sender: TObject);
var
PWebView: Pointer;
FwkMod: HMODULE;
MyWebView: WebView;
urlStr: NSURL;
urlreq: NSURLRequest;
const
WebKitFWK: string = '/System/Library/Frameworks/WebKit.framework/WebKit';
begin
FwkMod := System.SysUtils.LoadLibrary(PWideChar(WebKitFWK));
PWebView := TWebView.Alloc.initWithFrame(MakeNSRect(10, 10, 300, 300), nil, nil);
MyWebView := TWebView.Wrap(PWebView);
urlStr := TNSURL.Create;
urlstr.initWithString(NSSTR('http://google.com.au/'));
urlreq := TNSURLRequest.Create;
urlreq.initWithURL(urlstr);
MyWebView.mainFrame.loadRequest(urlreq);
end;
コードが例外を上げることなく実行し、ちょうど表示したくはありません。 Delphiでは何を別の方法で行う必要がありますか?客観的なCの例は非常に単純なようです。
私はIBOutletsについて言及しました。これはDelphiに関連しているようには見えません。
How to make WebView OSX Xcode project load a URL on launch?
感謝。
デルファイはフォームを表示するのにCocoaしか使用しないので、他のものはすべてQuartzを使って表示されます。 Yousは、Cocoa用の完全なvclを記述することなく、Cocoaオブジェクトを表示するべきではありません。 –
Free PascalはObjective Pascalを介してCocoaにインタフェースし、インタフェースやD2010 rtti(FPCはまだサポートしていません)ではなく、 "freepascal"は適切なタグではないかもしれません。あなたがこの問題に興味があるなら、LCL Cocoaバックエンドの大まかなスタートがあります。 (基本的なフォームサポートが働いています) –
@HenriGourvest私がしたいのは、webviewコントロールを備えた基本フォームを表示することです - 石英なしのココアだけを使用する方法はありますか? –