从Delphi OSX创建NSWindow

时间:2014-01-31 08:36:08

标签: macos delphi delphi-xe2

如何在Delphi for OSX中的代码中创建NSWindow?

这是我尝试过的:

uses Macapi.AppKit,Macapi.CocoaTypes;

...

var
  NW : NSWindow;
begin
  Nw := TNSWindow.Create;
  Nw.initWithContentRect(MakeNSRect(100,100,250,250), NSBorderlessWindowMask, NSBackingStoreBuffered, True);

但是在initWithContentRect行上,我在PAServer窗口“ _setFrameworkScaleFactor with non-nil _borderView ”中遇到运行时错误。

我猜我做错了,但我发现很难找到任何例子。

1 个答案:

答案 0 :(得分:0)

感谢RRUZ的评论(结合像Giel建议的FMX来源),我设法让它发挥作用:

uses Macapi.AppKit, Macapi.CocoaTypes, Macapi.ObjectiveC;

...

var
  Nw : NSWindow;
begin
  Nw:= TNSWindow.Wrap(TNSWindow.alloc.initWithContentRect(
    MakeNSRect(0,100,100, 100),
    NSTitledWindowMask, NSBackingStoreBuffered, True));

  Nw.orderFront( (TNSApplication.Wrap(TNSApplication.OCClass.sharedApplication) as ILocalObject).GetObjectID );
end;