Thread Rating:
  • 718 Vote(s) - 2.78 Average
  • 1
  • 2
  • 3
  • 4
  • 5
VLE拡張機能 レイアウトコンテナについて
08-26-2011, 10:39 AM,
#1
VLE拡張機能 レイアウトコンテナについて
こんにちは。

VLE拡張機能を使って、カスタムクラスを自由に配置したいと思っています。

作ったカスタムクラスはCanvasを継承しており、レイアウトコンテナとして認識させたいのですが、
登録・配置など問題はなさそうなのですが、
レイアウトコンテナとして認識させることができていません。

なにか設定が必要ですか?

よろしくお願いします。
08-26-2011, 03:36 PM,
#2
RE: VLE拡張機能 レイアウトコンテナについて
okm 様

質問の意図に外れていましたらすみません。
私もVLEの機能拡張を利用していますが、

拡張化のためのファイル ****.scurl に存在する

{register-palette-item DesignTime○○○}

○○○ = カスタム化されたクラス名

の継承クラスは、DesignTimeContainerGraphic でしょうか?

TextField や TextArea などの コントロールは
DesignTimeGraphic を継承しますが、

Box や Canvas などは DesignTimeContainerGraphic になるようです。

ちなみに
\Curl Corporation\Surge\[ここはversionによって変わる 7 とか 8 とか]\ide\vle\editor
に、拡張機能のためのクラスが存在します。
08-29-2011, 10:49 AM, (This post was last modified: 08-29-2011, 10:50 AM by okm.)
#3
Wink  RE: VLE拡張機能 レイアウトコンテナについて
onyoさま

ありがとうございます!

おっしゃるとおり、継承クラスがDesignTimeContainerGraphicではありませんでした。
他にも、部品を乗っけられるようにするメソッド(でいいのでしょうか?)を足したりしました。

コントロール部品なら、VLE拡張機能エディタで簡単に作成できると思うのですが、
コンテナクラスは、手作業での修正が必要なんですね。
(それとも、自動で作成できるけど、勉強不足なだけかもしれませんが・・)

助かりました、ありがとうございました!
08-29-2011, 01:46 PM,
#4
RE: VLE拡張機能 レイアウトコンテナについて
okm 様

>他にも、部品を乗っけられるようにするメソッド(でいいのでしょうか?)を足したりしました。

拡張機能のためのクラスを参照されたのであれば
恐らくあっていると思います。

自分もツールでの対処がわからなかったので
手直しで対処しました。

コントロールの中でも
CommandButton をカスタム化した場合
DesignTimeVersionedFrameContainer になるようです。
08-29-2011, 06:29 PM,
#5
RE: VLE拡張機能 レイアウトコンテナについて
コンテナの場合は手作業必須な気がします。IDEがインストールされていれば、インストールディレクトリの ide/vle 以下でVLEのソースが見れるようなので、VBoxの実装等が参考にできると思います。
08-30-2011, 01:09 PM,
#6
RE: VLE拡張機能 レイアウトコンテナについて

onyoさま
>コントロールの中でも
>CommandButton をカスタム化した場合
>DesignTimeVersionedFrameContainer になるようです。


そうなんですか!しりませんでした。
Curlのマニュアル等検索してもみつからなかったのですが、
DesignTimeVersionedFrameContainer とは、どういうものなんでしょうか?
CommandButtonもカスタム化していますが、VLE拡張エディタで作成したものも DesignTimeGraphic を継承したものが作成されています。

なにか不都合があるのでしょうか?

お分かりの範囲で教えていただけますか。
08-30-2011, 02:53 PM,
#7
RE: VLE拡張機能 レイアウトコンテナについて

yosugaさま

ありがとうございます。
やはり手作業が発生するんですね。

VBoxのソースもみてみました。


それにしても、CurlのDocは見づらいですよね。
JavaDocみたいにならないのでしょうか・・。
カスタムクラス作っても、Docまでは作れません><。
08-30-2011, 03:47 PM,
#8
RE: VLE拡張機能 レイアウトコンテナについて
okmさま

Curlには、javadocみたいな感じで、docstringってのがあります。
たしか、Curlのヘルプそのものも、curlのdocstringを用いていたと思います。
08-30-2011, 03:49 PM, (This post was last modified: 08-30-2011, 04:27 PM by onyo.)
#9
RE: VLE拡張機能 レイアウトコンテナについて
okm 様

一応、Ver7.0のソースも見てみましたが、
なにぶん私が作成した VLE拡張機能の Version は 4.0ですから
お使いの Version に適合するかはわかりませんので経験だけを語りますね。

登録、配置だけでしたら
CommandButton や CheckBox の
DesignTime○○○ クラスの継承先が DesignTimeGraphic
でも問題ありません。 

が・・・自分はコンパイルのときに問題が発生しました。

標準の CommandButton は VLE で配置すると layout-container
なのですが
カスタム化した CommandButton は layout-element になってしまい
実行コンパイル時にエラーとなりました。

そこで ide/vle/editor/standard-desgn-class.scurl の
仕組みを見てみることにしました。

カスタム化された全てのコントロール、コンテナ
は DesignTimeGraphic を継承します。

DesignTimeVersionedFrameContainer は
DesignTimeCommandButton の直接の親ですから
カスタム化する場合もこのクラスを継承することで
ほぼ全てを満たしてくれると思います。

先の container と element の問題は
サブクラスの中の {new-element} メソッドのreturn値が
LayoutElement なのか LayoutContainer なのかで変わるということが
ソースを読み解くと判明しました。

要は、サブクラスの機能をVLE拡張で、どう使いたいのかで
自分なりに色々できますが、
めんどくさい場合、自分の作ったコントロールに
一番近いVLE標準のクラスを継承し、必要な部分だけを
改修していくのが近道だと自分は思っています。

DesignTimeGraphic
 ├DesignTimeContainerGraphic
 │├DesignTimeBaseFrameContainer
 ││├DesignTimeVersionedFrameContainer
 │││├DesignTimeCommandButton
 │││├DesignTimeCheckButton
 │││├DesignTimeRadioButton
 │││・
 │││・
 │││・
 │││
 ││├DesignTimeRadioFrame
 ││├DesignTimeDialog
 ││・
 ││・
 ││・
 ││
 │├DesignTimeCanvas
 │・
 │・
 │・
 │
 ├DesignTimeControl
 ・├DesignTimeTextField
 ・├DesignTimeTextDisplay
 ・├DesignTimePasswordField
  ├DesignTimeTextArea
  ├DesignTimeDropdownList
  ├DesignTimeComboBox
  ├DesignTimeListBox
  ・
  ・
  ・
09-01-2011, 12:07 PM,
#10
RE: VLE拡張機能 レイアウトコンテナについて

kinoさま

そのdocstring、読みにくいと思いませんか・・。
英語だからですかね。
英語の勉強しろ!という結論かもですね・・・・^^;



onyoさま

詳しくありがとうございます!
当方はVer7で開発しております。(今日CDE8にアップデートしてみましたが・・)
ただ、 'DesignTimeVersionedFrameContainer' は認識されません。 というエラーが発生してしまいます。

こちらのCommandButtonのカスタムクラスがよくないのでしょうか・・。
う~ん、、
ひまとまず、DesignTimeGraphic を継承することで期待する動きをしているようなので、このままにしてみます。


ありがとうございました。

Forum Jump:


Users browsing this thread:
1 Guest(s)

MyBB SQL Error

MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
1017 - Can't find file: 'mybb_threadviews' (errno: 2)
Query:
INSERT INTO mybb_threadviews (tid) VALUES('239')