カスタムウィンドウ部品について

投稿者:アーク 投稿日:2024/07/13(Sat) 18:47:24 No.3016

いつもお世話になっております。アークです。

カスタムウィンドウ部品についての質問です。

既存のコントロールを組み合わせて手の込んだ画面を作りました。
それを後で簡単に再利用出来たらと思っていた処「カスタムウィンドウ部品」の存在を知りました。
そこで下記サンプルで初挑戦しているのですが良く分かりません。

メイン画面を表示する
待機する

メイン画面とは
  ウィンドウを継承する
  はじめの手順
    初期化する
    ーー貼り付けた部品に対する操作をここに書きます
  終わり
  初期化する手順
    この内容を「メイン画面」に変える
    初期化開始する
    マイ部品1というカスタムウィンドウ部品を作る
      その位置と大きさを{27,37,221,159}に変える
      その内容を「マイ部品」に変える
      ボタン2というボタンをマイ部品1へ作る
        その位置と大きさを{100,3,91,41}に変える
        その内容を「ボタン2」に変える
        その移動順を2に変える
      ボタン1というボタンをマイ部品1へ作る
        その位置と大きさを{3,3,91,41}に変える
        その内容を「ボタン1」に変える
        その移動順を1に変える
    初期化終了する
    この設計スケール比率を{144,144}に変える
  終わり
終わり

マイ部品とは
  カスタムウィンドウ部品を継承する
  はじめの手順
    初期化する
    ーー貼り付けた部品に対する操作をここに書きます
  終わり
  初期化する手順
  この位置と大きさを{15,15,466,247}に変える
  この内容を「マイ部品」に変える
  ボタン2というボタンを作る
    その位置と大きさを{100,3,91,41}に変える
    その内容を「ボタン2」に変える
    その移動順を2に変える
  ボタン1というボタンを作る
    その位置と大きさを{3,3,91,41}に変える
    その内容を「ボタン1」に変える
    その移動順を1に変える
  終わり
終わり

上記サンプルを実行しても「マイ部品」は表示されません。
ボタン1とボタン2が「メイン画面」と「マイ部品」の両方に存在しますが、
「マイ部品」側のボタンをコメントアウトしても実行時にボタンは表示されますが、
「メイン画面」側のボタンをコメントアウトすると表示されなくなります。
「メイン画面」側のレイアウトを表示するとマイ部品の領域と思われる矩形が確認できます。

期待していた動作と異なりパネルのような感じですが、
こういうものなのでしょうか?

Re^2: リサイズするについて

投稿者: 投稿日:2024/07/08(Mon) 14:16:18 No.3015

ゆうとさん、こんにちは 兎です。
うまくリサイズされました。有難うございました。

Re: リサイズするについて

投稿者:ゆうと 投稿日:2024/06/30(Sun) 00:17:52 No.3014

兎さん、こんにちは

> リサイズするという手順で縦横比を保ったまま縮小する事は出来ないのでしょうか?

1以下の数値を指定すると、縮小されます。

------
元画像を0.5倍リサイズしてリサイズ画像とする
------

お試しください。

リサイズするについて

投稿者: 投稿日:2024/06/26(Wed) 15:06:07 No.3013

こんにちは 兎です。

リサイズするという手順で縦横比を保ったまま縮小する事は出来ないのでしょうか?
マニュアルに書いてある 元画像を2.5倍リサイズしてリサイズ画像とする で拡大は出来たのですが、縮小はどのようにしたらよいのでしょうか?

もし可能なら、教えていただけると幸いです。

了解しました

投稿者:アーク 投稿日:2024/06/19(Wed) 20:50:35 No.3012

お世話になっております。アークです。

やはり仕様でしたか…。
この件、了解しました。

ありがとうございます。

32×32と16×16のみです。

投稿者:ゆうと 投稿日:2024/06/19(Wed) 03:46:29 No.3011

こんにちは。お世話になっております。

> それでは取得できなかったので「[ファイル]の[番号]番目から32でアイコン画像を抽出」で取得できました。
> そこで質問なのですが、《サイズ》に関しては32と16だけが有効でした。
> 他のサイズを指定してもエラーにはならず32のサイズが取得されました。
> 64などのサイズを取得する事は可能でしょうか?

アイコン抽出できるサイズについては、WindowsAPIの仕様で16×16または32×32のビットマップ形式のみです。
それ以外のサイズやアルファチャンネルを含むPNG形式は抽出できません。

WindowsAPIの仕様はこちらにも書いた通りです。
https://produ.irelang.jp/bbs/freshman/wforum-rdr.cgi?mode=read&no=24&reno=22&oya=22#24

アイコンの抽出に関しては、実装に手間がかかる割に、プロデル全体からするとニッチな需要しかありませんので、完全な抽出には対応予定はありません。
もしすべてのサイズ・形式のアイコン抽出をしたい場合にはSusieプラグインなどを使った方法も考えられると思いますので、検討してください。
https://github.com/utopiat-ire/Produire.Susie

アイコン取得機能について

投稿者:アーク 投稿日:2024/06/16(Sun) 11:58:17 No.3010

お世話になっております。アークです。

プラグインの説明では「《ファイルと番号》番目から《サイズ》でアイコン画像を抽出」となっていますが、
それでは取得できなかったので「[ファイル]の[番号]番目から32でアイコン画像を抽出」で取得できました。
そこで質問なのですが、《サイズ》に関しては32と16だけが有効でした。
他のサイズを指定してもエラーにはならず32のサイズが取得されました。
64などのサイズを取得する事は可能でしょうか?

よろしくお願いいたします。

◆動作環境情報◆
プロデル 1.9.1253
Windows 10 Pro 64ビット
メモリ:7.87 GB

Re^3: ピクチャーを印刷すると右端が切れる

投稿者:アーク 投稿日:2024/06/10(Mon) 15:58:39 No.3009

アークです。

印刷時に必要な設定は多数あり簡単とは言えません。
現行のモニタの解像度を96dpiとするならA4サイズは1123×794pxになります。
この範囲内なら端が切れる事なく印刷可能です。

但し、プリンタの解像度はそれより遥かに高く、
印刷用としては最低でも300dpi程度は必要です。
これをピクセルに直すと3508×2480pxにもなります。

次にこの大きさの画像が用意できたとしても、
プリンタドライバの設定が正しく行われていないと一部が欠けたり、
綺麗に印刷されない結果となります。

此処から先は直接プロデルとは関係ない話になりますので、
此処に書く事は御迷惑になるのでできません。

続きは私のサイトにお越しください。

Re^2: ピクチャーを印刷すると右端が切れる

投稿者:ひよこ 投稿日:2024/06/10(Mon) 15:33:11 No.3008

アークさんこんにちは。お世話になっております。
色々試してみましたが、今の私の技量ではうまくいかず最終的にアークさんのプログラムを参考にし、倍率を0.67とする事で対応しました。
アークさんが仰られているdpiのせいか印刷するとぼやけた感じになっており、こちらの問題も過去ログ等参考に色々弄ってみたのですが特に変わりなく、一応見れるので今回は妥協しました。
今後はこの辺りの問題を解決できるようステップアップしていきたいと思います。
この度はご教授頂き有難う御座いました。

Re: ピクチャーを印刷すると右端が切れる

投稿者:アーク 投稿日:2024/06/08(Sat) 11:55:08 No.3007

ひよこ さん、こんにちは。アークです。

「右端が切れる」とはどういう事何かも含めて確認してみました。
プリンタには「銜え」が有るので「フチなし印刷」を選択しないと欠ける事は有ります。
プレビューで確認する必要があるのでひよこ さんのコードを少し変更しました。

--------------------------------------------------------------------------------------------------------------------
メイン画面を表示する
待機する

メイン画面とは
ウィンドウを継承する

はじめ手順
初期化する
終わり

初期化する手順
    ーー自動生成された手順です。ここに書き加えたプログラムは消える可能性があります
    初期化開始する
    この実質大きさを{282,253}に変える
    この初期位置を「手動」に変える
    この内容を「スクリーンショット」に変える
    このドラッグドロップを○に変える
    この文字色を「標準の文字」に変える
    キャンバス1というキャンバスを作る
      その位置と大きさを{0,24,282,229}に変える
      その移動順を3に変える
      その自動調整を○に変える
      その文字色を「標準の文字」に変える
      そのドッキング方向を「全体」に変える
    メニュー1というメニューを作る
      その位置と大きさを{0,0,282,24}に変える
      その内容を「メニュー1」に変える
      その移動順を2に変える
      その文字色を「標準の文字」に変える
      キャプチャC項目というメニュー項目をメニュー1へ追加する
        その表示を○に変える
        その内容を「キャプチャ(&C)」に変える
        アクティブウィンドウA項目というメニュー項目をメニュー1のキャプチャC項目へ追加する
          その内容を「アクティブウィンドウ(&A)」に変える
        画面全体F項目というメニュー項目をメニュー1のキャプチャC項目へ追加する
          その内容を「画面全体(&F)」に変える
        メニュー項目1という区切り線部品をメニュー1のキャプチャC項目へ追加
          その大きさを{172,6}に変える
        保存S項目というメニュー項目をメニュー1のキャプチャC項目へ追加する
          その内容を「保存(&S)」に変える
        メニュー項目2という区切り線部品をメニュー1のキャプチャC項目へ追加
          その大きさを{172,6}に変える
        プレビュー項目というメニュー項目をメニュー1のキャプチャC項目へ追加する
          その内容を「プレビュー」に変える
        印刷項目というメニュー項目をメニュー1のキャプチャC項目へ追加する
          その内容を「印刷」に変える
        メニュー項目3という区切り線部品をメニュー1のキャプチャC項目へ追加
          その大きさを{172,6}に変える
        閉じるC項目というメニュー項目をメニュー1のキャプチャC項目へ追加する
          その内容を「閉じる(&C)」に変える
    初期化終了する
  終わり

  アクティブウィンドウA項目がクリックされた時の手順
    3秒待つ
    現在ウィンドウをスクリーンショットとして取り込んで、イメージとする
    キャンバス1へ画像を描いて、背景とする
    そのページは、-1
    その表示は、〇
    背景の画像は、イメージ
    キャンバス1を更新する
  終わり

  画面全体F項目がクリックされた時の手順
    画面全体をスクリーンショットとして取り込む
    キャンバス1の画像をそれに変える
  終わり

  保存S項目がクリックされた時の手順
    保存画面のフィルタを、「画像ファイル|*.bmp;*.png|ビットマップ|*.bmp|PNG|*.png|すべてのファイル|*.*」に変える
    保存画面を表示する
    保存画面のキャンセルなら、手順から抜ける
    ファイル名は、保存画面のファイル名
    キャンバス1をファイル名へ保存する
  終わり

  プレビュー項目がクリックされた時の手順
    プリンタ1というプリンタを作る
    プリンタ1の横向きを、○に変える
    プリンタ1へキャンバス1を印刷プレビューする
  終わり

  印刷項目がクリックされた時の手順
  プリンタ1というプリンタを作る
  プリンタ1の用紙サイズは「A4」
  プリンタ1へキャンバス1を確認して印刷する  
  終わり

  閉じるC項目がクリックされた時の手順
    閉じる
  終わり

終わり
--------------------------------------------------------------------------------------------------------------------

実際に此方で確認してみた処、画面上ではキャプチャできていても、
印刷プレビューでは欠ける場合が有る事を確認しました。(2592×1936px)

しかし、十分に小さな画像では問題有りませんでした。(800×523px)
通常、プリンタで綺麗に印刷するには300dpi程度は必要ですし、
多くのモニタの解像度は96dpiです。
印刷時にはこれ等を考慮しないと問題が発生しやすいです。

▲ページの先頭へ

- WebForum -