「なでしこv1」開発掲示板

なでしこv1のバグや要望を書き込む掲示板
[一覧へ] > (@178) [低] [未処理]
@178■ (#480) 動的部品が壊れません。 - choco (2009-02-09 20:39) /高 未処理
こんばんわ、chooです。

でしこのバージョン:1.517
OS:Windows2000 SP4

この環境で動的部品が壊れなくなりました。
何か書き方が悪いのでしょうか?
それとも環境依存でしょうか?

一回目は良いのですが、そのまま二回目にボタンを押しますと何の反応も返ってきません。

#ここから
印刷部品とはボタン
その有効はオン
その可視はオン
そのテキストは「印刷」
そのクリックした時は
TMP_FORMをフォームとして作成
TMP_FORM→可視はオフ。
TMP_IMAGEをイメージとして作成
TMP_IMAGE→親部品はTMP_FORM
TMP_IMAGE→可視はオフ
TMP_IMAGEへデスクトップを窓キャプチャ
TMP_IMAGEを簡易画像印刷
TMP_FORMを画面クリア
TMP_IMAGE→壊す
TMP_FORM→壊す
戻る。

#ここまで
上記の例は、→を@に置き換えても同じでした。

こちらは二回もしくは三回までできるソース
#ここから
印刷部品とはボタン
その有効はオン
その可視はオン
そのテキストは「印刷」
そのクリックした時は
TMP_FORMをフォームとして作成
TMP_FORM→可視はオフ。
TMP_IMAGEをイメージとして作成
TMP_IMAGE→親部品はTMP_FORM
TMP_IMAGE→可視はオフ
TMP_IMAGEへデスクトップを窓キャプチャ
TMP_IMAGEを簡易画像印刷
TMP_FORMを画面クリア
TMP_IMAGE壊
TMP_FORM壊
戻る。
#ここまで

何やら、メモリを開放していないように見えます。

(#483) RE:動的部品が壊れません。 - 粗茶 (2009-02-10 12:11) /高 未処理
他に部品を配置していると、それらのイベントも発生しない(取得しない?)ようです。

(#494) area - 緊急対策、駄目でした (2009-02-16 08:47) /高 アイデア
追記
何度か試してみると、私の環境でもそのソースを実行するとエラーが発生してフリーズしました。
以下のようなソースだとエラーにはならないのですが・・・原因が不明です。

//
テストとはフォーム
テストの可視はオン
テスボタンとはボタン
テスボタンの親部品はテスト
テスボタンのクリックした時は
  テスボタン→壊す
  作成処理

*作成処理
  テスボタンをボタンとして作成
  テスボタンの親部品はテスト
  テスボタンのクリックした時は~
    VCL_FREE(テスボタン)
    作成処理
//



壊す、ではなくVCL_FREEを使う事により一応同様の動作をする模様です。

//ここから
テストをボタンとして作成
テストのクリックした時は~
  VCL_FREE(テスト)
//ここまで

自分も昔壊すを使ってみましたが、何故か壊れないなあと思っており
その時にVCL_FREEを見つけ、使用してみると思ったように壊れてくれました。

代用できるとはいえ、できれば早めに修正してもらえると嬉しいですね。

(#502) 駄目でした。 - choco (2009-02-18 10:16) /高 未処理
areaさん、ありがとうございました。

でも、私のプログラムでは一回やっただけでおかしくなりました。
業務用プログラムでかなりの項目をフォームに展開するので、メモリを節約したいのです。
困った・・・・。

(#503) フォームだけ、壊すとだめみたい - hihiro (2009-02-18 12:53) /低 告知
フォームを壊すとだめみたいです。
私の作ったプログラムでは、問題なく壊れていますのでなぜだろうと思ったのですが。
他の部品なら壊すのはOKなようです。

chocoさんの元プログラム
#ここから
 印刷部品とはボタン
 その有効はオン
 その可視はオン
 そのテキストは「印刷」
 そのクリックした時は
 TMP_FORMをフォームとして作成
 TMP_FORM→可視はオフ。
 TMP_IMAGEをイメージとして作成
 TMP_IMAGE→親部品はTMP_FORM
 TMP_IMAGE→可視はオフ
 TMP_IMAGEへデスクトップを窓キャプチャ
 TMP_IMAGEを簡易画像印刷
 TMP_FORMを画面クリア
 TMP_IMAGE→壊す
 TMP_FORM→壊す
 戻る。
#ここまで


フォームをフォーム以外の部品に変更するとOK見たいです。
#ここから
印刷部品とはボタン
その有効はオン
その可視はオン
そのテキストは「印刷」
そのクリックした時は~
 TMP_FORMをボタンとして作成  #フォームからボタンに変更
 TMP_FORM→可視はオン。    #見えるようにオン
 TMP_IMAGEをイメージとして作成
 TMP_IMAGE→親部品はTMP_FORM
 TMP_IMAGE→可視はオン     #見えるようにオン
 TMP_IMAGEへデスクトップを窓キャプチャ
 TMP_IMAGEを簡易画像印刷
 TMP_FORMを画面クリア
 TMP_IMAGE→壊す
 TMP_FORM→壊す

#ここまで

(#504) フォームバグ? - choco (2009-02-18 14:18) /低 未処理
hihiroさん、GJです!

まさかフォームをボタンに置き換える技があるとは・・・・。
おかげさまで何とかなりそうです。
でも、やっぱりこれは何とかした方がいいですよね?w

なので状態を未処理のまま残しておきます。

(#643) 動的に作った時だけが問題でもないみたいです - FAM (2009-04-18 06:53) /低 未処理
普通に作ったフォームを壊した時もバグが起こるみたいです。
作っていたプログラムで原因不明のエラーが出て悩んでこのバグに行き着きました。
他の部品を壊した時はどうか、とかの細かい検証はしてません。

以下、バグの再現プログラムです。
テストフォームを壊さなければバグは出ませんし、『言う』ではなく『いう』なら(少なくとも今回は)バグが発生しません。
ソースを直接みたわけではないんですが、「壊す」の命令自体に問題があるような?

#ここから

テストフォームとはフォーム
テストフォームを壊す
「次にエラーが出ますよ!」と言う
終了

#ここまで

(#480)へ返信する:

👆お手数ですが、いたずら防止のために、「真夏」の読み方を記入してください。

編集時に使うキーを入力(省略可能)

画像ファイル(最大300KB)を添付可能