喫茶XRAYトップページ


[13380] コンポーネントのアイコンがある場所返信 削除
2020/5/29 (金) 15:09:50 Mr.XRAY
http://mrxray.on.coocan.jp/bbs/DelphiBBS/mrxray_delphifan_coffe.cgi?tree=s13365#13365

この今回の質問では,
>
> FORMATDIALOG
> VHANGEICONDIALOG
> SHUTDIALOG


と,
「取得出来たり出来なかったり」

というのがネックになっているわけです.
サンプルに問題があるのかは,現段階では不明です.

コンポーネントは必ずどことかのパッケージにインストール
することになっています.
コンポーネントのアイコンは,そのインストール先 (登録先) の
コンパイル済みパッケージファイルにあります.
そのファイルの拡張子は .bpl です.

拡張子 .bpl ファイルの場所は以下の手順で確認できます.

(1) Delphi の IDE を起動
(2) [コンポーネント} [パッケージのインストール]
(3) 右ペインのリストから,どれかのコンポーネントを選択
(4) ダイアログ下部に .bpl のフルパスが表示される



[13381] Re:コンポーネントのアイコンがある場所返信 削除
2020/5/29 (金) 15:11:28 Mr.XRAY
> 拡張子 .bpl ファイルの場所は以下の手順で確認できます.

.bpl ファイルのフルパスがわかれば,以下の記事のサンプルで
アイコンとしてのビットマップ画像を確認できます.
([パッケージのインストール]ダイアログの [コンポーネント] でも確認できます)

[ 907_リソースのビットマップを取得 ]
http://mrxray.on.coocan.jp/Delphi/plSamples/907_GetResourceBitmap.htm


Delphi に標準で実装されていないコンポーネントで,
後からインストールしたコンポーネントの場合,
.dcr ファイルがあれば,その中にコンポーネントのアイコンがあります.
それも上で示した記事のサンプルで画像を確認できます.


.bpl 内のコンポーネントのアイコンも,.dcr 内のコンポーネントのアイコンも,
以下のプログラムを使用しても確認できます.

[ 163_コンポーネントのアイコン作成支援プログラム ]
http://mrxray.on.coocan.jp/Delphi/plSamples/163_CreateCompoIconRes.htm


[13382] Re2:コンポーネントのアイコンがある場所返信 削除
2020/5/29 (金) 15:12:30 Mr.XRAY
まれに,.dcr ファイルが添付されているコンポーネントでも,
.dcr 内にコンポーネントのアイコン画像が格納されていないことがあります.
この場合,IDE のコンポーネントパレットには継承元のコンポーネントの
アイコンが使われます.
継承元にアイコンがない場合は,デフォルトのアイコンが使われます.

[ コンポーネントのデフォルトのアイコン ]
http://mrxray.on.coocan.jp/Delphi/plSamples/163_CreateCompoIconRes.htm#fig1


[13383] Re:コンポーネントのアイコンがある場所返信 削除
2020/5/29 (金) 16:21:49 Mr.XRAY
コンポーネントのアイコンの「アイコン」は,拡張子が .ico の画像の意味ではありません.
この場合の「アイコン」は「オブジェクトを特徴づける画像」の意味です.
Windows の場合,小さな画像の意味でも使われることがあります.

コンポーネントのアイコンは,ビットマップです.
Delphi は便利です.
英語で icon は「アイコン」です.
TIcon ならば,拡張子が .ico の画像を扱うことを意味します.

同じ様に,
Panel は「板」ですが,TPanel は TPanel コンポーネントです.
WebBrowser は「ウェブブラウザ」ですから,IE, FireFox 等です.
TWebBrowser と書けばブラウザ用のコンポーネントになります.


[13384] 解決への道返信 削除
2020/5/29 (金) 23:55:24 Mr.XRAY
>「取得出来たり出来なかったり」
> というのがネックになっているわけです.
> サンプルに問題があるのかは,現段階では不明です.


このことを解決するには,とにかくネット上からあらゆるコンポーネントを
ダウンロードしてテストして,同じ現象が発生することを確認することです.
当たり前ですが,現象が発生しないと調べることができません.
現在,Windows 8.1 に Delphi 7 をインストールして作業進行中です.

早期解決の方法は,質問された方からの情報です.
質問された方の協力が有効です.


[13385] Re:解決への道返信 削除
2020/5/30 (土) 15:01:41 Mr.XRAY
> 現在,Windows 8.1 に Delphi 7 をインストールして作業進行中です.

TMS Software で TFormatDialog というコンポーネントを見つけました.
Trial 版がありました.
そのコンポーネントを含むパックをインストールしました.

TMS VCL UI Pack Full Component List
https://www.tmssoftware.com/site/tmspcklist.asp

残念ながら,bpl ファイルから TFORMATDIALOG のアイコンが取得できました

コンポーネントのアイコンのリソースファイルは dcr ファイルです.
bpl はコンポーネントのアイコン専用のリソースファイルではありません.
ですから,コンポーネントのアイコンが格納されていない bpl もあります.

そういうことなのかな,とも思ったのですが,
質問の文章からは,どう考えてもそう解釈することは出来ません.

クソッ〜 !!  一体何なんだ !?


※ TMS Software のコンパイル済みパッケージの名前は
   TMSVCLXXX.bpl となっています.
   XXX の部分はコンポーネント類と Delphi のバージョンによって違います.


[13386] クラス名の先頭は T返信 削除
2020/5/30 (土) 16:34:47 Mr.XRAY
> > 現在,Windows 8.1 に Delphi 7 をインストールして作業進行中です.
> 残念ながら,bpl ファイルから TFORMATDIALOG のアイコンが取得できました


質問された方は FORMATDIALOG が取得できないと書いています.
サンプルプログラム集の [907_....] で取得するのは,
TFORMATDIALOG という,コンポーネントのクラス名を大文字にした文字列です.
これがリソースの ID と呼ばれる値です.

クラス名というのは,例えば,多くの方が使うような,StringGrid ではなく,
先頭に大文字の T を付けた TStringGrid です.

今回のテストでは,FORMATDIALOG のアイコンは取得できていません.
FORMATDIALOG は,コンポーネントのクラス名ではありません.


英語で icon は「アイコン」です.
これは,オブジェクトを特徴付ける画像のことです.
先頭に T を付けたクラス名の
TIcon は,拡張子が .ico の画像を扱うクラスを意味します.

Panel は「板」ですが,TPanel は TPanel コンポーネントです.
WebBrowser は「ウェブブラウザ」ですから,IE, FireFox 等です.
TWebBrowser と書けばブラウザ用のコンポーネントになります



[13387] Re:解決への道返信 削除
2020/5/30 (土) 20:13:28 Mr.XRAY
> 早期解決の方法は,質問された方からの情報です.
> 質問された方の協力が有効です.


先程思い出しました.
昔,あるブログに次のようなことが書かれていました.

「バグっているのを教えてあげたのに,後で見たら
私の手順に不備があるようなことが書かれていた」

この記事を書いた経過は分かりません.
今回質問した方も,もしかしたら,
「例のサンプルはアイコンが取得てきないことがあるよ」
と私に教えてくれたのかも知れません...
つまり,質問 (本当は質問ではない) した方は,喫茶XRAY は見ていない,
ということです

「私は Mr.XRAY に教えてあげた.彼がどう対応するかは関係ない」

ということなのかも知れません.
しかし,書き込みの内容からは,どんな手順で取得できないと判断したのかが
明確ではありません.

と思ったら急にやる気がなくなりました.
ということで,掲載している記事,サンプルコードもそのままとします.


# 質問者は,サードパーティ等の bpl ファイルから,コンポーネントのアイコンの
# 取得方法を訊いているのではなく,私のサンプルでは「取得てきない理由」です.
# でも取得できるので,取得できない理由というのはありませんです.


INCM/CMT
Cyclamen v3.82