[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/09/26(Tue) 21:54
投稿者名:あおむし
Eメール:
URL :
タイトル:
画像を消去したいのですが・・・
こんばんは。初めて投稿させて頂きます。
VBの理解度が悪く、未だに使いこなせない者です。

ある条件で検索されたビットマップをイメージボックスに表示させた後、その表示を消去させた
いのですができません。
イメージボックスのVisibleをFalseにしたり、
Set Image1.Picture = LoadPicture()
を記述してみましたが、消すことができません。

消す方法をご存知の方、お教え下さい。

投稿時間:2006/09/26(Tue) 22:11
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: 画像を消去したいのですが・・・
> ある条件で検索されたビットマップをイメージボックスに表示させた後、その表示を消去させた
> いのですができません。
> イメージボックスのVisibleをFalseにしたり、
イメージボックス とは、表示設定はどのようにしていますか?

> Set Image1.Picture = LoadPicture()
> を記述してみましたが、消すことができません。
Image コントロールに描画しているなら、Set Image1.Picture = LoadPicture() で消えますが。

投稿時間:2006/09/27(Wed) 09:15
投稿者名:あおむし
Eメール:
URL :
タイトル:
Re^2: 画像を消去したいのですが・・・
花ちゃん 様
早速ご覧頂き、ありがとうございました。また、返事が遅くなってしまい、申し訳ございませんでした。

> > ある条件で検索されたビットマップをイメージボックスに表示させた後、その表示を消去させた
> > いのですができません。
> > イメージボックスのVisibleをFalseにしたり、
> イメージボックス とは、表示設定はどのようにしていますか?
>
うまく説明できないので、画像を貼り付けている部分のコードを記します。
s_Kakutyoshi = "bmp"
s_BMPFile = Dir$(Dir1 & "\*.*")
Do While s_BMPFile <> ""
     If StrComp(Right$(s_BMPFile, 6), Me.cbo_KaisyaCd & "." _
          & s_Kakutyoshi, 1) = 0 Then
        AutoRedraw = True
        s_stamp = (Dir1) & "\" & (s_BMPFile)
        Img_Stamp.Picture = LoadPicture(s_stamp)
        Img_Stamp.Stretch = True
        PaintPicture Img_Stamp.Picture, 7320, 4260, 2895, 2805
           :
           :
としています。消去させたい部分でAutoRedraw = Falseとも記述しています。

> > Set Image1.Picture = LoadPicture()
> > を記述してみましたが、消すことができません。
> Image コントロールに描画しているなら、Set Image1.Picture = LoadPicture() で消えますが。

描画自体にも悩んでいて、ようやく上記のやり方でできたところです。
これだけでも苦労しているほどの初心者です。よろしくお願いします。

投稿時間:2006/09/27(Wed) 09:52
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: 画像を消去したいのですが・・・
>         Img_Stamp.Picture = LoadPicture(s_stamp)

上記で読み込んでいるなら Img_Stamp.Picture = LoadPicture() で消えませんか?


# Img_Stamp はどのコントロールを使っているのですか?
 AutoRedraw = True は Form に対して設定している事になりますが、又Image コントロールを
 使っているのなら、Image コントロールには、AutoRedraw はありません。
 (AutoRedraw = True は Me.AutoRedraw = True や Form1.AutoRedraw = True と同じ)
 
 Img_Stamp.Stretch = True は、Image コントロールのようですが、何を信用してよいやら。

投稿時間:2006/09/27(Wed) 10:51
投稿者名:大吉末吉
Eメール:
URL :
タイトル:
Re^3: 画像を消去したいのですが・・・
>         PaintPicture Img_Stamp.Picture, 7320, 4260, 2895, 2805

ここで、Formにイメージを転記(描画)しているんですよね?
でしたら、Formに対して、消去処理(Clsとか・・・)をしないと、見た目変わらないのでは?

それから、
> 消去させたい部分でAutoRedraw = Falseとも記述しています。

描画後、AutoRedrawをFalseにしてしまうと、イメージが固定されてしまって消せなくなりますよ。

以下は、ヘルプの「AutoRedraw プロパティ」より抜粋です。

------------------------------------------------
AutoRedraw プロパティを偽 (False) に設定すると、
以前の出力は背景の一部になり、描画領域を Cls メソッドでクリアしても、
背景のグラフィックスは消去されません。
背景のグラフィックスを消去するには、
AutoRedraw プロパティを真 (True) に設定してから Cls メソッドを使います。
------------------------------------------------

投稿時間:2006/09/27(Wed) 11:24
投稿者名:あおむし
Eメール:
URL :
タイトル:
Re^4: 画像を消去したいのですが・・・
花ちゃん 様
大吉末吉 様
早々にお教え頂き、ありがとうございます。

> # Img_Stamp はどのコントロールを使っているのですか?

コントロールはImageコントロールを使用しています。


>  AutoRedraw = True は Form に対して設定している事になりますが、又Image コントロール
>  を使っているのなら、Image コントロールには、AutoRedraw はありません。

> 描画後、AutoRedrawをFalseにしてしまうと、イメージが固定されてしまって消せなくなりま
> すよ。
> 描画のやり方には問題ないのですね?
お二人のご回答内容を拝見すると、AutoRedrawは使用すべきではないようで・・・。

事情があって、今日中に修正作業に取り掛かることができませんが、結果は必ずご報告致します(
もしかしたら新たな問題が出るかもしれませんが・・・)。
どうもありがとうございました。

投稿時間:2006/09/27(Wed) 11:50
投稿者名:大吉末吉
Eメール:
URL :
タイトル:
Re^5: 画像を消去したいのですが・・・
> お二人のご回答内容を拝見すると、AutoRedrawは使用すべきではないようで・・・。

適切に使えば良いだけです。

#尤も、私も「AutoRedraw」は苦手です。
#機能が直感的に想像できないので、使うたびに、ヘルプを確認する有様・・・


で、要するに、
・ImageコントロールにLoadPictureでイメージを読み込んだ。
・Imageコントロールに読み込んだイメージをFormに転記した。
・Formに転記したイメージを消去したい。
って事なんですよね。

「AutoRedrawを変更しないで、ClsでForm全体をクリアする」
とか

「AutoRedrawを変更しないで、Formの該当箇所(位置、サイズ)に背景色で、
四角を上書きする」

とかでは、どうでしょう?

投稿時間:2006/09/28(Thu) 19:04
投稿者名:あおむし
Eメール:
URL :
タイトル:
Re^6: 画像を消去したいのですが・・・
花ちゃん 様
大吉末吉 様

お世話になります。
結局、AutoRedrawをコード上で変更せず、ImageコントロールのImageはフォームに転記しないとい
うように記述したら、見事に消すことができました!ビットマップも、検索条件に合ったものが描画
&消去できています。


私のような者にお時間を割いて頂き、ありがとうございました。
困ったことが出てきましたら、また利用させて頂きます。