[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/03/30(Wed) 09:59
投稿者名:ダンボ
URL :
タイトル:
(便乗質問)コントロールをLoadするときのVisible
テキストの配列の持ち方 - いち 03/25-16:42 No.2645の便乗質問です。

> For i = 1 to 60
>   Load text1(i)
>   text1(i).Move Left(i), Top(i)
>   text1(i).Visible = True
> Next i

コントロールに対するLoad命令はIndex0でデザインされたコントロールのプロパティを引き継ぎますが、
Visibleプロパティだけは必ずFalseにされます。このことが長年疑問ではありました。

(1)Load命令実装時の都合なのか?
(2)使用者の便宜を図った仕様なのか?

で、前者は理由が想定できない(わざわざFalseに変えるだけ手間)、すると後者なのだが、
・text1(i).Visible = TrueでLoadするとtext1(0)と同じ場所に表示される。
・同じ場所に別なコントロールを表示する仕様は考えづらい(無いとは言えないのでは)ので、
・どうせフォームの別な場所に再配置する必要がある。
・そのときに.Visible = Trueだと画面がちらつくので移動前にひとまず.Visible = Falseにすべきだ。
・ならば、Load時にはVB側であらかじめ.Visible = Flaseにしておいてあげましょう。
というストーリーなのでしょうかね?

正解はMicrosoftに聞かなければわからないし、そこまでする気も無いですので、別な解釈があれば
お願いします。

投稿時間:2005/03/30(Wed) 10:08
投稿者名:ガッ
Eメール:
URL :
タイトル:
Re: (便乗質問)コントロールをLoadするときのVisible
> コントロールに対するLoad命令はIndex0でデザインされたコントロールのプロパティを引き継ぎま

が、
> Visibleプロパティだけは必ずFalseにされます。このことが長年疑問ではありました。
どうも、最近とても痛いガッです。
他の考え方があるとすれば、「Boolean型の変数やBooleanを返す関数の初期値はFalse」というのもあり
ますねぇ…
では他のメンバはどうなのか?といわれると、EnabledとかはTrueですしねぇ…
ダンボさんの考えが一番適当だと思います。

投稿時間:2005/03/30(Wed) 13:17
投稿者名:ダンボ
URL :
タイトル:
Re^2: (便乗質問)コントロールをLoadするときのVisible
ガッ さん、ご賛同ありがとうございます。

(ヨコ)継承されないプロパティがもうひとつあります。 .Index
      おぃ、それをコピーしたら無茶苦茶でごじゃりまする。
(タテ)継承されるのは必ずIndex0のコントロールか?
      投稿前に確かめました。Text1(0)とText1(1)をデザインしておいて、Load Text(2)

> ダンボさんの考えが一番適当だと思います。

一人でボケツッコミするのもなにですが。

画面がちらつくことを防ぐ為にVB側で.Visble=Falseにしておいてくださる。という仕様の他に、
・Visbleプロパティだけ特別視せずに淡々と元コントロールのプロパティをコピーする。
・プログラマーは、Load元のVisibleプロパティをFalseでデザインするかLoad前にFalseにする。
で対処できるはずです。その程度のコーディング技法はVBの他の場面で要求されます。

なんで、Visbleプロパティだけサービスが厚いのかな?
(独り言です。回答不要です。)

投稿時間:2005/03/30(Wed) 14:01
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^3: (便乗質問)コントロールをLoadするときのVisible
> (独り言です。回答不要です。)
同じく、ヒト(リ)ゴト。
とりあえず、VisibleのLoad直後の値の件については、ノーコメントって事で。

> (ヨコ)継承されないプロパティがもうひとつあります。 .Index
>       おぃ、それをコピーしたら無茶苦茶でごじゃりまする。
TabIndex。(ぼそ

> (タテ)継承されるのは必ずIndex0のコントロールか?
>       投稿前に確かめました。Text1(0)とText1(1)をデザインしておいて、Load Text(2)
ついでに、Index=0のコントロールが無い状態で実験しないと。
正確には、一番小さいIndex値を持つコントロール。

で、その話(複製されないプロパティ & コピー元となるIndex値)は、いずれもヘルプに載ってたり。
hhttp://www.microsoft.com/japan/developer/library/vbcon98/vbconaddingtocontrolarrayatruntime.htm

投稿時間:2005/03/30(Wed) 21:33
投稿者名:ダンボ
URL :
タイトル:
Re^4: (便乗質問)コントロールをLoadするときのVisible
魔界の仮面弁士 さん、ありがとうございます。

> TabIndex。(ぼそ

そーですね。重複したら困りますものね。最後のTabIndex値の+1が設定されるものと想像します。
Unloadで歯抜けに消したらどうなるのだろう。→自動調整(上詰め)されるものとと想像します。

> ついでに、Index=0のコントロールが無い状態で実験しないと。
> で、その話(複製されないプロパティ & コピー元となるIndex値)は、いずれもヘルプに載ってたり。

ガッさんじゃないけど痛いわ。 (VB6ヘルプは確認してから投稿したけど)