コマンドボタンを押したとき、最初にプロパティで設定していた再生ボタン「▼(→実際の画像は横向き)」を停止ボタン「■」にコードで切り替えることは可能でしょうか?
VB6であるならば、
Command1_Click()イベントの頭の方に
Command1.picture="■"'停止ボタンの画像を
指定すれば大丈夫だと思いますが・・・。
ファイルからの場合は
Command1.Picture = LoadPicture("画像ファイル名")
PictureBoxからなら
Command1.Picture = Picture1.Picture
とか
さささん、通ってみたさんありがとうございます。半分だけうまくいきました。(試したのはファイルからの方法です。)
以下のように記述していて、最初に▼→■にはなるのですが、■→▼に戻りませんIf分がおかしいのでしょうが、何かいい判断方法はありますか?
Dim w_start, w_stop As String
start = CurDir & "\start.gif"
stop = CurDir & "\stop.gif"
If Command1.Picture = LoadPicture(stop) Then
Command1.Picture = LoadPicture(start)
Else
Command1.Picture = LoadPicture(stop)
End if
またPictureBoxというのも気になります。初心者がわかるようなサイトあったら教えていただけませんか?
End If
おそらく
Command1.Picture = LoadPicture(stop)
が、どちらの場合もFalseになっているのでしょうね。
Pictureで判断するのではなくてFlgなどを宣言しておいて
判断されてはいかがでしょうか?
開発環境は、VB6です。実際は、配列を使用していて
Dim start, stop As String
start = CurDir & "\start.gif"
stop = CurDir & "\stop.gif"
If Command1(i).Picture = LoadPicture(stop) Then
Command1(i).Picture = LoadPicture(start)
Else
Command1(i).Picture = LoadPicture(stop)
End if
という感じです。合わせる為に、以下のようにFlgも配列にしようと試みましたが、書き方が悪いらしくエラーになってしまいます。ご存知でしたら教えてください。
Dim flg as Valiant ←subの外に設定(boolenやStringやIntegerなどいろいろ指定してみましたが・・・うまくいきません。)
Private sub XXX
Dim start, stop As String
start = CurDir & "\start.gif"
stop = CurDir & "\stop.gif"
If flg(i) = True Then ←ここで型エラー
Command1(i).Picture = LoadPicture(start)
flg(i) = false
Else
Command1(i).Picture = LoadPicture(stop)
flg(i) = true
End if
end sub
> Dim flg as Valiant ←subの外に設定(boolenやStringやIntegerなどいろいろ指定してみましたが・・・うまくいきません。)
ここを
Dim flg(...) As Variant
と Variant 型の配列として宣言してみてください。
Variant 型自体には配列も格納できますが、事前に配列値を代入しない
限り flg(i) という書式は使えなかったような記憶があります。
Geo=TK3 さんありがとうございます。教えていただいた方法
Dim flg(配列数を指定) As Variant
で私のやりたかったことができました!
解決されていますが、一応残った「PictureBoxから」というやつを
要は先にPictureBoxに画像を読み込んでおいて、それを代入する方法です
例えばPicture1(0)とPicture1(1)にそれぞれ停止と再生の画像を入れておきます
Option Explicitにて
Private PlayStop As Byte
Command1_Clickにて
PlayStop = PlayStop Xor 1
Command1.Picture = Picture1(PlayStop).Picture
とすれば切り替えできる・・・はずです
再生か停止かの状態のフラグは変数PlayStopで判断可能
試してないですが
ツイート | ![]() |