開発ブログ - Delphiカテゴリのエントリ
VCL XE7
LiveBindings で CustomFormat を設定しても
一向に反映されない
いや、デザインモードでは見えるのだが
実行してみると反映されていない
LiveBindings のバグなのかと思って、色々と試してみた
全然わからない
結局、フレームのせいだった
フレームで、grid と PrototypeBindSource を設定して
そのフレームをフォームに張り付けていたのだが
どうもメインのフォームに張り付けたフレームで
IfThen などのCustomFormat が削除されてしまうのだ
何度やってもダメ
Bind 関係の uses が足りないせいか?と思って
色々追加するが結局ムダ
張り付けて一回目のコンパイルはOKなのに
その後、すでにデザインモードで動作しなくなっている!!
そして再度コンパイルすると当然ダメ!
これひどい
LiveBindings で CustomFormat を設定しても
一向に反映されない
いや、デザインモードでは見えるのだが
実行してみると反映されていない
LiveBindings のバグなのかと思って、色々と試してみた
全然わからない
結局、フレームのせいだった
フレームで、grid と PrototypeBindSource を設定して
そのフレームをフォームに張り付けていたのだが
どうもメインのフォームに張り付けたフレームで
IfThen などのCustomFormat が削除されてしまうのだ
何度やってもダメ
Bind 関係の uses が足りないせいか?と思って
色々追加するが結局ムダ
張り付けて一回目のコンパイルはOKなのに
その後、すでにデザインモードで動作しなくなっている!!
そして再度コンパイルすると当然ダメ!
これひどい
TList は無名メソッドでソートできる
TObjectList の sortは TComparer を使って行う
TObjectList
uses
System.Generics.Defaults, System.Generics.Defaults,
...
List.Sort(TComparer<TFooBar>.Construct(
function(const Item1, Item2: TFooBar): Integer
begin
Result := Item1.Prop1 - Item2.Prop1;
end));
)
Berlin upd2
TListBox に AddObject するときに
TListBoxItem を
のようにして作成すると
RemoveObject したときにメモリリークを起こしてしまった。
作成時に
とすれば、メモリリークは発生しなかった
TListBox に AddObject するときに
TListBoxItem を
ListBoxItem := TListBoxItem.Create(nil);
...
ListBox.AddObject(ListBoxItem);
のようにして作成すると
RemoveObject したときにメモリリークを起こしてしまった。
作成時に
ListBoxItem := TListBoxItem.Create(ListBox);
とすれば、メモリリークは発生しなかった
RAD Studio XE7
既存のプロジェクトを git で管理しようと
git init をしてから
RAD Studio で
Git - コミット - リポジトリルート以下
からコミットしたところ
エラーが発生してしまいました!
gitk を起動してみたところ
リビジョン解析エラー
となります
無視して git gui を起動すると
日本語ファイル名のついたファイルだけが add されていない状態。
git gui から add してコミットしたところ、無事完了して一安心
日本語ファイル名があるとだめなのかな?
既存のプロジェクトを git で管理しようと
git init をしてから
RAD Studio で
Git - コミット - リポジトリルート以下
からコミットしたところ
エラーが発生してしまいました!
gitk を起動してみたところ
リビジョン解析エラー
となります
無視して git gui を起動すると
日本語ファイル名のついたファイルだけが add されていない状態。
git gui から add してコミットしたところ、無事完了して一安心
日本語ファイル名があるとだめなのかな?
XE5 で作っていたアプリケーションを 10 Seattle でコンパイルしてみました
FMX.Controls.TControl.DesignVisible がなくなっているようで
エラーが...
ちょっと便利に使っていたりしたので、困ってしまいました...
結構色々変わりますねー
FMX.Controls.TControl.DesignVisible がなくなっているようで
エラーが...
ちょっと便利に使っていたりしたので、困ってしまいました...
結構色々変わりますねー
最近の PAServer のバージョン番号は RADStudioの内部バージョン番号と同じです。
前の方が分かりやすかったんだけど...
自分で使っていたバージョンの組み合わせをメモっておきます
ところで PAServerManager って以前は PAServer Manager だったのね
何か違うのかな?
XCode 6.3.2 iOS 7.1, 8.1, 8.2
前の方が分かりやすかったんだけど...
自分で使っていたバージョンの組み合わせをメモっておきます
XE5 | RAD PAServer XE5 | XCode 4.6.3?
(XE6 | RAD PAServer XE6 | XCode 4.6.3?)
XE7 | PAServer 15.0 | XCode 5.1.1? | (PAServer Manager)
(XE8 | PAServer 16.0 | Yosemite | XCode 6.3.2? | (PAServerManager))
10 | PAServer-17.0 | Yosemite | XCode 6.3.2? | (PAServerManager)
ところで PAServerManager って以前は PAServer Manager だったのね
何か違うのかな?
XCode 6.3.2 iOS 7.1, 8.1, 8.2
それぞれのプラットフォームで扱えるビットマップデータの種類は以下の模様です。
Windows = bmp, gif, jpg, hdp, ico, png, .tif
MacOS = bmp, icns, jpg, gif, png, tif, tga
iOS = jpg, png
Android = gif, jpg, png
iOS のことを考えると jpg, png の2択
写真系なら jpg 通常の画像なら png ということ
FMX.Graphics.TBitmapCodecManager
Windows = bmp, gif, jpg, hdp, ico, png, .tif
MacOS = bmp, icns, jpg, gif, png, tif, tga
iOS = jpg, png
Android = gif, jpg, png
iOS のことを考えると jpg, png の2択
写真系なら jpg 通常の画像なら png ということ
FMX.Graphics.TBitmapCodecManager
■リモートへの接続
■SSH接続の鍵設定(鍵の生成)
接続するたびにパスワードを入力するのは大変なので、SSH接続鍵を交換します。
まずは自分の SSH接続鍵があるか確認。
git bash で
ここで id_rsa や id_rsa.pub があれば、その鍵を利用できるので、以下はスキップ
保存場所、パスフレーズなどはデフォルトのままで enter
再度 ls ~/.ssh するとid_rsa.pub ができている筈です。
■SSH接続の鍵設定(鍵をサーバに設定)
対象のリモートサーバに id_rsa.pub をコピー
SSH して
以上で完了
■その他
push しようとすると
bash: git-receive-pack: commad not found
と言われて失敗してしまいました。
リモートサーバには正しく git をインストールして、.bashrc でパスを通してあるのですが、ssh でコマンド実行した際には .bashrc を読んでくれないため、コマンドが見つからないようです。
(注)リモートサーバが origin の場合
とします。
で確認をしてみると、なぜかパスに C:/Program Files/Git/ が追加されてしまっています!!
困ってしまったので、直接 .git/config をエディタで開いて修正しました。
■SSH接続の鍵設定(鍵の生成)
接続するたびにパスワードを入力するのは大変なので、SSH接続鍵を交換します。
まずは自分の SSH接続鍵があるか確認。
git bash で
ls ~/.ssh
ここで id_rsa や id_rsa.pub があれば、その鍵を利用できるので、以下はスキップ
ssh-keygen -t rsa -C "メールアドレス"
保存場所、パスフレーズなどはデフォルトのままで enter
再度 ls ~/.ssh するとid_rsa.pub ができている筈です。
■SSH接続の鍵設定(鍵をサーバに設定)
対象のリモートサーバに id_rsa.pub をコピー
SSH して
cat id_rsa.pub >> .ssh/authorized_keys
以上で完了
■その他
push しようとすると
bash: git-receive-pack: commad not found
と言われて失敗してしまいました。
リモートサーバには正しく git をインストールして、.bashrc でパスを通してあるのですが、ssh でコマンド実行した際には .bashrc を読んでくれないため、コマンドが見つからないようです。
git config remote.origin.receivepack <i>リモートサーバのgit binフォルダ</i>/git-receive-pack
git config remote.origin.uploadpack <i>リモートサーバのgit binフォルダ</i>/git-upload-pack
(注)リモートサーバが origin の場合
とします。
git config -l
で確認をしてみると、なぜかパスに C:/Program Files/Git/ が追加されてしまっています!!
困ってしまったので、直接 .git/config をエディタで開いて修正しました。
■既存のソースをGITで管理
git bash を起動
既存のプロジェクトフォルダに移動
git リポジトリを初期化
その後 RAD Studio から
Git - コミット - リポジトリルート以下
バージョン管理対象外のファイルを表示する チェックを付ける
一覧のファイルからチェックボックスにチェックを付けていく
.gitignore をうまく設定してあれば、全選択でいけるかも...
■リモートリポジトリへ
(事前にリモート側でリポジトリを作っておく必要はない)
git clone --bare project1 //server/project1/project1.git
■リモートを登録
git remote add origin //server/project1/project1.git
[例]
例えば coreserver なら
ssh://username@mxxx.coreserver.jp/virtual/username/git/project1/project1.git
のような感じ...
[参考]
4.2 Git サーバー - サーバー用の Git の取得
既存のディレクトリをGit管理化して、それを基にリモートリポジトリを作る
git bash を起動
既存のプロジェクトフォルダに移動
cd d:\project1
git リポジトリを初期化
git init
その後 RAD Studio から
Git - コミット - リポジトリルート以下
バージョン管理対象外のファイルを表示する チェックを付ける
一覧のファイルからチェックボックスにチェックを付けていく
.gitignore をうまく設定してあれば、全選択でいけるかも...
■リモートリポジトリへ
(事前にリモート側でリポジトリを作っておく必要はない)
git clone --bare project1 //server/project1/project1.git
■リモートを登録
git remote add origin //server/project1/project1.git
[例]
例えば coreserver なら
ssh://username@mxxx.coreserver.jp/virtual/username/git/project1/project1.git
のような感じ...
[参考]
4.2 Git サーバー - サーバー用の Git の取得
既存のディレクトリをGit管理化して、それを基にリモートリポジトリを作る
■git をインストール
git を windows にインストールする
オプションはほぼデフォルトで
download -> https://git-scm.com/download/win
■RAD Studio の設定
ツール - オプション で
バージョン管理 - Git を選択
■.gitignore の設定
Git で管理したくないファイルは .gitignore に書いておけば無視してくれる。
Delphi の場合であれば、以下のような感じ...
(注)
私は中間ファイル(*.dcu)や実行ファイル(*.exe)などの出力場所を、ソースフォルダ以外の場所にしているので上記のような感じだが、標準の設定の場合は以下も追加
git を windows にインストールする
オプションはほぼデフォルトで
download -> https://git-scm.com/download/win
■RAD Studio の設定
ツール - オプション で
バージョン管理 - Git を選択
■.gitignore の設定
Git で管理したくないファイルは .gitignore に書いておけば無視してくれる。
Delphi の場合であれば、以下のような感じ...
__history/
__recovery/
*.identcache
*.dproj.local
*.groupproj.local
*.dsk
*.~dsk
*.~bpl
*.tvsconfig
*.stat
(注)
私は中間ファイル(*.dcu)や実行ファイル(*.exe)などの出力場所を、ソースフォルダ以外の場所にしているので上記のような感じだが、標準の設定の場合は以下も追加
*.dcu
*.exe