PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
3569 | 98/10/08 12:01:48 | RE(6):PB5.0.04: グローバル変数の使い方 By あすかちゃんの父 |
3567 | 98/10/08 11:58:17 | RE(5):PB5.0.04: グローバル変数の使い方 By あすかちゃんの父 |
3566 | 98/10/08 11:44:42 | RE(4):PB5.0.04: グローバル変数の使い方 By こてちゅ |
3563 | 98/10/08 10:39:37 | RE(3):PB5.0.04: グローバル変数の使い方 By てとらぽっと |
3561 | 98/10/08 10:14:33 | RE(2):PB5.0.04: グローバル変数の使い方 By あすかちゃんの父 |
3544 | 98/10/06 21:46:00 | RE(1):PB5.0.04: グローバル変数の使い方 By Taka |
3543 | 98/10/06 20:35:36 | PB5.0.04: グローバル変数の使い方 By あすかちゃんの父 |
カテゴリ:スクリプトの記述
日付:1998年10月06日 21:46 発信者:Taka
題名:RE(1):PB5.0.04: グローバル変数の使い方
あすかちゃんの父さん、こんばんは。
>ユーザオブジェクト関数を何回もコールすると、その都度メモリ
>を確保して、アプリケーション終了まで破棄されない、ってこと
>は無いですよね?
それは無いはずですよ。
いわゆる「オブジェクト」が保持される変数は、おそらく、内部的には
Longビット長でそのハンドルのみを保持していると思いますし、関数や
イベントも、名前とアドレスだけが管理されていて、呼び出される都度
そのアドレスに該当するロジック(コンパイルされたスクリプト?)を実行する...
のだと思います。
もちろん、その関数,イベントの中でローカル宣言された変数は、一連の
スクリプトが終了すれば開放されるはずですし。
(PB自体にバグがあれば問題外ですが...)
ちなみに、
>nvo_win32api uo_win32api
>といった具合に宣言して、nvo_win32apiのユーザオブジェクト
>をuo_win32apiで参照するようにしています。
は、とくにやらなくても良いと思います。
nvo_win32api を保存した時点でそれは、
nvo_win32api型のグローバル変数 nvo_win32api
として、暗黙に宣言されています。したがって、
nvo_win32api = CREATE nvo_win32api
とか
DESTROY nvo_win32api
とかすればOKです。(もちろん、用途にもよりますが)
ウィンドウ w_001 を作成保存すれば Open( w_001 ) で開けるのと同じです。
w_001は、w_001型のグローバル変数 w_001 を意味します。
あまり核心に迫ったコメントにはなりませんでした。ごめんなさい。以上。
おまけってゆーか
昔、nvoをDESTROYしても、ハンドルがクリアされるだけでそれ自体が
保有していた実メモリは開放されないというバグがあったような...
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows95
DBMS Sybase SQL Anywhere Client
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS Sybase SQL Anywhere Server
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.