« ParentColor | トップページ | 謎のプロパティ消失の真相 »

2007年6月18日 (月)

謎のLayerプロパティ

MemoやEditのプロパティにLayerというものがあります。
これはデフォルトは0なのですが、Pagecontrolの上にコンポーネントを貼り付けた時は、LayerにそのPageControlのTab名が表示されます。

ちなみにこのTab名はDelphi for win32で言うところの各tabのCaptionとNameを兼ねていて、ちょっと扱いづらい。
なんで分離させなかったのだ・・・。

Tabの増やし方は、Tabs PropertieのところにTStringsライクに書くだけ。 デザイン時のTabの切り替えは、右クリックPopupMenuでLayersの中から選ぶか、そこに名前が出てなかったら(なぜかTabの上に何も配置してなかったらPopupMenuに表示されない)、ActiveLayerに直接書く(ComboBoxみたいに選べない・・・)。

さて、謎なのはこのLayerプロパティ。
ちゃんと目当てのTab名になっているにも関わらず、リロード時に強制的に0に戻されます・・・。
うちの環境の場合、IDEから「RUN」した時は問題ないのにサーバーにupするとこの現象が発生。謎。


検証した結果、以下の場合に発生する事がわかりました。

・DBGridコンポーネントを貼り付けて、適当にButtonを配置してそれをクリックすると、IDEから実行でもLayerは0になる。
(リロードの場合は発生しない)

・DBGridを貼り付けなくても、2回Buttonをクリックすると発生(IDEからの実行時)。

・Tab名が数字から始まる場合はOK
例:111、1test

・Tab名にひとつでも数字が入ってるとOK
例:Tabsが以下の場合
---------
test
123
---------

謎だよ ('A`)


ParentColorと言い、なんかリロード時に問題あるっぽいです。
根本的にどっかの共通classでbugってるのかも。

回避方法は、UnitのShow時に、

$this->Memo1->Layer = "hoge";

という風に、各Layerを再設定してやるぐらいかな。


以上、vcl_for_php_07_06_10.tar.gzで確認。

|

« ParentColor | トップページ | 謎のプロパティ消失の真相 »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/70189/15478738

この記事へのトラックバック一覧です: 謎のLayerプロパティ:

« ParentColor | トップページ | 謎のプロパティ消失の真相 »