開発ブログ - 最新エントリー

Delphi で iOS の文字列定数を使う

カテゴリ : 
技術メモ » Delphi
執筆 : 
2014/11/9
Delphi から MacOS や iOS の文字列定数を使いたい時にどうすればいいのかわからなかったので、調べてみました。

こんな風にするみたい...
interface

const
  libCoreVideo = '/System/Library/Frameworks/CoreVideo.framework/CoreVideo';


function kCVPixelBufferPixelFormatTypeKey: CFStringRef;


implementation

function kCVPixelBufferPixelFormatTypeKey: CFStringRef;
begin
  Result := CFStringRef(CocoaPointerConst(libCoreVideo, 'kCVPixelBufferPixelFormatTypeKey')^);
end;
from iOSapi.CoreVideo
  • コメント (0)
  • トラックバック (0)

WMDropFiles ではまる

カテゴリ : 
技術メモ » Delphi
執筆 : 
2014/10/30
教訓!
Win32API に文字列バッファを渡す時には AllocMem ではなく SetLength すること

久々に WMDropFiles を使ったプログラムを書いていました。
日本語名のファイルをドロップすると、なんだか変なことに...

...続きを読む

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

変数定義をするときに、下のようなコードを書いたらエラーが発生しました。

var
hWnd: HWND;
[dcc32 エラー] xxxx.pas(26): E2007 定数または型が必要です

HWND は定義されているのになんでだよ!
みたいに怒っていました。
しまいにはこのコンパイラ壊れている!!!なんて...

...続きを読む

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

FireMonkey の TBitmap と VCL の TBitmap

カテゴリ : 
技術メモ » Delphi » 全般
執筆 : 
2014/10/16

FireMonkey にも VCL にも TBitmap というクラスがあり、 それぞれ VCL.Graphics, FMX.Graphics に入っています。
同じ名前なので同じようなものと思ってしまうのですが、だいぶ違うんです。

...続きを読む

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

FireMonkey で poOwnerFormCenter

カテゴリ : 
技術メモ » Delphi » FireMonkey
執筆 : 
2014/8/26
Delphi XE5

なぜか FireMonkey on Windows では poOwnerFormCenter が効かないんですよね?
必ず poScreenCenter になってしまうのです。

ネットで情報を検索してみたら、とりあえずこんなのが見つかりました。

http://stackoverflow.com/questions/8195106/firemonkey-and-showing-modal-dialog-center-of-the-owner-form

Position is not implemented in FireMonkey by ShowModal.
と書いてあります!!
それはないでしょう?と思ったのですが、poOwnerFormCenter が機能しないのは事実なので、これを使ってみました。

...続きを読む

  • コメント (0)
  • トラックバック (0)
古い人なので、デスクトップにマイコンピュータがないと落ち着かないのです。
でも、Windows 8.1 や Windows Server 2012 R2 などでは簡単ではありません。
あちこち探しまわっていつも疲れてしまうのです。
というわけで、いつも忘れちゃうので、書いておきます。

以下のコードで設定ダイアログが表示できます。

rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0
  • コメント (0)
  • トラックバック (0)

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)
プロダクツ

開発ブログ

Link

AD