投稿者:ゆうと 投稿日:2022/10/05(Wed) 17:46:27 No.2783
こんにちは。
> 久々にインストールしている1.9を最新版(1.9.1150)に更新してみました。
> すると、未代入の変数を参照した際にエラーが出るようになったようです。
> この仕様は1.9の仕様として確定なのでしょうか。
確定ではありませんが、試験的に意図した仕様変更です。
変更した理由は、分かりやすいエラーを表示するため、バグの原因を特定しやすくするためです。
短いプログラムでは、問題ないかと思いますが
ある程度のプログラムになると、未代入の変数を参照したことが原因のエラーが起きた時に
エラーの原因が、未代入変数の参照であることが分かりづらいケースがあり
未代入であることをエラーとすることにしました。
> 個人的には1.7の仕様のままだと助かるのですが。
この仕様は、1.9で試験的に採り入れた仕様で、確定はしていません。
今後、既存のプログラムの影響具合なども考慮したいと思います。
この件については、場合によっては破壊的変更となる可能性がありますのでご了承ください。
今後ブログにも掲載致します。
ご質問ありがとうございます。
投稿者:アーク 投稿日:2022/10/05(Wed) 17:00:40 No.2782
こんにちは。アークです。
その後の調査で分かった事が有ります。
アイコンを指定しても即反映には至らないようです。
また、関連付けの削除の方は全く働かないようです。
Windowsのバージョンの違いなのか途中で何か変更が有ったのか、
「管理者として実行」に関係なくシステムに妨害されているような気もします。
Produire V1.8.1150
Windows 10 V21H2
安全上そうなっているのなら諦めます。
投稿者:アーク 投稿日:2022/10/05(Wed) 16:47:36 No.2781
陸 さん、アークです。
コメントありがとうございます。
作成中のプログラムはその性質上、関連付けが必要になった時点で再起動する事はできないので、
二者選択しか無いのなら1の方法を採らざるを得ません。
只、できる事なら組み込みたいと思った次第です。
投稿者:陸 投稿日:2022/10/04(Tue) 16:41:35 No.2780
こんにちは。
当方、画像を目視で確認できないため、OCRした結果にてエラー内容を確認しました。
解凍が的外れだったらすみません。
個人的には、あとで同じようなエラーメッセージで検索などをした際に見つけやすくなると思うので、できればエラーメッセージはテキストで貼り付けていただけると助かるのですが、私は管理者ではないので、これ以上は避けたいと思います。
さて、本題です。
ファイルの関連付けはレジストリへアクセスすることが必要です。
プロデルで利用している関連付けの操作は、管理者権限が必要なようです。
一応ユーザー権限でも関連付けをすることは可能ですが、プロデルは未対応のようです。
そのため、対処法としては2つ考えられます。
1.関連付け専用の実行ファイルを作り、関連付けしたいアプリからその実行ファイルを呼び出して関連付けさせる。
その際、関連付け専用の実行ファイルは常に管理者権限で実行されるようにするとよいと思います。
2.1つの実行ファイルで解決したい場合は、コマンドライン引数を利用して、関連付けのためのオプションが指定された場合、管理者権限で再起動して関連付けを行う。
こんな感じのプログラムをプログラムの先頭に入れておけばよいと思います。
一応動くとは思いますが、ちゃんと動作検証してないので、もしうまく動かなかったらすみません。
----- サンプルここから -----
もし(プログラムの起動時設定から「/associate」を探したもの)の個数が0より大きいなら
もしプログラムの管理者権限が×なら
[プログラムのファイル名]を{「/associate」}で起動して待つ
でないなら
ーーここにファイル関連付けのコードを記載する
もし終わり
もし終わり
--------------------
ちなみに、関連付けをした場合、レジストリに情報が残るので、なんらかの方法で関連付けを解除できるようにしておく必要があります。
以上、参考になれば幸いです。
投稿者:ten 投稿日:2022/10/04(Tue) 12:15:20 No.2779
にぽさん、ありがとうございました。
にぽさんの投稿を見て、突如「ひょっとして」と閃き、確認してみました。
Windowsのディスプレイ項目で、「拡大と縮小」部分、125%設定で普段使っているのを100%にしてみたところ、正しい表示になりました。
Windows側の設定が125%の場合は、設計スケール比率を{96,96}に変えることで、「想定通り」になった・・・(と思います)。ただ、このままでは、キャンバスの方に設計スケール比率を適用できない(やり方が分かっていないだけかも)せいか、完全には思うようにならないので、「ウィンドウを継承する」を使ったやり方をもう少し勉強して、そちらを使おうと思います。
ありがとうございました!
投稿者:アーク 投稿日:2022/10/04(Tue) 10:50:27 No.2778
こんにちは。アークです。
いつもお世話になっています。
プログラム側で何とかするものではなく、
アイコンはシェルが表示しているので設定すれば良かったのですね。
只、サンプルを実行すると添付写真のようなエラーが出てしまいました。
実行ファイルにして管理者として実行したらエラーを吐かず設定されました。
…という事は普通にプログラムに組み込む事はできないのでしょうか。
何か方法が有りましたら宜しくお願いします。
投稿者:にぽ 投稿日:2022/10/03(Mon) 22:31:33 No.2777
こんにちは。
同じコードで試してみましたが,再現しません。どのバージョンをお使いですか。
私の環境は以下の通りです。
◆動作環境情報◆
プロデル 1.8.1150
Windows 10(64)
メモリ:63.8 GB
投稿者:陸 投稿日:2022/10/02(Sun) 23:59:20 No.2776
お世話になっております。
久々にインストールしている1.9を最新版(1.9.1150)に更新してみました。
すると、未代入の変数を参照した際にエラーが出るようになったようです。
下記はかなり極端な例ですが、これだけでもエラーが表示されます。
----- サンプル -----
内容を「」として表示する
--------------------
今まで1.7でうまく動いていたプログラムがいきなり動かなくなってしまい、いろいろ調べていたのですが、上記のようなことがわかりました。
この仕様は1.9の仕様として確定なのでしょうか。
個人的には1.7の仕様のままだと助かるのですが。
環境は、Windows11 22H2、プロデル 1.9.1150です。
以上、よろしくお願いいたします。
投稿者:ゆうと 投稿日:2022/10/02(Sun) 23:22:03 No.2775
こんにちは お世話になっております。
たぶん関連付けの話かと思います。
https://docs.utopiat.net/rdr/manual/plugins/systeminfo/fileassociation.htm
実行可能ファイルには関連付け用のアイコンを別に設定できないので
アイコンは.icoファイルで単独で用意してください。
投稿者:ten 投稿日:2022/10/02(Sun) 17:04:28 No.2774
お世話になります。描画系の機能を練習しているのですが、サイズの扱いが今一つ良く分からなくて・・・
下記サンプルですが、ウインドウ400×400に対し、300×300のキャンバスを作りました。この時、別途座標を取得して試したところでは、ここまでは、多分、想定通りのサイズになっています。
ところが、ここに四角を描画すると、サイズが「思っているのとは異なる」結果に。位置はいちばん左端からの描画で、サイズ指定は横幅240・・・なのに、キャンバスの横幅サイズ300の右端まで到達してしまいます。調整は可能なのですが、理由が分からないままに作るのは、危険だろう、ということで、質問に上がりました。どうかよろしくお願い致します。
----サンプル----
窓というウィンドウを作る
その実質大きさを{400,400}に変える
窓を表示する
窓にキャンバス1というキャンバスを作る
その位置は、{0,0}
その大きさは、{300,300}
その背景色を白色に変える
キャンバス1へ四角形を描く
その位置は、{0,0}
その大きさは、{240,30}
その背景色を黄色に変える
キャンバス1を更新する
待機する
----
- WebForum -