• ベストアンサー

イメージコントロールについてVB6

Image1.Picture = LoadPicture("C:\VB練習\テストプログラム\ime1.jpg") と作ります。当然作っている時は上の順番でフォルダ から読み込まれてime1.jpgが表示されます。 ただ配布用にパッケージしてから他のPCで起動させると ("C:\VB練習\テストプログラム\ime1.jpg") が見当たりませんのようなエラーが出てプログラムが起動しません(T_T; 対処方法はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 No.1の方と言いたいことは同じですが、 現在のパスが変更される可能性を考慮して、CurDirではなく、 App.Path でExeファイルのパスを取得した方がいいと思います。 一応、末尾の「\」の有無を考慮して、以下のようにします。 Dim tempPath As String 'ファイルのパス tempPath = App.Path If Right(tempPath, 1) <> "\" Then   tempPath = tempPath & "\" End If Image1.Picture = LoadPicture(tempPath & "テストプログラム\ime1.jpg")

a12b12
質問者

お礼

出来ました! ただ、 Image1.Picture = LoadPicture(app.path & "\ime1.jpg") と試しにやってみたのですが、これで VB練習\テストプログラム&"\ime1.jpgまで見れたのですがダメなのでしょうか???

a12b12
質問者

補足

ありがとうございます! え・・と初心者でcurdirとapp.pathはどこが 違うのかわかんないです?すみません。T_T? >現在のパスが変更される可能性を考慮して、CurDirではなく、 とありますので、何かが大きく違うんでしょうけど 教えて頂けますでしょうかm__m;;;

すると、全ての回答が全文表示されます。

その他の回答 (6)

noname#6715
noname#6715
回答No.7

作ったアプリはちゃんとデバッグしましょう #5のソースなど 思いっきり call ppp("テスト成功です") 書いてたりするが call ppp("テスト成功") ですね(爆)

a12b12
質問者

お礼

でもでした^^ またお世話になります!

すると、全ての回答が全文表示されます。
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.6

>Image1.Picture = LoadPicture(app.path & "\ime1.jpg") >と試しにやってみたのですが、これで >VB練習\テストプログラム&"\ime1.jpgまで見れたのですがダメなのでしょうか??? Exeファイルがある場所が、ドライブ直下の場合、App.Pathは、 「C:\」 と、末尾に"\"が付いてしまいます。 したがって、この場合には、 App.Path & \ime1.jpg は、 「C:\\ime1.jpg」 となり、エラーになってしまいます。 このような、考えられるエラーは、可能性が極小でも回避措置を取っておくべきです。 >それを書かずにaの中のbのみを書き換える事は可能でしょうか? 基本的には無理です。 変数aには、 「こんにちは初心者です。」 の「初心者」の部分が、変数bによって代入されたという情報は保持されないからです。 さらに、代入のコードを書かない限り、内容を変更することは出来ません。 似たような方法としては、前後に 「こんにちは」「です。」 を付ける操作を1つのFunctionプロシージャにしておくというものでしょうか。 つまり、 Private Function Test(s As String) As String   Test = "こんにちは" & s & "です。" End Function というプロシージャを作成しておいて、コマンドボタン1のクリックイベントで、 b = "テスト成功" a = Test(b) とします。 もちろん、Form_Loadイベントの方も、 b = "初心者" a = Test(b) とします。 いずれにせよ、変数aに代入しない限り内容は変更出来ませんが。

a12b12
質問者

お礼

どもです^^ またお世話になります。

すると、全ての回答が全文表示されます。
noname#6715
noname#6715
回答No.5

こんにちわ---->こんにち「は」 という突っ込みは置いといてっと。 CurDirとApp.pathの説明は別な方にゆずるとして・・・ (うまい説明思いついたら自分が。) >もう一ついいですか? 本当は改めて質問立てて欲しいけどどうぞ。 「直接は」出来ない気がする '---------ここから---------- Private a as String Sub ppp(a1 as String) a = "こんにちは" & a1 & "です" End Sub Private Sub Form_Load() call ppp("初心者") End Sub Private Sub Command1_Click() call ppp("テスト成功です") End Sub Private Sub Command2_Click() call ppp("VBマスターa12b12") End Sub '-----------ここまで------

すると、全ての回答が全文表示されます。
noname#6715
noname#6715
回答No.4

実はよく知らなかったので(おぃ調べてみました http://donnk.com/Fudi/VBtips/VBtips12.html の解説、わかりやすいかな?

a12b12
質問者

補足

どもです!^^これから見てみます! もう一ついいですか? 他の掲示板で聞いたのですが出来ないと言われましたT_T; なんか方法がないでしょうか? -----------------------------------------------   Private Sub Form_Load() b = "初心者" a = "こんにちわ" & b & "です。" End Sub ※これで「こんにちわ初心者です。」となります。 ●次にコマンドボタン1を押すとbの値が変わります。 Private Sub Command1_Click() b = "テスト成功" End Sub このcommand1に a = "こんにちわ" & b & "です。" と記載すれば「こんにちわテスト成功です。」となりますが それを書かずにaの中のbのみを書き換える事は可能でしょうか?

すると、全ての回答が全文表示されます。
noname#6715
noname#6715
回答No.3

>himajin2003さんはVB歴どれほどなんでしょう^^; 短いです。人に言えるほどの力はありません。 #以前、保存関係のものを回答した覚えがありますが、 何で「保存する処理を別のプロシージャにして」 Callで呼ばなかったんだろう・・・ >現在のパスが変更される可能性を考慮して、 >CurDirではなく、 ええ、実はめちゃくちゃ不安でした(^^;;: コマンドプロンプトのcd見たいなコメント 知らないけどあるんじゃないかって。 maruru01さんのApp.pathを使う手の方が適切。 環境変数とかの利用も考えていました 学習されては>a12b12様。 セットアッププログラムでレジストリ残したり する方法知らないです(^^;;;;

a12b12
質問者

お礼

出来ました! ただ、 Image1.Picture = LoadPicture(app.path & "\ime1.jpg") と試しにやってみたのですが、これで VB練習\テストプログラム&"\ime1.jpgまで見れたのですがダメなのでしょうか???

a12b12
質問者

補足

環境変数やってみます!^^/ VB歴短くてそのレベル!!!すごいです!天才・・・・

すると、全ての回答が全文表示されます。
noname#6715
noname#6715
回答No.1

>イメージコントロールについてVB6 ん~、 今回の内容は もちろん、ime1.jpgは同梱したよね? 実はイメージコントロールの話じゃないんだよね(汗) 貴方は***.exeを含めたフォルダを"C:\VB練習\テストプログラム"に作るかもしれないけど 他の人は"C:\Program Files\VB練習\テストプログラム"にインストールするかもしれない そうなると画像は "C:\Program Files\VB練習\テストプログラム\ime1.jpg" にあるのであって、そのコードを実行したときに「ファイルがない」 って言われるのは明らかだ。 そこで提案。 CurDir関数を利用するとかはどうだろう?? Image1.Picture = LoadPicture(CurDir & "テストプログラム\ime1.jpg") とかにするの。 CurDir関数はexeファイルの入っているフォルダをString型で返す。 だからexeが"C:\VB練習"にあれば "C:\VB練習\テストプログラム&"\ime1.jpg" "D:\VB練習\テストプログラム"にあれば "D:\VB練習\テストプログラム" & "\ime1.jpg" と柔軟に対応できる。

a12b12
質問者

お礼

いつも本当にありがとうございます。 顧問先生になってほしいくらいです。 他の方に回答しているのも見ましたが himajin2003さんVB分かりすぎ^^;(うらやましいです。 himajin2003さんはVB歴どれほどなんでしょう^^; すばらしい・・・ まずやってみますね^^//

すると、全ての回答が全文表示されます。

関連するQ&A