喫茶XRAYトップページ

[スレッド全体
]

[11590] リソースのビットマップ取得返信 削除
2017/11/24 (金) 21:15:16 Mr.XRAY
以下のサンプルを追加しました.

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


[11601] Re:リソースのビットマップ取得返信 削除
2017/11/27 (月) 13:49:48 Mr.XRAY
> [907_リソースのビットマップを取得]
> http://mrxray.on.coocan.jp/Delphi/plSamples/907_GetResourceBitmap.htm


[コンポーネントアイコンの保存場所について]
http://madia.world.coocan.jp/cgi-bin/DelphiBBS/wwwlng.cgi?print+201711/17110004.txt

↑ を読んで,そういうサンプルを掲載してもいいと思って書いた記事です.
決してレス用ではありません.
記事を書いてからレスしようとは思いましたが,
できそこないのエニグマみたいなので,どうレスしていいのやら.


>これはどこに保存されているのでしょうか?

.BPL ファイルに格納されています.

>あれってたくさんありますけど

ん ? この後の書き込みでは見つからないと書いているけど,
どうしてたくさんあると分かったの ?

>パレット生成時にはどのようにして採取しているのかわかりますでしょうか?

そんなの知らないよ.Delphi (の IDE)がっやっているんだから.
それに「採取」っていうのは変だよ.

>画像ファイルが欲しいのではなく

画像が取得できなければ保存できないけどね.

>みんなD7つかっていると思っていました。

そんなことはないでしょう ? みんなって誰のこと ?

>リソースエディーターで取得したいと言う意味ではなく

つまり,リソースの構造は分かっているのね.
んじゃリソース関係で検索してみたら ?

>まさにそれです!!

それって何 ?
「あれ」とか「それ」で分かるの ?

>見方がわからないんですが、keyがファイル名になっているんでしょうか?

レジストリエディタの使い方勉強したのがいいよ.

>そう。そこ見ていけるような気がしていたんですが

だから「そこ」って何 ?
いけるような気がするなら,やってみたら ?
やらなければ始まりません !!

>上記によりDPL名がわからないため

「上記」って何 ?
さっきたくさんあるけどと書いているけど,そのたくさんじゃないの ?
たくさんって何がたくさんあるの ?

その後は反応なし.
つまり,ネット上に何か書きたかったのね.


[11603] Re2:リソースのビットマップ取得返信 削除
2017/11/27 (月) 18:29:44 SO
▼ Mr.XRAYさん
> > [907_リソースのビットマップを取得]
> > http://mrxray.on.coocan.jp/Delphi/plSamples/907_GetResourceBitmap.htm


と言っても、良い記事にしちゃうマスター、エライ(^-^)b

[11604] Re3:リソースのビットマップ取得返信 削除
2017/11/27 (月) 18:54:09 Mr.XRAY
▼ SOさん

> と言っても、良い記事にしちゃうマスター、エライ(^-^)b

良いかどうかはともかくとして,
質問があるということは,そのようなことを望んでいる人かいるかも知れない,
とうことですね.
中々気づかないです.
気が付かないというのは,どんな要望というか,どんなとこをしたいのか,
ということだけでなく,何が不明なのかということも含めてですね.

でも例によって「難解」だったりして (笑)
某掲示板で質問したような方には「難解」と言われたくないですが.ハハハッ.


[11605] Re4:リソースのビットマップ取得返信 削除
2017/11/27 (月) 19:08:09 Mr.XRAY
ところで参考までに,
掲示板のレスで

http://www.geocities.jp/asumaroyuumaro/program/tips/BitmapResource.html

のリンクがあります.
もちろん,このコードでリソースのビットマップが取得できます.
しかし,BPL のコンポーネントのビットマップは取得できません.

リソースを列挙する時の,以下のコードがミソなんです.
(MSDN の記事をそのまま Delphi のコードにしただけですが)

        //リソース名のチェック
        //上位WORD(2バイト)が 0ならIDは数値.それ以外は文字列のポインタ
        if HiWord(Cardinal(lpszName)) = 0 then begin
          LResIDStr := IntToStr(Cardinal(lpszName));
        end else begin
          LResIDStr := lpszName;
        end;

それと上の Asuyu さんのコードでは,列挙した後,
目的のリソース ID のビットマップの検索に再度 EnumResourceNames を実行していますが,
これをしなくてもリソースID が分かっていれば,
記事に掲載している以下のコードで取得できます.

        if LItemInt < 0 then begin
          LBitmap.LoadFromResourceName(LhModule, LItemStr);;
        end else begin
          LBitmap.LoadFromResourceID(LhModule, LItemInt);
        end;

このあたりは,私も同じようなことよくやってしまっています.
サンプルを書いて実行して,後になって気づくことがあります.
つまり,新規に記事を掲載ていたがかの時はまだダウンロードしない方がいいです.
しばらくは細かい修正しています.


[11606] Re5:リソースのビットマップ取得返信 削除
2017/11/27 (月) 19:25:18 Mr.XRAY
> もちろん,このコードでリソースのビットマップが取得できます.
> しかし,BPL のコンポーネントのビットマップは取得できません.


もし,質問した方が,Asuyu さんのコードで実際にテストしたけど,
ビットマップが取得できなかった,という反応を示したのあれば,
なら,とレスしようとは思ったのですが,

しかし,それ以前の問題,あるいは問題は別にあるようです.


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82