SplitterをMDIFormで使うには?


たけ  2002-12-01 19:10:30  No: 2264

MDIFormにSplitterを使ったときに表示がおかしくなるようなのですが
これを回避する方法はあるのでしょうか?

以下の手順のときにこの現象を確認しました。

1.新規アプリケーションを作成
2.メインのFormのFormStyle=fsMDIFormに、Color=clAppWorkSpaceにする
3.FormにPanelを置いてAlign=alLeftにする
4.FormにSplitterを置いてColor=clBtnFaceにする

上のようにして実行するとFormになぜか縦ラインが表示されてしまいます。
どなたか解決法を教えていただけませんでしょうか。


風来坊  2002-12-01 21:53:43  No: 2265

Splitterも Color:=clAppWorkSpace にしてみて下さい。
いや、確認したわけではないですが…。
多分、それでOKかと。


たけ  2002-12-02 01:26:38  No: 2266

>風来坊さん
Color=clAppWorkSpaceまたはParentColor=trueにすると
Formに縦ラインが表示されるのは防げるのですがSplitterの
色が変わってしまいます。
できればSplitterの色をclBtnFaceにしたいので…
あと、書き忘れましたが当方Delphi6Personalです。


にしの  2002-12-02 03:38:17  No: 2267

ResizeStyleを、rsUpdateにすれば回避できると思います。
ただし、動作は全く別物になります。


たけ  2002-12-08 09:34:35  No: 2268

>にしのさん
お返事が遅れて申し訳ありません。
ご教授していただいた通りにやってみたのですが
やはりラインは表示されたままでした。
いろいろと試してみたのですがやはりFormに縦のラインが表示されてしまいます。
やはり我慢してColor:=clAppWorkSpaceで使用するしかないのでしょうか...


にしの  2002-12-08 20:56:12  No: 2269

rsUpdateにすると、Splitterはラインが表示されるのでなく、パネルの大きさを随時変えてくると思うのですが、それでもラインが表示されると言うことでしょうか。
うちの環境はDelphi5ですが、前に同じ現象が出まして、rsUpdateにして回避しました。
# 今は、なぜか再現できないので未確認です


風来坊  2002-12-08 23:05:16  No: 2270

たしかに、rsUpdateにしても無駄な縦線が出ますね(Delphi6にて)
しかも、かなり見た目が悪い感じで(^^;
clAppWorkSpaceで回避できるので、我慢するしかないかと?


にしの  2002-12-09 02:14:29  No: 2271

あとは、パネルを2つ使った代替方法で回避するしかないですね。

片方(ライン用)をHideにしておいて、パネルがドラッグされたらHideしてあったライン用パネルをShowし、マウスの位置にあわせて移動。
マウスアップでパネルの位置を変更する、というもの。
Splitterがなかったころ使ってました。


たけ  2002-12-11 02:15:43  No: 2272

風来坊さん、にしのさん ありがとうございます。

どうやらあきらめてFormと同じようにcolor=clAppWorkSpaceで我慢するか
Splitterに変わるものを自分で用意するしかないようですね...
取りあえずにしのさんの方法をやってみてうまくできるようでしたら
その方法で行きたいと思います。


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加