ページコントロールで境界(border)の段差を無くすには?

解決


ヤスヒロ  2003-08-06 05:01:56  No: 4323  IP: [192.*.*.*]

Delphi 4を使っています。

Delphiのオブジェクトインスペクタやソースを編集するウインドウみたいな
外観のウインドウを作りたいのですが、
普通にフォームにPegeControlを配置して Align:=alCient とすると
必ず境界に段差ができてしまいます(一段盛り上がった形になる)。
これをオブジェクトインスペクタと同じ外観(境界を平らに)にできないでしょうか?

よろしくお願いします。

編集    削除
にしの  2003-08-06 06:11:16  No: 4324  IP: [192.*.*.*]

タブでなく、ボタンかフラットボタンなら、プロパティの変更だけでできます。
タブじゃなきゃだめでしょうか^^;

編集    削除
ヤスヒロ  2003-08-06 08:05:17  No: 4325  IP: [192.*.*.*]

にしのさんさっそくのレスありがとうございます。

>タブでなく、ボタンかフラットボタンなら、プロパティの変更だけでできます。

これはPegeControlのStyleプロパティを変更するというこでしょうか?
確かに似たような感じにはなりますね。ちょっと枠が太いのが気になりますが(<細かすぎ?)

以前どこかでDelphiはDelphiで開発してるみたいなことを聞いたことがあったんですが
そっくりなのを作るのは無理とまでは行かないまでも高度なテクニックが必要
ということなのでしょうか?

編集    削除
たかみちえ  URL  2003-08-06 09:05:44  No: 4326  IP: [192.*.*.*]

alClientをはずして、1ずつクライアント領域からはみ出すようにすれば、
その部分がはみ出て3Dじゃなくなったように見えませんか?
(Delphi6ですけど、あれは、3Dじゃないのではなく、
パネルとかの影響で目立たなく(または見えなく)なってるだけのような気がしなくもないです)

> 以前どこかでDelphiはDelphiで開発してるみたいなことを聞いたことがあったんですが
  ちなみに、Delphi製のソフトは、メモ帳で開いてみればすぐにわかります^^;
(使用してるクラスの名前がたくさん書いてあります)
  あと、ウィンドウハンドルのチェックソフトを使ってもわかります。
ウィンドウクラス名にTがついてるものは、DelphiかBCB製です。
  答えは、"DelphiのIDEはDelphi製"です。


  そういえばあのタブコントロール、クラス名が普通のそれとちょっと違いますね。
もしかしたらWM_PAINTをいじるとかして、一部を見えないように描画していたりするかも…?

編集    削除
ヤスヒロ  2003-08-07 10:34:11  No: 4327  IP: [192.*.*.*]

たかみちえさん、レスありがとうございます。

>  alClientをはずして、1ずつクライアント領域からはみ出すようにすれば、
>その部分がはみ出て3Dじゃなくなったように見えませんか?

なるほど。はみ出すように配置すると確かにいい感じになりますね。
まさに目から鱗。こういうやり方があるんですね。
どうもありがとうございました。

以下余談ですが。。。
エディタ部分の右上にある矢印、あれはどうやってるんでしょう?

編集    削除
たかみちえ  URL  2003-08-07 16:54:06  No: 4328  IP: [192.*.*.*]

> エディタ部分の右上にある矢印、あれはどうやってるんでしょう?
  あれはTToolBarですね。

  上と左に3D枠を設定すればそれっぽく見えそうな気がしますけど、
なんだかあれ、ちょっと角が丸くなってます。
背景をオーナードローしてるのかもしれません。
  角丸の枠は、DelphianWorldで公開されてる、
角丸ボタンコンポーネントが参考になりそうです。

編集    削除