2013年12月1日日曜日

VCL も地味に進化しているんですよ!

Delphi Advent Calendar 2013 12/01 の記事です。

FireMonkey にばかり目が行きがちですが、VCL も地味に進化しているんですよ!!

ということで、2007 以降に追加された機能で、僕がつい最近まで知らなかった機能をランキングでご紹介!


第3位
TLinkLabel



HTML リンク形式でクリックできるラベル!
みんな自分で作っていたよね!!
いつ追加されたのか、ちょっと判りませんでしたが……

使い方はすごく簡単で、Caption プロパティに A タグを使ってリンク先を書くだけです。
例えば…
" 右をクリック→ <a href="http://www.serialgames.co.jp/">株式会社シリアルゲームズ</a>"
こんな感じです。
下線部をクリックすると OnLinkClick イベントが発生するので、そこに↓こんな感じの処理を記述してやればOKです。
procedure TForm1.LinkLabel1LinkClick(
Sender: TObject;
const Link: string;
LinkType: TSysLinkType);
begin
// Link は id か href の中身
// LinkType は Link の種類
// sltID は id 属性が指定されていた場合
// sltURL は id 以外
 
ShellExecute(
Handle,
'open',
PChar(Link),
nil,
nil,
SW_SHOW);
end;
ここでは、ブラウザを開くようにしましたが、もちろんアプリケーションのナビゲートにも使えるわけです!

DEKO 氏よりご指摘を頂きましたので、追記いたします!
TLinkLabel が追加されたのは Delphi 2009 からとのこと!
そして、Xp でも使えるけど、テーマが有効である必要があるということです。
テーマは、プロジェクトオプション→アプリケーション→ランタイムテーマ→ランタイムテーマを有効にする、ですね!


第2位
TButton 驚愕の進化!



VCL のボタンは色が変えられないだとか、画像が載せられないだとか、そんな時代は終わっていました!(色については後述の1位をご覧ください)
むしろ、TBitButton の時代が終わっていた!
上の画像を見ていただければ一目瞭然ですが、色々と機能が拡張されています。

これらは、TButton.Styleプロパティで実現されています。
TButton.Style はTButtonStyle 型になっていて以下の3つがあります。

bsPushButton いわゆる普通のボタン
bsCommandLink  コマンドアイコンが付くボタン(インストーラなんかで見ます)
bsSplitButton 右側をクリックすると TPopupMenu を表示するボタン

そして、その他にも Images プロパティImageIndex プロパティを組み合わせると画像を表示できます!(他のプロパティで画像の位置を指定したり、Disable 時の画像を指定したりできます)
しかも画像をご覧頂くとわかるとおり、きちんとα値(透明度)も効きます!

FireMonkey を使わなくても、かなり美麗なアプリケーションを組めますね。
ただし!Vista 以降で有効!つまり! Xp では使えません!!
あれぇ…じゃあ VCL の機能というより Windows 機能なんじゃあ…


第1位
当然の VCL Style!

以下をご覧ください
えええええー!最後それえええええ!?
知らなかった機能を、って書いてあったのに、知ってる機能だしいいいいい!

そんなこんなで、2013年もあと少し。
今後とも、僕とブログと男と女、Delphi をよろしくお願いいたします。

0 件のコメント:

コメントを投稿