開発ブログ - Delphiカテゴリのエントリ
Delphi XE7 で iOS simulation 用に コンパイルをして実行したところ
配置に失敗してしまいました。
なぜか (アプリケーション名) が見つからない と言われてしまうのです。
プロジェクト-配置から確認してみると、いくつかグレーで表示されたものがあります。
その中に (アプリケーション名) もありました。
そういえば、途中で実行ファイルの出力場所を変更していたのでした。
新しい場所の Bin/(アプリケーション名) もあったので、グレーで表示された(アプリケーション名)の方は消してしまおうとしましたが、消すことができません。
いろいろ試行錯誤した結果、「デフォルトに戻す」で「追加したファイルを保持する」のチェックを外して「OK」すると(アプリケーション名)を消すことができました。
配置に失敗してしまいました。
なぜか (アプリケーション名) が見つからない と言われてしまうのです。
プロジェクト-配置から確認してみると、いくつかグレーで表示されたものがあります。
その中に (アプリケーション名) もありました。
そういえば、途中で実行ファイルの出力場所を変更していたのでした。
新しい場所の Bin/(アプリケーション名) もあったので、グレーで表示された(アプリケーション名)の方は消してしまおうとしましたが、消すことができません。
いろいろ試行錯誤した結果、「デフォルトに戻す」で「追加したファイルを保持する」のチェックを外して「OK」すると(アプリケーション名)を消すことができました。
Delphi VCL はフォームやダイアログを独自のフォームによって処理しているので
一般的な Windows プログラムと違う動きをする部分が結構あります。
フォームを ShowModal でダイアログとして表示しているのに、
タスクバーのアイコンをクリックすると、ダイアログがオーナーフォームの裏に隠れてしまうことがあります。
一般的な Windows プログラムと違う動きをする部分が結構あります。
フォームを ShowModal でダイアログとして表示しているのに、
タスクバーのアイコンをクリックすると、ダイアログがオーナーフォームの裏に隠れてしまうことがあります。
使いそうで以外に使わない VCL の GridPanel
はじめて使ってみました。
カラムや行を増やすには、ColumnCollectionプロパティや RowCollection で追加をすればいいのはわかったのですが、サイズを割合で指定しようとしてちょっとはまりました。
Embarcadero Developer Network のDelphiでフローレイアウトの記事にも書いてありますが、パーセント表示の値を変更しても、思った値になってくれないのです。
記事を読んで理由は納得しましたが、ちょっと困りました。
同記事には実行時のコードでパーセント設定する方法が書かれていますが、これは面倒ですよね...
はじめて使ってみました。
カラムや行を増やすには、ColumnCollectionプロパティや RowCollection で追加をすればいいのはわかったのですが、サイズを割合で指定しようとしてちょっとはまりました。
Embarcadero Developer Network のDelphiでフローレイアウトの記事にも書いてありますが、パーセント表示の値を変更しても、思った値になってくれないのです。
記事を読んで理由は納得しましたが、ちょっと困りました。
同記事には実行時のコードでパーセント設定する方法が書かれていますが、これは面倒ですよね...
Delphi VCL
メインフォームの TActionList にキーボードショートカットを設定しているときにダイアログを表示すると、
ダイアログ処理中でもメインフォームのショートカットキーが有効になっています。
これを回避するためには、ダイアログ表示前にメインフォームの Enabled を False にすればOKです。
最近すっかり TStringHelper による処理に慣れてきていました。
そんなわけで、TEdit などから文字列を取得して処理するときにも
なんていうコードを書いてしまったりするようになってしまって..
でも動かないんです。
Edit.Text などは TCaption として定義されていて
TCaption = type string なんですが、シグネチャが違うから使えないんですね?
残念...
そんなわけで、TEdit などから文字列を取得して処理するときにも
if Edit1.Text.Length = 0 then
なんていうコードを書いてしまったりするようになってしまって..
でも動かないんです。
[dcc32 エラー] : E2018 レコード,オブジェクトまたはクラスのいずれかが必要です
Edit.Text などは TCaption として定義されていて
TCaption = type string なんですが、シグネチャが違うから使えないんですね?
残念...
良くありますよね、%表示したい時って。
だから LiveBindings の CustomFormat に
って書いたのですが、「書式文字列 'Format(... は正しくないか引数の型と一致しません.」というエラーが出てしまいます。
だから LiveBindings の CustomFormat に
Format('%.0f', Self.Value*100) + "%"
って書いたのですが、「書式文字列 'Format(... は正しくないか引数の型と一致しません.」というエラーが出てしまいます。
Delphi から MacOS や iOS の文字列定数を使いたい時にどうすればいいのかわからなかったので、調べてみました。
こんな風にするみたい...
from iOSapi.CoreVideo
こんな風にするみたい...
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
教訓!
Win32API に文字列バッファを渡す時には AllocMem ではなく SetLength すること
久々に WMDropFiles を使ったプログラムを書いていました。
日本語名のファイルをドロップすると、なんだか変なことに...
Win32API に文字列バッファを渡す時には AllocMem ではなく SetLength すること
久々に WMDropFiles を使ったプログラムを書いていました。
日本語名のファイルをドロップすると、なんだか変なことに...
変数定義をするときに、下のようなコードを書いたらエラーが発生しました。
var
hWnd: HWND;
[dcc32 エラー] xxxx.pas(26): E2007 定数または型が必要です
HWND は定義されているのになんでだよ!
みたいに怒っていました。
しまいにはこのコンパイラ壊れている!!!なんて...
FireMonkey にも VCL にも TBitmap というクラスがあり、
それぞれ VCL.Graphics, FMX.Graphics に入っています。
同じ名前なので同じようなものと思ってしまうのですが、だいぶ違うんです。