ひまわりユーザー プログラム掲示板 バックアップ
注意
ひまわりのススメ  □ ひまわり本家Home  □ 新着記事  □ 新規投稿  □ SEARCH  □ 参考プログラム集
ツリー表示

MESSAGE 偽タブ /yuk (02/08/08(Thu) 15:24) [1158]
......MESSAGE Re[1]: 偽タブ /moka (02/08/08(Thu) 16:16) [1159]
............MESSAGE 偽タブ 簡易バージョン /yuk (02/08/10(Sat) 16:08) [1164]


親記事 / ▼[ 1159 ]
NO.1158  偽タブ
□投稿者/ yuk -(2002/08/08(Thu) 15:24:58)
□U R L/ ../../
{---プログラム掲示板投稿フォーム---
【ソフト名】偽タブ (バージョン 1.00)
【作 成 者】yuk (連絡先:xxx)
【種  別】フリーソフトウェア
【ひまわりのバージョン】ver.1.55a
【転  載】可
【改変運用】可(がんがんやっちゃってください!)
【ひまわり本体への梱包】可
【実行時に利用作成するファイル】なし
【コメント】どうしてもタブを使いたい方に。
私のサイトでこのサンプルの解説ページを公開するつもりです。(現在製作中)

このサンプルの問題点は二つ。
一。長い。
   タブがあるだけのサンプルなのに、100行くらいあります。
   実用時はタブの数がもっと増えるかもしれないし、
   設定用の子フォームにタブを利用したい場合、使用する部品の数が更に増えることが予測されます。
   すると、部品の作成・設定だけで軽く300〜400行使うことになり、
   ソースが読みづらくなる&プログラムサイズが大きくなるという問題が。
   この問題は「反復」命令を使うなどして各自で対応していただきたいです。

二。タブの上部の線とラベルの間をクリックした時にイベントが起こらない。
   これは、どうしようもない問題かも。
   現在、ラベルを使用していますが、ラベルではなくイメージを利用すると
   この問題は回避できるかもしれません。
   っていうかできると思う。
   ただ、そうするとイメージの位置の計算が面倒くさくなりそうなので、
   とりあえずラベルバージョンと言うことで投稿いたします。
---投稿フォームここまで---}

母艦の、背景色は、ウインドウ色。

部品配置間隔=1
タブ1ラベルを、ラベルとして、作成。
その、テキストは、「 タブ1 」
その、イベントは、(
   タブ1パネルの、可視は、オン。
   影つけ。
   )
その、高さは、(その、高さ)+5
その、Xは、(その、X)+1

タブ2ラベルを、ラベルとして、作成。
その、テキストは、「 タブ2 」
その、イベントは、(
   タブ1パネルの、可視は、オフ。
   タブ2パネルの、可視は、オン。
   影つけ。
   (((タブ2ラベルの、X)-1),((タブ1ラベルの、Y)-4))から、(((タブ2ラベルの、X)-1),((タブ1ラベルの、Y)+(タブ1ラベルの、高さ)+5))へ、線。
   )
その、高さは、(その、高さ)+5
その、位置は、タブ1ラベルの、右側。

タブ3ラベルを、ラベルとして、作成。
その、テキストは、「 タブ3 」
その、イベントは、(
   タブ1パネルの、可視は、オフ。
   タブ2パネルの、可視は、オフ。
   影つけ。
   (((タブ3ラベルの、X)-1),((タブ1ラベルの、Y)-4))から、(((タブ3ラベルの、X)-1),((タブ1ラベルの、Y)+(タブ1ラベルの、高さ)+5))へ、線。
   )
その、高さは、(その、高さ)+5
その、位置は、タブ2ラベルの、右側。

タブ3パネルを、パネルとして、作成。
その、テキストは、タブ3。
その、Yは、(タブ1ラベルの、Y)+(タブ1ラベルの、フォントサイズ)*4/3+3。
タブ2パネルを、パネルとして、作成。
その、テキストは、タブ2。
その、位置は、(タブ3パネルの、位置)。
タブ1パネルを、パネルとして、作成。
その、テキストは、タブ1。
その、位置は、(タブ3パネルの、位置)。

イメージ1を、イメージとして、作成。
その、位置は、(((タブ1ラベルの、X)-10),0)
その、透過処理は、オン。
その、幅は、(タブ1ラベルの、幅)+1
イメージ2を、イメージとして、作成。
その、位置は、(((タブ2ラベルの、X)-10),0)
その、透過処理は、オン。
その、幅は、(タブ2ラベルの、幅)+1
イメージ3を、イメージとして、作成。
その、位置は、(((タブ3ラベルの、X)-10),0)
その、透過処理は、オン。
その、幅は、(タブ3ラベルの、幅)+1

ペン色は、ウインドウ色。
イメージ1の、(0,0)から、((タブ1ラベルの、幅),0)へ、線描画。
イメージ2の、(0,0)から、((タブ2ラベルの、幅),0)へ、線描画。
イメージ3の、(0,0)から、((タブ3ラベルの、幅),0)へ、線描画。

イメージ1を、タブ1パネルに、乗せる。
イメージ2を、タブ2パネルに、乗せる。
イメージ3を、タブ3パネルに、乗せる。

ペン色は、白色。
ペン太さは、1
//横線
((タブ1ラベルの、X),((タブ1ラベルの、Y)-5))から、(((タブ1ラベルの、X)+(タブ1ラベルの、幅)),((タブ1ラベルの、Y)-5))へ、線。
((タブ2ラベルの、X),((タブ1ラベルの、Y)-5))から、(((タブ2ラベルの、X)+(タブ2ラベルの、幅)),((タブ1ラベルの、Y)-5))へ、線。
((タブ3ラベルの、X),((タブ1ラベルの、Y)-5))から、(((タブ3ラベルの、X)+(タブ3ラベルの、幅)),((タブ1ラベルの、Y)-5))へ、線。
//固定縦線
(((タブ1ラベルの、X)-1),((タブ1ラベルの、Y)-4))から、(((タブ1ラベルの、X)-1),((タブ1ラベルの、Y)+(タブ1ラベルの、高さ)+5))へ、線。

ペン色は、非アクティブ色。
(((タブ3ラベルの、X)+(タブ3ラベルの、幅)),((タブ1ラベルの、Y)-4))から、(((タブ3ラベルの、X)+(タブ3ラベルの、幅)),((タブ1ラベルの、Y)+(タブ1ラベルの、高さ)+5))へ、線。

影つけ。

待機。

*影つけ
ペン色は、非アクティブ色。
(((タブ2ラベルの、X)-1),((タブ1ラベルの、Y)-4))から、(((タブ2ラベルの、X)-1),((タブ1ラベルの、Y)+(タブ1ラベルの、高さ)+5))へ、線。
(((タブ3ラベルの、X)-1),((タブ1ラベルの、Y)-4))から、(((タブ3ラベルの、X)-1),((タブ1ラベルの、Y)+(タブ1ラベルの、高さ)+5))へ、線。
ペン色は、白色。
戻る。



▲[ 1158 ] / ▼[ 1164 ]
NO.1159  Re[1]: 偽タブ
□投稿者/ moka -(2002/08/08(Thu) 16:16:38)
□U R L/ http://www.geocities.jp/moka21/teatime/
> このサンプルの問題点は二つ。
> 一。長い。

…ですね。
「ちょこっとプログラム」には使いにくい。

あと前から感じてたんですが、
タブの影を描画してますが、その色が分かりにくい。
今日気付いたんだけど、私はWindowsの配色をカスタマイズしてて、
『非アクティブ色』が『ウィンドウ色』と同じだったからでした。
より厳密な影の色は、レジストリから取得するのかな…。



▲[ 1159 ] / 返信無し
NO.1164  偽タブ 簡易バージョン
□投稿者/ yuk -(2002/08/10(Sat) 16:08:37)
□U R L/ ../../
{---プログラム掲示板投稿フォーム---
【ソフト名】偽タブ (簡易バージョン 1.00)
【作 成 者】yuk (連絡先:xxx)
【種  別】フリーソフトウェア
【ひまわりのバージョン】ver.1.56
【転  載】可
【改変運用】可
【ひまわり本体への梱包】可
【実行時に利用作成するファイル】無(score_data.iniなど具体的なファイル名を)
【コメント】やっぱりアレだと長いよな、と思って手軽に使えそうなのも作ってみました。
タブブラウザなどにあるような偽っこさ。
境界が曖昧ですのではっきりさせたい方はラベルの間に線を引っ張ってあげてください。
---投稿フォームここまで---}

{簡易タブ}
部品配置間隔=2
母艦の、背景色は、ウインドウ色。
(10,10)に、移動。
タブ1ラベルを、ラベルとして、作成。
その、背景色は、白色。
その、テキストは、「 タブ1 」
その、イベントは、(可視パネルは、「タブ一パネル」。タブイベント。)

タブ2ラベルを、ラベルとして、作成。
その、テキストは、「 タブ2 」
その、位置は、タブ1ラベルの、右側。
その、背景色は、白色。
その、イベントは、(可視パネルは、「タブにパネル」。タブイベント。)

タブ3ラベルを、ラベルとして、作成。
その、テキストは、「 タブ3 」
その、背景色は、白色。
その、位置は、タブ2ラベルの、右側。
その、イベントは、(可視パネルは、「タブ3パネル」。タブイベント。)

タブ3パネルを、パネルとして、作成。
その、可視は、オフ。
その、テキストは、タブ3。
その、位置は、(タブ1ラベルの、下側)。
その、Yは、(その、Y)+3
タブにパネルを、パネルとして、作成。
その、テキストは、タブに。
その、可視は、オフ。
その、位置は、タブ3パネルの、位置。
タブ一パネルを、パネルとして、作成。
その、テキストは、タブ一。
その、位置は、タブ3パネルの、位置。

タブ1ラベルの、イベント。

待機。

*タブイベント
イベントオブジェクトの、「 」を、「」に、置換。
もし、元オブジェクト=それならば、戻る。
「{元オブジェクト}ラベルの、透過処理は、オン。」を、ひまわりする。
イベントオブジェクトの、透過処理は、オフ。
イベントオブジェクトの、「 」を、「」に、置換。
元オブジェクト=それ。
「{可視パネル}の、可視は、オン。
{不可視パネル}の、可視は、オフ。」を、ひまわりする。
不可視パネルは、可視パネル。
戻る。



- Child Tree -