• カテゴリ 技術メモ の最新配信
  • RSS
  • RDF
  • ATOM

開発ブログ - 技術メモカテゴリのエントリ

LiveBindings カスタムフォーマット

カテゴリ : 
技術メモ » Delphi » LiveBindings
執筆 : 
2014/8/25
LiveBindings のカスタム書式ではいくつかのデフォルトの LiveBinding メソッドが使えますが、これだけではなかなかきついですよね。
そんな時には独自のカスタム LiveBinding メソッドを作ることができます。

決まった書き方で関数を作成してパッケージとしてインストールする必要がありますが...

カスタム LiveBinding メソッドの作成

作成したカスタムメソッドがデザイン画面では使えるのに、実行時にエラーが発生する場合には uses に追加すれば使えるようになると思います。
  • コメント (0)
  • トラックバック (0)
TListBindSourceAdapter などを使ってオブジェクトをバインドして使うときに

TBindExpression の SourceExpression で、単純にフィールド名を書くとエラーになってしまいます。
FieldName.Value
と書く必要があるんですね。

LiveBindings 書式設定式に書けるメソッドには
Format(<書式文字列>, <引数 1>, <引数 2>, …)
IfThen(<条件>, <真の場合の値>, <偽の場合の値>)
Lookup(<スコープ ルックアップ>, <キー フィールド>, <キー値>, <結果フィールド>)

など、その他使える式は以下にあります。

デフォルトの LiveBinding メソッド
http://docwiki.embarcadero.com/RADStudio/XE6/en/Default_LiveBindings_Methods
  • コメント (0)
  • トラックバック (0)

LiveBinding ComboBox の初期値を設定する

カテゴリ : 
技術メモ » Delphi » LiveBindings
執筆 : 
2014/6/30
BindSource に対して Locate を使う?
Locate(KeyField, KeyValue)

この時 LiveBindings の設定は
ComboBoxのSynch <-> BindSourceの *
ComboBoxのItem.Text <- BindSourceの 表示フィールド
となっていなければならない
  • コメント (0)
  • トラックバック (0)

XE6 の PAServer に XE5 から接続すると

カテゴリ : 
技術メモ » Delphi
執筆 : 
2014/6/22
Delphi XE5 で OS X の接続プロファイルを作成しようとして、接続テストをしたところ
TDBXTypes.INT32 値型は TDBXTypes.WideString値型としてアクセスできません
と表示されてしまいました。
何が起こっているのかよく分からずいろいろと調べてみました。

ホスト名などが正しくないときには正常に通常のエラーが表示されるので、どうも接続が成功した後にこれが表示されているようです。

と、ここで気が付きました。
Mac 側で起動していた PAServer が XE6 のものだったのです!
XE5 の PAServer を起動して接続プロファイルを作成し直したところ、正常に接続することができました。

気を付けなければ...
  • コメント (0)
  • トラックバック (0)

XE5 -> XE6

カテゴリ : 
技術メモ » Delphi
執筆 : 
2014/5/2
XE5 で作った FireDAC を使ったプロジェクトを XE6 でコンパイルしようとしたところ、いくつかエラーになってしまったので、メモ

■TFDWideMemoField

FireDac を使ったデータモジュールで、TFDWideMemoField がないと言われてしまいました。

http://www.da-soft.com/anydac/embarcadero-firedac-xe6-released.html

どうやら TFDWideMemoField は TWideMemoField に変わったようです。
置き換えたいが、データモジュールを読み込むとエラーになって、対象の部分が消されてしまうのです。

仕方がないので、テキストエディタで DataModule の .dfm を直接開き、TFDWideMemoField をすべて TWideMemoField に置換しました。
同様に .pas も

これで一応OK

■TPolygon

TPolygon もない!
uses に System.Math.Vectors を追加したらOK
  • コメント (0)
  • トラックバック (0)

RAD Studio XE6

カテゴリ : 
技術メモ » Delphi » 全般
執筆 : 
2014/5/1
XE6 のバージョン番号は 13 ではなく 14 なんですね...

必要な領域 18,282MB
使用可能なディスク領域 28,556MB
残りのディスク領域 10,273MB
という状態からインストールを開始したのですが

「ディスクの空き領域が不足しています」
35,675MB用意しろと...
相変わらず謎なインストーラーです

結局
「ディスク領域が足りません」
必要な領域 16MB
利用可能な領域 10MB
と言われ...
どうすればいいんだ?!

仕方がないので一時ファイルの展開をするドライブを追加して、環境変数TEMP,TMPにそのドライブを指定してみましたが、やはり領域は足りない...orz

セットアップに使用する言語でjapaneseを選んでいるのに French と German の zip も展開されているのね...
これらは必要ないかと思って消してみたら、インストール時にエラーになってしまった(涙)やり直し...

結局システムドライブの領域を空けられなかったので、圧縮して対応。(あーあ)

再インストールして完了しました。
毎度インストールでは苦労します。

[関連記事]

Delphi XE5 update2 のインストールについて
  • コメント (0)
  • トラックバック (0)

VCL ではアプリケーションのパスは Application.ExeName で取得していました。
FM では代わりに ParamStr(0) を使っていたのですが…

...続きを読む

  • コメント (0)
  • トラックバック (0)

deprecated

カテゴリ : 
技術メモ » Delphi » 全般
執筆 : 
2014/1/23
[dcc32 警告] xxxx.pas(n): W1000 シンボル 'FileAge' を使用することは推奨されていません 
FileAge の代わりに何を使えば良いのでしょうか?

...続きを読む

  • コメント (0)
  • トラックバック (0)

TImage.Picture で png 画像

カテゴリ : 
技術メモ » Delphi » VCL
執筆 : 
2014/1/16

よく忘れるので自分のために書いておきます。

TImage.Picture.LoadFromFile で PNG 画像を読み込みたいときには
Vcl.Imaging.PngImage
を uses します。

...続きを読む

  • コメント (0)
  • トラックバック (0)

TStringHelper.Chars でエラーが起きたら

カテゴリ : 
技術メモ » Delphi » FireMonkey
執筆 : 
2014/1/12

ソースコードをモバイルコンパイラに対応しようとして s[1] を s.Chars[0] という具合に書き換えていたときのことです。
下記のようなコンパイルエラーが発生しました。
これは何でしょう?

[dcc32 エラー] xxxxx.pas(56): E2018 レコード,オブジェクトまたはクラスのいずれかが必要です

...続きを読む

  • コメント (0)
  • トラックバック (0)
プロダクツ

開発ブログ

Link

AD