hinekure.net が http://hspdev-wiki.net/ から自動クローリングした結果を表示しています。画像やリソースなどのリンクが切れています。予めご了承ください。
オブジェクトID - HSP開発wiki
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS

小ワザ

 HSP2   HSP3 

オブジェクトID

Windowsのコントールであるプッシュボタン・入力ボックスなどの部品をHSPではオブジェクトと呼んでいます。
HGIMGやzgpなどのプラグインでもオブジェクトという言葉を使用しますが今回はこれとは違います。

オブジェクトの種類

HSPで標準的に扱えるオブジェクトには以下のものがあります。

オブジェクト名命令hsp261hsp3
ボタンbutton
入力ボックスinput
メッセージボックスmesbox
チェックボックスchkbox
コンボボックスcombox
リストボックスlistbox
Windowsコントロールwinobj×

オブジェクトを作成すると、オブジェクトを識別するための番号がシステム変数statに入れられます。
この番号をオブジェクトIDと呼び、オブジェクト制御命令で対象オブジェクトを指定するために使用されます。

オブジェクトIDは『未使用のIDの若い番号から使われる』のルールに基づいて機械的に割り当てられます。

内部管理の違いについて

オブジェクトはウィンドウ毎にBMSCR構造体で管理されています。
ただし管理方法が若干異なります。

HSP2.61
bmscr261.png
HSP3
bmscr3.png

注)ポインタmem_objの指す領域は動的に確保された名前無し領域ですが便宜上名前をobjとしています。

HSP2.61ではオブジェクトの管理領域はBMSCR構造体に含まれていて、固定サイズです。

HSP3ではオブジェクトの管理領域はBMSCR構造体から切り離されていて、BMSCR構造体はこの切り離された領域へのポインタを保持します。
これによりオブジェクトの管理領域は可変サイズとなりオブジェクトをいくつでも作成することが可能になりました。(実際はobjlimitによる制限が設けられています。)

サンプル

コメント

  • HSPのオブジェクト管理法がバージョンによって異なるのでページを分けました。ここは共通する最小限の事項と違いを解説して、サンプルなどは子ページに書くようにするといいと思います。(ソースがアップロードされてなかったのが幸いでした) -- kz3 2006-12-29 (金) 20:43:20

URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

添付ファイル:
filebmscr3.png
213件 [詳細]
filebmscr261.png
215件 [詳細]
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS
Last-modified: 2007-04-08 (日) 02:38:49 (2436d)