2012.4
3

Delphi TFrameでCreate, Destroyを実装する

TFrameはフォームのように設計できますが、OnCreate, OnDestroyイベントがありません。

しかし上位クラスからCreate, Destroyを継承すれば問題なく初期化、廃棄処理ができる。

public宣言に以下を追加

constructor Create(AOwner: TComponent); override;
destructor Destroy; override;

あとは実装するだけ。

2012.3
31

DelphiでTTextFormatでtfVerticalCenterを指定しても上下センターにならない

DelphiでTextRect関数を使用して文字を描画する場合、TTextFormatsで描画位置を調整できます。

しかしtfVerticalCenterという型があるのに、指定しても上下中央になりません。

試行錯誤した結果、tfVerticalCenterはftSingleLineを同時に指定しないと有効にならないようです。

続きを読む

2011.12
6

Delphi TImageListへの画像追加をカンタンにする

Delphiで多数のメニューを使う場合、TImageListで画像を一括管理するのが便利です。

しかし大きなアイコン、大きなアイコンのフォーカス状態、小さなアイコン、小さなアイコンのフォーカス状態・・・などと作っていくと、管理するだけで大変です。

しかもアイコン全てのTImageList内の並び順も同じにしなければアイコンが狂ってしまいます。

そんなときに役立つテクニックです。

続きを読む

2011.11
24

Delphi スレッドエラー:ハンドルが無効です。(6) の対処

DelphiでTThreadを使っていると、「スレッドエラー:ハンドルが無効です。(6)」というエラーが生成されることがあります。

FreeOnTerminateが設定されているとなぜか起こる場合がよくあるので、もしFreeOnTerminate = Trueで使っている場合は、Falseに切り替え、外部からThreadにFreeをかけるようにすると直るときがあります。

続きを読む