|  | 
 
| 
 
 
 
 
 The sample requires a objective-p compiler (fpc 2.5.1 or higher) with cocoaint packages compiled for iPhone
 上面代码编译后的效果:复制代码program project1;  {$mode objfpc}{$H+} {$modeswitch objectivec1} {$linkframework UIKit}   uses   iPhoneAll, CGContext, CGGeometry, CFString;   type   TAppDelegate = objcclass(NSObject)     procedure applicationDidFinishLaunching(application: UIApplication); message 'applicationDidFinishLaunching:';   end;     TMyWindow = objcclass(UIWindow)   public     procedure drawRect(c: CGRect); override;   end;  const   helloworld = 'Hello world';   // window paint method procedure TMyWindow.drawRect(c: CGRect); var   cg : CGContextRef; begin   // getting current context   cg:=UIGraphicsGetCurrentContext;   // setting back ground color   CGContextSetRGBFillColor(cg, 0, 0, 0.5, 1);   CGContextFillRect(cg, c);     // rotating up-side down context   CGContextTranslateCTM(cg, 0, c.size.height);   CGContextScaleCTM(cg, 1, -1);     // setting text color   CGContextSetRGBFillColor(cg, 1, 1, 0, 1);   CGContextSetRGBStrokeColor(cg, 1, 1, 0, 1);   // setting font  (must set any)   CGContextSelectFont(cg, 'Helvetica', 30, kCGEncodingMacRoman);   // rendering text   CGContextShowTextAtPoint(cg, 0, c.size.height-50, helloworld, length(helloworld)); end;  var   mainwindow : TMyWindow;  { TAppDelegate }  procedure TAppDelegate.applicationDidFinishLaunching(application: UIApplication); begin   // application has initialized, now we can create the main window   mainwindow:=TMyWindow(TMyWindow.alloc);   // initialize window in Objective-C style   mainwindow := TMyWindow(mainwindow.initWithFrame (UIScreen.mainScreen.bounds));   // activate and show the window   mainwindow.makeKeyAndVisible; end;  function NSStr(const s: string): NSString; begin   // converting string to NSString (CFStringRef and NSString are interchangable)   Result:=NSString( CFStr(PChar(s))); end;  var   pool    : NSAutoreleasePool; begin   // initialize foundation memory manger (aka autorelease pool)   pool := NSAutoreleasePool.alloc.init;   // launching main application loop   ExitCode:=UIApplicationMain(argc, argv, nil, NSSTR('TAppDelegate'));   // according to docs the UIApplicationMain never returns,   // but still the code present in the Obj-C main.m files   pool.release; end.
 
 Written from scratch simple arkanoid game UIKit and GoreGraphics games for iPhone/iPod.:
 
 
 真的假的?准备开始支持iphone了?期待啊...
 | 
 |