C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[9]: 発行時の画像について


(過去ログ 89 を表示中)

[トピック内 13 記事 (1 - 13 表示)]  << 0 >>

■52734 / inTopicNo.1)  発行時の画像について
  
□投稿者/ 滝 (1回)-(2010/08/23(Mon) 18:20:16)

分類:[.NET 全般] 

vb2010の環境です。
まず、質問を端的に書きます。
1.自分の作ったプログラムに自分の作った画像を附属して発行したい。
2.相手の環境に合わせて、変化するようにコードを組みたい。
てなかんじです。
 1に関しては、自分の作ったプログラムに同じパソコン内の画像を使っているので、それもついでに、相手にインストールしてもらいたいということです。なお、ピクチャーボックスをコードで作り、配列化しています。インストールしてもらうほかに、このプログラム自体に埋め込むことができれば、文句はないのですが・・・。
 2に関しては、自分の環境と、相手の環境が違ったときに、変化するようにコードを組みたいのです。たとえると、フォームの左端からラベルの左端までの距離を、ディスプレイのサイズによって、変更するっていう感じです。
 簡単に書いてしまいましたが、何かいい解決方法等ありますでしょうか。
引用返信 編集キー/
■52739 / inTopicNo.2)  Re[1]: 発行時の画像について
□投稿者/ 魔界の仮面弁士 (1765回)-(2010/08/23(Mon) 20:23:00)
No52734 (滝 さん) に返信
> 1.自分の作ったプログラムに自分の作った画像を附属して発行したい。
EXE と同じフォルダに配置しておいては如何でしょう。
http://rucio.bbs.coocan.jp/?m=listthread&t_id=529

> 2.相手の環境に合わせて、変化するようにコードを組みたい。
変化とは、何がどのように変化するのでしょうか?

> たとえると、フォームの左端からラベルの左端までの距離を、ディスプレイのサイズによって、変更するっていう感じです。
距離が固定的な場合には、Anchor プロパティが使えます。
(Margin + Dock プロパティという手もあります)

距離が変動的な場合には、TableLayoutPanel を併用したり、あるいは
Load イベントや ResizeEnd イベント等に、サイズ変更のコードを書くのも手です。
引用返信 編集キー/
■52802 / inTopicNo.3)  Re[2]: 発行時の画像について
□投稿者/ 滝 (2回)-(2010/08/24(Tue) 17:59:40)
No52739 (魔界の仮面弁士 さん) に返信
> ■No52734 (滝 さん) に返信
>>1.自分の作ったプログラムに自分の作った画像を附属して発行したい。
> EXE と同じフォルダに配置しておいては如何でしょう。
> http://rucio.bbs.coocan.jp/?m=listthread&t_id=529
 では、C:\で始まるようにパスを書きかえればいいということでしょうか。
 ここでさらに質問なのですが、相手が保存先を変更したいと望んだ場合、そこまでのパスに書き換えるとかできるのでしょうか。できない、場合は、こちらの望むところに、保存させるという感じでもいいのでしょうか。
引用返信 編集キー/
■52803 / inTopicNo.4)  Re[3]: 発行時の画像について
□投稿者/ 魔界の仮面弁士 (1767回)-(2010/08/24(Tue) 18:07:22)
No52802 (滝 さん) に返信
>>>1.自分の作ったプログラムに自分の作った画像を附属して発行したい。
>>EXE と同じフォルダに配置しておいては如何でしょう。
>>http://rucio.bbs.coocan.jp/?m=listthread&t_id=529
>  では、C:\で始まるようにパスを書きかえればいいということでしょうか。
C:\ かどうかは別として、EXE と同じフォルダー、または EXE の下位フォルダーに
配置されるようにしておいては如何でしょうか、という事です。

また、画像が固定的 & 少量なら、リソース内に埋め込むのも手ですし、
インストーラー側で、My Picture 等のユーザー用フォルダーに配置させる
という選択肢もあるかと思います。


>  ここでさらに質問なのですが、相手が保存先を変更したいと望んだ場合、
ClickOnce 発行では無いのですね?


> そこまでのパスに書き換えるとかできるのでしょうか。
質問の意味がいまひとつ理解できませんが、パス情報は所詮は文字列なので、
相手が変更したという保存先をプログラムから認識できるのであれば、
そのパスから画像を読む事は可能だと思いますよ。
引用返信 編集キー/
■52804 / inTopicNo.5)  Re[3]: 発行時の画像について
□投稿者/ なちゃ (464回)-(2010/08/24(Tue) 18:09:00)
例えばexeのあるフォルダやそのサブフォルダなら、プログラムで場所を取得できます。
あるいは、リソースに入れてしまってもいいかも知れませんが。
引用返信 編集キー/
■52806 / inTopicNo.6)  Re[4]: 発行時の画像について
□投稿者/ 滝 (3回)-(2010/08/24(Tue) 18:16:34)
No52804 (なちゃ さん) に返信
> 例えばexeのあるフォルダやそのサブフォルダなら、プログラムで場所を取得できます。
> あるいは、リソースに入れてしまってもいいかも知れませんが。
すみません、リソースがわかりません。exeのあるフォルダは、相手のパソコンに入るのですね!
引用返信 編集キー/
■52808 / inTopicNo.7)  Re[5]: 発行時の画像について
□投稿者/ 魔界の仮面弁士 (1770回)-(2010/08/24(Tue) 18:47:06)
No52806 (滝 さん) に返信
>>あるいは、リソースに入れてしまってもいいかも知れませんが。
> すみません、リソースがわかりません。
先述の URL の「ビルドアクション:埋め込まれたりソース」がそれにあたります。
あるいはこのあたり。
http://dobon.net/vb/dotnet/programing/vsresource.html


> exeのあるフォルダは、相手のパソコンに入るのですね!
ネットワーク上の別の場所に置いておく手もありますよ。
たとえば、このようにして表示できます。

PictureBox1.LoadAsync("http://jeanne.wankuma.com/$images/banner/180x60.gif")
引用返信 編集キー/
■52809 / inTopicNo.8)  Re[4]: 発行時の画像について
□投稿者/ 滝 (4回)-(2010/08/24(Tue) 18:52:00)
 リソースの方法が、わかって、発行を試験的にしてみたんですが。
 もとになっているファイルを消したら、実行されないんですけど、
これってパスだけが保存されているっていうことですか。
 C:\Users\name\Documents\Visual Studio 2010\Projects\HERO\HERO\bin\Debug\file.gif
 という感じにパスがなっているんですが、事前にファイルの中に画像のデータを入れることができるのでしょうか。なにか、相手のパソコンに入るファイルに埋め込む?的なことができないでしょうか。
  また、保存先をプログラムで読み取るということに関しても、リンクサイト等教えていただけると幸いです。(難しくても、たぶんこっちの方がいいのかと思っております)
引用返信 編集キー/
■52811 / inTopicNo.9)  Re[5]: 発行時の画像について
□投稿者/ 魔界の仮面弁士 (1771回)-(2010/08/24(Tue) 19:08:14)
No52809 (滝 さん) に返信
>  リソースの方法が、わかって、
どのように設定しましたか?

>  もとになっているファイルを消したら、実行されないんですけど、
プロジェクトのプロパティで、リソースタブに表示される物に関しては、
プログラムからの読み込み時には、(C:\〜などの)パスを指定するのではなく、
 PictureBox1.Image = My.Resources.画像名
のような指定方法になります。
この場合、ビルド時に画像が exe 内に内部リソースとして埋め込まれますので、
そもそも削除する事自体ができません。

一方、ソリューション エクスプローラーの「出力ディレクトリにコピー」プロパティで
設定した外部リソースの場合、EXE と共に画像ファイルのコピーが用意され、それが
相手の環境にもコピーされる仕様です。読み込みには、その画像のパスを指定する事に
なりますので、インストール後にその画像ファイルを消してしまうと表示できません。
引用返信 編集キー/
■52814 / inTopicNo.10)  Re[6]: 発行時の画像について
□投稿者/ 滝 (5回)-(2010/08/24(Tue) 19:50:45)
No52811 (魔界の仮面弁士 さん) に返信
> ■No52809 (滝 さん) に返信
>> リソースの方法が、わかって、
> どのように設定しましたか?
>
>> もとになっているファイルを消したら、実行されないんですけど、
> プロジェクトのプロパティで、リソースタブに表示される物に関しては、
> プログラムからの読み込み時には、(C:\〜などの)パスを指定するのではなく、
>  PictureBox1.Image = My.Resources.画像名
> のような指定方法になります。
> この場合、ビルド時に画像が exe 内に内部リソースとして埋め込まれますので、
> そもそも削除する事自体ができません。
そうなんですか、無知ですいません。
えっと画像名には、exeファイルの入っているフォルダに入っている画像でいいんですか。
ちなみに、PictureBox1という感じではなくて、配列化してるんですけど、応用して使ってしまう感じでいいのでしょうか。
引用返信 編集キー/
■52817 / inTopicNo.11)  Re[7]: 発行時の画像について
□投稿者/ 魔界の仮面弁士 (1772回)-(2010/08/24(Tue) 20:25:19)
No52814 (滝 さん) に返信
> えっと画像名には、exeファイルの入っているフォルダに入っている画像でいいんですか。
「My.Resources.画像名」の部分では、デザイン時に設定されたリソース名を使います。
先述の URL の手順に従って実際に試してみてください。

リソースを登録した時点で、Resourcesフォルダ内に元画像のコピーが配置されますが、
この時に、元の画像ファイルから拡張子や特殊文字(ピリオドや空白等)を取り除いた名前で
リソース名が付けられます。


> ちなみに、PictureBox1という感じではなくて、配列化してるんですけど、応用して使ってしまう感じでいいのでしょうか。
それで良いと思います。PictureBox でも Form でも配列でも、取り扱いは自由です。

ただし、配列というのが、「My.Resource.画像1」や「My.Resource.画像2」の記述を
「My.Resource.画像(0)」「My.Resource.画像(1)」などと指定したいという意味であれば、
それはできません。

もしもリソースも配列のように取り扱いたいのであれば、
 Dim images() As Image = {My.Resources.画像1, My.Resources.画像2, My.Resources.画像3}
などとして自分で配列に代入しておくか、もしくは過去ログにあるように
GetStream メソッド経由で取得してみてください。
http://bbs.wankuma.com/search.cgi?no=0&word=29193&andor=and&logs=all&PAGE=20
引用返信 編集キー/
■52822 / inTopicNo.12)  Re[8]: 発行時の画像について
□投稿者/ 滝 (6回)-(2010/08/24(Tue) 21:30:01)
No52817 (魔界の仮面弁士 さん) に返信
リンク先の方法は、試してうまくいきました。
リソースをコードによって処理することはできないのでしょうか。

引用返信 編集キー/
■52824 / inTopicNo.13)  Re[9]: 発行時の画像について
□投稿者/ 魔界の仮面弁士 (1774回)-(2010/08/24(Tue) 21:33:50)
No52822 (滝 さん) に返信
> ■No52817 (魔界の仮面弁士 さん) に返信
> リンク先の方法は、試してうまくいきました。
> リソースをコードによって処理することはできないのでしょうか。

そのための手順も No52817 で示したつもりなのですが、
具体的にはどのような問題を抱えておられるのでしょうか?
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -