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

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

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

Re[1]: VB.net グローバルでNewは作れる?


(過去ログ 114 を表示中)

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

■67595 / inTopicNo.1)  VB.net グローバルでNewは作れる?
  
□投稿者/ 寅 (13回)-(2013/08/12(Mon) 09:58:06)

分類:[.NET 全般] 

お世話に成ります。

VB.netで領域をグローバルでNEWで設定する方法はありますか?

現在、画像バッファー領域を確保しようとして居ます。
ただ、画像に対する数はシステムによって異なるので、Newで確保しようとして居ます。

Public Class frmMain

Dim iAdrS As Adr_ROI
Dim imgImage(100) As Image


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
sCurDir = System.IO.Directory.GetCurrentDirectory()
iCamNumUse = 4
For iCam = 0 To iCamNumUse
imgImage(iCam) = New Bitmap(picMniTrg.Width, picMniTrg.Height)
Next
subCntAdj() ' Controll position adjust.
End Sub

現在は Dim imgImage(100) As Image の100は在り得ない位大きな数値にして居ますが、この100を実行時に指定出来ないかと言う質問です。
全くのゼロからの作成は無理だと思いますので、グローバルに例えは゛

Dim iIndex as Integer

で、実行時に
  iIndex = New Image・・・・・で何か配列を作り、その配列に実際のイメージ領域を作って行く方法はありませんでしょうか。

お分かりに成る方、宜しくお教え下さい。 出来ないと言う場合もお教え下さると助かります。

宜しくお願い致します。



引用返信 編集キー/
■67596 / inTopicNo.2)  Re[1]: VB.net グローバルでNewは作れる?
□投稿者/ shu (364回)-(2013/08/12(Mon) 10:24:01)
No67595 (寅 さん) に返信

Dim imgImage as new List(Of Image)
imgImage.Add(Image)
imgImage.Add(Image)
・・・

とか

Dim imgImage() as Image
imgImage = Image(Size) {}
imgImage(0) = Image
imgImage(1) = Image
・・・

など
引用返信 編集キー/
■67597 / inTopicNo.3)  Re[1]: VB.net グローバルでNewは作れる?
□投稿者/ しま (20回)-(2013/08/12(Mon) 10:30:32)
No67595 (寅 さん) に返信
> お世話に成ります。
>
> VB.netで領域をグローバルでNEWで設定する方法はありますか?
>
> 現在、画像バッファー領域を確保しようとして居ます。
> ただ、画像に対する数はシステムによって異なるので、Newで確保しようとして居ます。
>
> Public Class frmMain
>
> Dim iAdrS As Adr_ROI
> Dim imgImage(100) As Image
>
>
> Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
> sCurDir = System.IO.Directory.GetCurrentDirectory()
> iCamNumUse = 4
> For iCam = 0 To iCamNumUse
> imgImage(iCam) = New Bitmap(picMniTrg.Width, picMniTrg.Height)
> Next
> subCntAdj() ' Controll position adjust.
> End Sub
>
> 現在は Dim imgImage(100) As Image の100は在り得ない位大きな数値にして居ますが、この100を実行時に指定出来ないかと言う質問です。
> 全くのゼロからの作成は無理だと思いますので、グローバルに例えは゛
>
> Dim iIndex as Integer
>
> で、実行時に
>   iIndex = New Image・・・・・で何か配列を作り、その配列に実際のイメージ領域を作って行く方法はありませんでしょうか。
>
> お分かりに成る方、宜しくお教え下さい。 出来ないと言う場合もお教え下さると助かります。

お分かりになる方ではありませんが、勝手に返事します
"グローバル"の意味が私には判かっていませんが...
ArrayList か List<T> かで出来そうに思います

あなたが使っている VB.NET のつまり VisualStudio のバージョンとエディションとOSのバージョンとを示して下さい。
(今回の件がそうだというわけではありませんが)それによって解決方法が違ってくる場合があります。
引用返信 編集キー/
■67598 / inTopicNo.4)  Re[2]: VB.net グローバルでNewは作れる?
□投稿者/ 寅 (14回)-(2013/08/12(Mon) 11:41:50)
No67597 (しま さん) に返信
> ■No67595 (寅 さん) に返信

> ArrayList か List<T> かで出来そうに思います

しまさん、ご回答有難うございます。
失礼しました。システムはVB.net 2010Expressを使用して居ます。

VBの用語が未だ良く分かっていないので、グローバルと使ってしまいましたが、関数の外で定義出来る変数のつもりで使用しました。

ご回答頂いたArrayListの方はサンプルがStringしか引っかからなかったので、List(T)を検索した所、型を指定出来る様なのでこちらで確認プログラムを作成してみました。
希望通りの結果が出ました。
有難うございました。

Public Class Form1

Dim imgList As New List(Of Image)  <=関数の外で定義、どの関数からもアクセス出来る。

Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load

'画像ファイルを読み込みPictureBoxに表示
Dim SWrk As String '= System.IO.Directory.GetCurrentDirectory() + "\test.bmp"

' PictureBox1.Image = System.Drawing.Image.FromFile(SWrk)
SWrk = System.IO.Directory.GetCurrentDirectory() + "\Cam0.bmp"
imgList.Add(System.Drawing.Image.FromFile(SWrk))
SWrk = System.IO.Directory.GetCurrentDirectory() + "\Cam1.bmp"
imgList.Add(System.Drawing.Image.FromFile(SWrk))
SWrk = System.IO.Directory.GetCurrentDirectory() + "\Cam2.bmp"
imgList.Add(System.Drawing.Image.FromFile(SWrk))
SWrk = System.IO.Directory.GetCurrentDirectory() + "\Cam3.bmp"
imgList.Add(System.Drawing.Image.FromFile(SWrk))
PictureBox1.BackgroundImageLayout = ImageLayout.Stretch
PictureBox2.BackgroundImageLayout = ImageLayout.Stretch
PictureBox3.BackgroundImageLayout = ImageLayout.Stretch
PictureBox4.BackgroundImageLayout = ImageLayout.Stretch

PictureBox1.BackgroundImage = imgList(0)
PictureBox2.BackgroundImage = imgList(1)
PictureBox3.BackgroundImage = imgList(2)
PictureBox4.BackgroundImage = imgList(3)
End Sub 
解決済み
引用返信 編集キー/
■67600 / inTopicNo.5)  Re[3]: VB.net グローバルでNewは作れる?
□投稿者/ shu (365回)-(2013/08/12(Mon) 15:05:57)
No67598 (寅 さん) に返信
> ご回答頂いたArrayListの方はサンプルがStringしか引っかからなかったので、List(T)を検索した所、型を指定出来る様なのでこちらで確認プログラムを作成してみました。
> 希望通りの結果が出ました。
> 有難うございました。

ArrayListを使う利点は今ほとんどないと思うのであえて使う必要はありません。
既存コードで使われている物があったときに分かる程度で良いかと思います。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -