2013年9月23日月曜日

XE5 からのファイル名の設定の仕方。

Delphi Programing

おはようございます。

やましょうです。


xe4で下記の様にファイル設定をしていましたが、
   MediaPlayer.FileName := GetHomePath + PathDelim + 'Documents'+ PathDelim+'NG.mp3';


xe5は下記の様になるようです。


{$IFDEF ANDROID}
    FMediaPlayer.FileName := TPath.GetHomePath + '/NG.mp3';
{$endif}
{$IFDEF IOS}
    FMediaPlayer.FileName := TPath.GetHomePath + '/Documents/NG.mp3'';
{$endif}


ここで、なぜ XCodeでは、Document フォルダーを意識せずに使えたのに。。。
という疑問ですが、Startup内で配置されるからだと思います。、。

追記:
アンドロイドの配置assets\internal\とします。
TPath は
System.IOUtils にて定義されています。
 
以上
やましょうでした。

2013年9月22日日曜日

Delphi Iosで applicaiton.ProcessMessages();同等の動作をさせには?

Delphi Programing

こんばんは、やましょうです。

昨日は、第26回 エンバカデロ・デベロッパーキャンプ お疲れ様でした。
親睦会でやましょうに暖かく接して頂き感謝感激でした。


 さて、本日はWindowsで使用できた。

Application.ProcessMessages()ですが、

Iosですと使えません。。

Delphiでの実装方法です。(追記:10/30Xe4のみ)







procedure form1.WaitMessages();
var
  TimeoutDate: NSDate;
begin
  TimeoutDate := TNSDate.Wrap(TNSDate.OCClass.dateWithTimeIntervalSinceNow(0.1));
  TNSRunLoop.Wrap(TNSRunLoop.OCClass.currentRunLoop).runMode(NSDefaultRunLoopMode, TimeoutDate);
end;
 

またとなる模様。
RunModeや、待ち時間等は必要に応じて、自分で変更してください。




2013年9月10日火曜日

ipaファイル(ios実行ファイル)をwindowsマシンでipad/iphone等に配置する。

Delphi Programing

こんばんは、やましょうです。

さて、本日はdelphi for iosで出来たipaファイルをwindowsやmacで配置する方法です。

ipaファイルを配置するには、iphone構成ユーティリティを用いる事です。
http://www.apple.com/jp/support/iphone/enterprise/

これでwindows側でもアプリの配置ができます。

こんな便利なソフトがあったので、是非、お使いください。


2013年9月8日日曜日

Delphi For iOS でiADを使用する方法

Delphi Programing

こんにちは、やましょうです。


実は全く別のフレームワークを使いたくて、各所に問い合わせしていてたまたま発見
結局 Ios アプリで、お金がもられるらしい。ということは
Delphi 使いのみんなに元気なる=>みんな東北にいって日本が元気って欲しい。
そんな思い込め、みんなでiAdでリッチになりましょう。

それでは、私の実装方法の公開です。
 
元ネタはこちら

実装終了後、のデバッグです。コンパイルエラーもちょっと出ちゃいます。
修正後手持ちのIPhone 4 はOK  IPhone 5はダメ。。あれ??
さて修正が必要ですね。。


1.コンパイルエラーを修正(iOS_Library_iAd.Pas)

  (追記:XE4_ex02_iAd.zipからコンパイルした場合?だけのようです)

 $If defined(CPUARM)}
  procedure XE4_FakeLoader ; cdecl; external libCoreiAd;
{$Else}
 Initialization
  iAdModule := dlopen(MarshaledAString(libCoreiAd), RTLD_LAZY);
 finalization
  dlclose(iAdModule);
{$IfEnd}

2.IPhone/IPad用に位置設定の引数を追加です。

(iOS_Library_iAd.Pas)

Constructor TiOSiAd.Create(Height:integer;Width:integer);//var
//x ,y: integer;
//ws : IFMXWINDOWSERVICE;
 begin
  inherited  Create();
  // initialize --------------------------
  FEvent         := TADBannerViewDelegate.Create;
  FEvent.FOnLoad := nil;
  FEvent.FOnFail := nil;
  //
  FControl :=  TADBannerView.Wrap( TADBannerView.OCClass.alloc);
//FControl.initWithFrame( CGRectMake (0,480-20-50,320,50) );
  FControl.initWithFrame( CGRectMake (0,Height-70,Width,50) );
  FControl.setCurrentContentSizeIdentifier(ADBannerContentSizeIdentifierPortrait);
  FControl.setDelegate(FEvent.GetObjectID);
  //
  FSelf := Self;
 end;


3.アプリソースへの変更点(ここからは各自のアプリへの変更です。)

3-1.use 節にiOS_Library_iAd追加

3-2.ver 節に   iAd : TiOSiAdを追加;

3-3.起動コードの追加

procedure xxxxx.FormCreate(Sender: TObject);
begin
  ....
     iAd := TiOSiAd.Create(Screen.Size.Height,Screen.Size.Width);
     WindowHandleToPlatform(Self.Handle).View.addSubview(iAd.FControl);


end;





iTunesconnect等への登録方法等は、”Xcode iad"等でググってください