ITのこと

H4S Lab.

XE5でiOSアプリケーションをiOSシュミレータに配置できなくなった

環境:Delphi XE5 Update2 FireMonkey, Mac OS X Mountain Lion, Xcode 5.1

Xcodeを5.1にバージョンアップしたら、iOSアプリケーションをiOSシュミレータに配置できなくなってしまった。

実行時、下記エラーが表示される
「次のエラーが返されました:'Wrapper init failed:(null)'」

  • Hotfixがあったので適用してみる

Hotfix 6 for RAD Studio, Delphi, C++Builder XE5 Update 2 is now available
http://edn.embarcadero.com/article/43728

29795 Hotfix 6 for RAD Studio, Delphi, C++Builder XE5 Update 2
http://cc.embarcadero.com/Item/29795

  • Hotfix6を適用するためmacのターミナルを実行

言われるがままsudoを実行するが、unixコマンドなんてよくわからないので色々調べてみる

unixコマンドの ls -l で以下を確認!

・iosinstallファイルの所有権がrootになっている
・sim51ファイルのグループ所有権がwheelになっている
・simulator-execファイルのアクセス権限が -rwxr-xr-x@ なので755?になっている

という事で、Hotfix6を正常に適用できた

しかし、同じエラーが出る・・・

  • 試しに Mac OS X Mavericksのマシンで hotfix6を適用してみる

うまくいった・・・

という事は、Mountain Lionではダメ、MavericksならOK!らしい?

今後気をつけよう。


TDirectoryでディレクトリとファイルのリストを取得する

Delphi 2010あたりから追加されたTDirectoryでディレクトリとファイルのリストを取得してみる

環境:Delphi XE2 FireMonkey

 

TDirectoryのGetDirectoriesを呼び出すだけでディレクトリのリストを取得できる

同じ感じでGetFilesでファイルのリストを取得できる(簡単!)

f:id:st_h4s:20140122193021p:plain

リスト取得の条件を付加したい場合は、GetDirectoriesにパラメータを追加するだけ(簡単!)

これからは、こっちを使おう

 

結果は、↓こんな感じ

f:id:st_h4s:20140122193113p:plain

 

 

 

XE2でTabOrderをセットしてもタブ順が変更されない

XE2でTabOrderをセットしてもタブ順が変更されないので無理矢理変更してみる

環境:Delphi XE2(Update4)FireMonkey

 

XE2のバグだったかなぁ?良く覚えていないけどタブ順が変更されない問題を解決してみる

ちょっと無理矢理だけど

  1. フォームで右クリック
  2. エディタで表示するを選択して↓こんな表示にする

    f:id:st_h4s:20140122190341p:plain

  3. objectをコピー&ペーストして任意のタブ順に並べ替える
  4. 終わり

 

これ以外の方法として以前試した方法は、

コントロールのKeyUpイベントでネクストコントロール制御するとかだったかなぁ

 

 

TStringListのソート順

改めてTStringListのソート順を確認する

環境:Delphi XE2 FireMonkey

TStringListに数字と英字(大文字・小文字)をバラバラにaddする

f:id:st_h4s:20140122183607p:plain

 

結果はこんな感じ

f:id:st_h4s:20140122183821p:plain

数字は文字列ソートなのでこんな感じになることは予測していたが、

英字は大文字・小文字をソートしない事が判明(というか私は知らなかった)

大文字・小文字はTStringListのadd順なので今後気をつけよう

↑ CaseSensitiveプロパティをTrueにして、大文字・小文字を区別してソート出来る事が判明

 

 

Delphi XE5 FireMonkeyのTGridのセルを描画してみる

Delphi XE5 FireMonkeyのTGridのセルを描画するため

TPanelColumnを自作してPanelのOnPaintイベントで描画してみる

 

  1. TColumnを継承したTPanelColumnと、今のところ意味はないけどTPanelを継承したTPanelCellクラスを宣言する

    f:id:st_h4s:20131204152414p:plain

  2. CreateCellControlをオーバーライドしてPanelCellを生成

    f:id:st_h4s:20131204152436p:plain

  3. PanelCellのOnPaintイベントで特定のセルを描画

    f:id:st_h4s:20131204152450p:plain

  4. FormCreateでTPanelColumnを追加

    f:id:st_h4s:20131204152509p:plain

  5. iOSシュミレータで確認

    f:id:st_h4s:20131204152545p:plain 


Kindle Paperwhite(ニューモデル)

Kindle Paperwhite(ニューモデル)

  
Kindle Fire HD 7 8GB タブレット

Kindle Fire HD 7 8GB タブレット

 

 

サンプルコード

 

Delphi XE5 FireMonkeyのTGridを試してみた

Delphi XE5 FireMonkeyのTGridをiOSシュミレータで表示確認してみた

 

  1. 項目デザイナでTColumn・TCheckColumn・TStringColumn・TProgressColumn・TPopupColumn・TImageColumnを追加する

    f:id:st_h4s:20131129151345p:plain

  2. CheckColumnの奇数行にチェックをいれる

    f:id:st_h4s:20131129153758p:plain

    f:id:st_h4s:20131129153813p:plain

  3. StringGridに文字列をセットする

    f:id:st_h4s:20131129160027p:plain

    f:id:st_h4s:20131129155957p:plain

  4. ProgressColumnに数値をセットする

    f:id:st_h4s:20131129160431p:plain

    f:id:st_h4s:20131129160440p:plain

  5. PopupColumnにアイテムをセットする

    f:id:st_h4s:20131129162958p:plain

    f:id:st_h4s:20131129163009p:plain

  6. ImageColumnに画像を表示させる

    f:id:st_h4s:20131129174157p:plain

    f:id:st_h4s:20131129174204p:plain

  7. 最後に全て表示

    f:id:st_h4s:20131129174646p:plain

 

Delphiオブジェクト指向プログラミング (ソフトウェアテクノロジー)

Delphiオブジェクト指向プログラミング (ソフトウェアテクノロジー)

 

 

サンプルコード