TBottunに色をつけるにするには?

解決


どさん子  2007-11-16 13:54:54  No: 28440  IP: 192.*.*.*

失礼します。初投稿です。
TButtonに色をつける方法についてで、過去ログ参照したところできないことが分かったのですがこちらのHP
http://rakasaka.fc2web.com/delphi/odbtn.html
で、やり方が書いてあったので、試そうと思っているんですが、初心者なのでやり方に困っています。どうかご指導のほうよろしくお願いできないでしょうかm_ _m
使っているDelphiのバージョンはTurbo Delphiの無償版です。

編集 削除
ちょっと待て  2007-11-16 14:06:41  No: 28441  IP: 192.*.*.*

上記の懇丁寧なサイトを見て出来ないと言っているのか?
・・・全くトライしてないだろ?

編集 削除
Syake  2007-11-16 14:07:59  No: 28442  IP: 192.*.*.*

って言うか。
TurboDelphiの無償版ってオリジナルコンポーネント作成できたっけ?

編集 削除
んがんん  2007-11-16 14:16:16  No: 28443  IP: 192.*.*.*

> TurboDelphiの無償版ってオリジナルコンポーネント作成できたっけ?
初期バージョンには、 dclusr.dpkを使用することでコンポーネントの
インストールができてしまうという不具合が・・・
・・・環境によっては・・・ん、ん・・・
ごほごほ。

編集 削除
どさん子  2007-11-16 14:18:19  No: 28444  IP: 192.*.*.*

初心者で何も分からないですみません。
オリジナルコンポーネントはPro版じゃないとインストールできないみたいなので、無償版だとできないです。

編集 削除
Syake  2007-11-16 14:18:58  No: 28445  IP: 192.*.*.*

いけませんね。
不具合と言えどもライセンス違反です。

編集 削除
Del  2007-11-16 14:35:35  No: 28446  IP: 192.*.*.*

Syake おまえは何様だ!!

編集 削除
Manbon  2007-11-16 14:50:06  No: 28447  IP: 192.*.*.*

無償版はコンポのインストールはできませんが、
コード上でCreateすれば使用できます。
OwnerDrawButton1: TOwnerDrawButton;
OwnerDrawButton1 := TOwnerDrawButton.Create;
な感じで。

編集 削除
Syeke  2007-11-16 15:38:11  No: 28448  IP: 192.*.*.*

Delお前こそ何様だ!!!

編集 削除
ライセンス違反じゃないアル  2007-11-16 15:41:19  No: 28449  IP: 192.*.*.*

アナタ、またこれ繰り返すアルか?
https://www.petitmonte.com/bbs/answers?question_id=4213

編集 削除
気分はクラシック  2007-11-16 15:41:51  No: 28450  IP: 192.*.*.*

>で、やり方が書いてあったので、試そうと思っているんですが
試すだけなら、動的な生成でイケルけど、その「色をつけるTButtonコンポ」は
クラシックスタイルの描画なので、XP以降では見栄えが良くないよ。

編集 削除
Syake  2007-11-16 15:45:45  No: 28451  IP: 192.*.*.*

理解しました。
申し訳ありませんm(__)m

編集 削除
…の上塗り  2007-11-16 16:46:04  No: 28452  IP: 192.*.*.*

XPスタイルであってもOK。
クリック時、フォーカス時の描画は省略してるけど。

type
  TButtonEx = class(TButton)
  private
   procedure WmPaint(var Msg: TWmPaint); Message WM_PAINT;
  published
   property Color;
  end;

procedure TButtonEx.WmPaint(var Msg: TWmPaint);
var
  Rect: TRect;
begin
  inherited;
  with TCanvas.Create do try
   Handle := GetWindowDC(Self.Handle);
   Brush.Color := Color;
   Rect := ClientRect;
   InflateRect(Rect, -3, -3);
   FillRect(Rect);
   DrawText(Handle, PChar(Caption), -1, Rect,
    DT_SINGLELINE or DT_CENTER or DT_VCENTER);
  finally
   ReleaseDC(Handle, Self.Handle);
   Free;
  end;
end;

編集 削除
HOta  2007-11-16 17:48:12  No: 28453  IP: 192.*.*.*

TBitBtnは使えないのですか?

編集 削除
どさん子  2007-11-16 19:35:08  No: 28454  IP: 192.*.*.*

みなさんありがとうございます。

編集 削除