[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 03/12 18:38 / Filesize : 296 KB / Number-of Response : 987
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

VB.NET質問スレ (Part6)



1 名前:デフォルトの名無しさん [04/07/03 08:49]
VB.NETの質問全般です

過去スレ
VB.NET質問スレ (Part5)
pc5.2ch.net/test/read.cgi/tech/1078134703/
VB.NET質問スレ (Part4)
pc2.2ch.net/test/read.cgi/tech/1065269043/
【老若】VB.net質問スレ【男女】 (Part3)
pc2.2ch.net/test/read.cgi/tech/1056281084/
【老若】VB.net質問スレ【男女】 (Part2)
pc2.2ch.net/tech/kako/1043/10436/1043629429.html
【老若】VB.net質問スレ【男女】
pc2.2ch.net/tech/kako/1025/10258/1025848458.html


237 名前:234 mailto:sage [04/07/25 04:05]
分からんようなんで、VB.NETに直してみた。

Private Sub ToolBar1_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles ToolBar1.ButtonClick
If e.Button Is Me.GoBackButton Then
Me.AxWebBrowser1.GoBack()
ElseIf e.Button Is Me.GoForwardButton Then
Me.AxWebBrowser1.GoForward()
End If
End Sub

Private Sub AxWebBrowser1_CommandStateChange(ByVal sender As System.Object, ByVal e As AxSHDocVw.DWebBrowserEvents2_CommandStateChangeEvent) Handles AxWebBrowser1.CommandStateChange
If e.command = SHDocVw.CommandStateChangeConstants.CSC_NAVIGATEBACK Then
Me.GoBackButton.Enabled = e.enable
ElseIf e.command = SHDocVw.CommandStateChangeConstants.CSC_NAVIGATEFORWARD Then
Me.GoForwardButton.Enabled = e.enable
End If
End Sub

初めてVB系書いたんで、変なとこがあったら無視してくれ。
GoBackButtonとGoForwardButtonは、コンストラクタでEnableをFalseにしとく。

238 名前:デフォルトの名無しさん [04/07/25 12:18]
>>237
このとおりにやってみました。
そしたら戻れないようになりました!ありがとうございます!

ですが、戻るボタンを押しても戻りません。
Me.AxWebBrowser1.GoBack()

AxWebBrowser1.GoBack()
にしても駄目でした…

239 名前:デフォルトの名無しさん mailto:sage [04/07/25 12:27]
>>238
.NET 1.1だよね?
うちでは動作するんで、ソースさらすよ。
www.asahi-net.or.jp/~ec6k-mtmr/VBnet_BrowserTest.zip

240 名前:eko [04/07/25 12:43]
質問です。

現在、スプレッドシートを自作をしているのですが
それをフォーム1に貼り付けて、右クリックしてコンテキトにデザイナと
言うメニューを追加して、選択するとフォーム2を立ち上げて
(ここまでは何とかできました・・。)

そのフォーム2からフォーム1のデザイン(プロパティ)を変更する方法が
判りません。

ちなみにスプレッドはpaintで描画してます。
拙い説明ですが、ご存知の方居ないでしょうか??
よろしくお願いします。

241 名前:デフォルトの名無しさん [04/07/25 16:38]


242 名前:デフォルトの名無しさん [04/07/25 16:49]
ヘ_ヘ
ミ・・ ミ ということにしたいのですね :)
( ° )〜

243 名前:233 mailto:sage [04/07/25 16:50]
スルーかよ・・・

244 名前:デフォルトの名無しさん mailto:sage [04/07/25 17:36]
>>243
なんだ?つっこんで欲しいのか?

245 名前:デフォルトの名無しさん [04/07/25 21:45]
>>239
何でなんですかね。おかしいところは無かった様な気がするのですが。
でも、ほかの事をして何とかなりました。
いろいろありがとうございました!!!



246 名前:デフォルトの名無しさん [04/07/25 22:10]
Textboxコントロールの、
Textプロパティにて、
その桁数をあらわすにはどうすればいいでしょう?

例えば、TextBox1というテキストボックスの値(MAX10桁)で、
5桁だけ入力されていたらなにか処理をする場合、

If TextBox1.Text=(5桁)Then
    【処理】
End If


教えてください。お願いします。

247 名前:デフォルトの名無しさん mailto:sage [04/07/25 22:18]
Lengthだっけかな。ってかマニュアル見ろ。

248 名前:デフォルトの名無しさん mailto:sage [04/07/25 22:46]
>>246
普通に、Len() で OK。

249 名前:デフォルトの名無しさん mailto:sage [04/07/25 22:47]
個人的にLenはお奨めしない。ま、別にいいんだけどね。

250 名前:デフォルトの名無しさん [04/07/25 23:58]
またなんですが、
WebBrowserで読み込みを中止するにはどうしたらいいのでしょうか?

251 名前:デフォルトの名無しさん mailto:sage [04/07/26 00:15]
>>250
Me.AxWebBrowser1.Stop()
のことなのか?

252 名前:デフォルトの名無しさん [04/07/26 00:22]
>>251
それです、それ!
ありがとうございました!!

253 名前:デフォルトの名無しさん mailto:sage [04/07/26 00:30]
分からん部分はまとめて書いてくれ。
なんか多そうだし。

254 名前: mailto:sage [04/07/26 00:45]
嫌味とか冷やかしで言ってるワケじゃないので。

255 名前:デフォルトの名無しさん mailto:sage [04/07/26 09:20]
>>240
俺はデザイナフォームに一時ファイル名を渡してやってるよ。

デザイナ起動時に対象のコントロールの内容を一時ファイルに保存してデザイナ側
で読み込み、変更を反映する場合は、逆にデザイナのコントロールの内容を一時ファイル
に保存するってな感じで。
あと、変更の反映するかの確認が必要なければ、参照渡しのコントロールを、デザイナに
セットすれば完全な同期がとれると思う。

はずしてたらスマソ。



256 名前:デフォルトの名無しさん [04/07/26 10:24]
>>254
じゃあ、お言葉に甘えて…
WebBrowserで新しいウィンドウが出てくるとそのページはIEで開かれちゃうじゃないですか。
そのページを自作ブラウザで開かせるのはどうしたらいいのですか?

257 名前:デフォルトの名無しさん mailto:sage [04/07/26 11:49]
>>256
こんな感じで。
Private Sub AxWebBrowser1_NewWindow(ByVal sender As System.Object, ByVal e As AxSHDocVw.DWebBrowserEvents2_NewWindow2Event) Handles AxWebBrowser1.NewWindow2
Dim form2 As New Form1
e.ppDisp = form2.AxWebBrowser1.Application
form2.Show()
End Sub

258 名前:デフォルトの名無しさん [04/07/26 12:54]
質問です。
メモ帳を作成したのですが、
テキストファイルからプログラムを実行した際に、
テキストファイルを読み込む処理の仕方が分かりません。
プログラムをexeから実行したのかファイルから実行したのか判別する
方法は無いのでしょうか。



259 名前:デフォルトの名無しさん mailto:sage [04/07/26 13:13]
>>258
質問の意味がいまいち分からないが、
Command関数を調べると、いいかも知れんね。

260 名前:258 mailto:sage [04/07/26 14:13]
>>259
サンクス!

261 名前:デフォルトの名無しさん [04/07/26 15:44]
>>257
本当に助かりました!
ありがとうございました!!!!!!!

262 名前:只今勉強中 mailto:sage [04/07/26 16:36]
Public Sub New(ByVal idcarF1 As Integer)

MyBase.New()
InitializeComponent()

idcarF2 = idcarF1

Dim filterIdcarF2 As integer
'Dim filterIdcarF3 As integer

filterIdcarF2 = idcarF2
'filterIdcarF3 = 5

UpdateDatabase()

'SQL文
SqlDataAdapter1.SelectCommand.CommandText = "SELECT * FROM excol_data " _
& "WHERE car_id LIKE '" & filterIdcarF2 & "'"

'データセットを初期化して、データーアダプターからデーターを読み込む
DsExcol1.Clear()
SqlDataAdapter1.Fill(DsExcol1)

End Sub

ウィンドウを開くと同時にfilterIdcarF2を使って、データーを絞り込むという作業を作りました。さらに
”filterIdcarF3 = 5"で"excol_cd"の値が"5"のものを絞り込みたいのですが、SQL文の所の書き方
をどなたか教えていただけないでしょうか?



263 名前:デフォルトの名無しさん mailto:sage [04/07/26 17:34]
excol_cd の型は?それがないと正確に答えられない。

たぶんSQLスレ行けって言われると思うけど。


264 名前:デフォルトの名無しさん mailto:sage [04/07/26 17:57]
>>262
F2で絞り込んだものをさらにF3で絞り込むのか
F2とF3を同時に発行して絞り込むのか

あとInteger型のものに対してLike(あいまい)で検索かけてるけど
これはこれでいいの?

265 名前:デフォルトの名無しさん mailto:sage [04/07/26 18:24]
>>264
car_id が Integer型ってどうして分かるの?




266 名前:262 mailto:sage [04/07/26 18:39]
すいません、もう右も左もわかんなくて、本を引き引きやってる状態で・・・。

excol_cdもcar_idも整数型です。

あと、F2で絞り込んだものをさらにF3で絞り込みたいのです。自動車の種類別
のコードがF2で、外装の色がF3で、この二つで絞り込んで、内装の色を検索し
たいので・・・。

Likeがあいまい検索だというのは、いまスレを見て始めて知ったので外してみたら、
SqlDataAdapter1.Fill(DsExcol1)の行で止まってしまい、LIKEの代わりを今探して
SQLのサイトとニラメッコしています。

267 名前:262 mailto:sage [04/07/26 19:13]
SqlDataAdapter1.SelectCommand.CommandText = "SELECT * FROM excol_data WHERE car_id = 18"
これだ18番のcar_idを持つものが表示されるのですが
SqlDataAdapter1.SelectCommand.CommandText = "SELECT * FROM excol_data WHERE car_id = filterIdcarF2"
だと動いてくれないようです・・・。なにか書きようがあるのでしょうか?

268 名前:デフォルトの名無しさん mailto:sage [04/07/26 19:58]
>>267
困ってるのはわかるが、落ち着いて VB の入門書と SQL の入門書を読んだ方が
結局は早いと思うよ。

269 名前:デフォルトの名無しさん mailto:sage [04/07/26 21:50]
SqlDataAdapter1.SelectCommand.CommandText = "SELECT * FROM excol_data WHERE car_id = " + filterIdcarF2 + " and car_id = " + filterIdcarF3 + " and excol_cd = 5"


270 名前:デフォルトの名無しさん mailto:sage [04/07/26 22:52]
VBAって次に VBA.NET になるんですかね。

271 名前:デフォルトの名無しさん mailto:sage [04/07/27 00:42]
String の配列に入っているテキストデータを TextBox で編集しようと思って,

Dim List(200 ) As String
で,

TextBox1.Text = ""
For a=0 To List.GetUpperBound(0)
TextBox1.text &= List(a) & vbCrLf
Next

のようにしましたが,編集後のテキストデータを再び Stringの配列に
戻すところでつまりました.

このような,何かのプログラム内での プチエディタ なんかは,
どういう風に実現するのが良いのでしょうか?

272 名前:デフォルトの名無しさん mailto:sage [04/07/27 00:58]
>>271
配列をそのままTextBox.Linesプロパティに入れて、編集後にTextBox.Linesをそのまま配列に戻すのは駄目なん?
的外れだったらスマソ。

273 名前:デフォルトの名無しさん mailto:sage [04/07/27 01:22]
>>272
おおっ. そんなものがあったのか.
ご教授ありがとうございました.

テキストデータの行数がいろいろ変わるので,
やっぱり For文 で回したほうがいいみたいでした.

とにかく解決.ありがとうございました.

274 名前:デフォルトの名無しさん mailto:sage [04/07/27 13:35]
>>272 さんのおかげで少し進んだのですが,,,
今度は,TextBoxのカーソル位置を表示してみようと思いまして,,で,

 Cur = TextBox1.SelectionStart
 If Cur <= 0 Then
  y = 1 : x = 1
 Else
  c = 0 : y = 0
  Do
   x = Cur - c
   c += TextBox1.Lines(y).Length + 2
   If Cur < c Then Exit Do
   y += 1
  Loop
  For xx = x - 1 To 0 Step -1
   If AscW(TextBox1.Lines(y).Substring(xx, 1)) >= 256 Then x += 1
  Next
  y += 1 : x += 1
 End If
 Label1.Text = y & "行 " & x & "桁"

こんなんになってしまったのですが,これだと 各行の文字数を先頭から
足して来たり,各文字が全角かどうか一文字ずつ調べたりしてて,
TextBox の文字数が多くなると遅そうですよね.
他にスマートな方法があれば教えていただきたいのです.

275 名前:デフォルトの名無しさん [04/07/27 13:45]
picture clip controlは.NETには入ってないのでしょうか?



276 名前:216 [04/07/27 16:42]
>>217
ヒントありがとうございます
キーフック自体わからず調べながらやってみたのですがなかなかうまくいきません。

SetWindowsHookExtというAPIでキーボードのメッセージを捕捉できるところまで行ったのですが
次に自分でPostMessageで別のキー入力を起こそうと思っているのですがここがダメです。
今フォームにテキストボックスが1コはっつけてやってみています

Function KeyBoardProc(ByVal nCode As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
If nCode < 0 Or nCode = 3 Then
Return CallNextHookEx(m_hHook, nCode, wParam, lParam)
End If
Dim ret As Integer
Dim iMsg As Integer
If wParam = CInt(Keys.A) Then
If lParam And &H80000000 Then
iMsg = WM_KEYUP
Else
iMsg = WM_KEYDOWN
End If
wParam = Keys.E
PostMessage(TextBox1.Handle.ToInt32, iMsg, wParam, lParam)
CallNextHookEx(m_hHook, nCode, wParam, lParam)
Return 1
End If
End Function
TextBox1のIMEモードはひらがなにしてあります。

aのキーを打つとeがテキストに入るのですがほんとは「え」と入ってIMEで変換できる状態(えの下に点線の下線)になって欲しいのです。
的外れと思いつつImmGetContextの返値をPostMessageの第一引数にしてみましたがさっぱりでした。
何がいけないのか教えてください。

277 名前:216 mailto:sage [04/07/27 16:44]
>>276

ヒントを頂いたのは
>>217ではなく
>>218でした
というか217は自分でした・・・

278 名前:デフォルトの名無しさん mailto:sage [04/07/27 16:54]
>>274
Win32API使ってもOKなら、user32.dllのGetCaretPosでいける。
do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&rm=10
ここの>>32にC#版がある。

279 名前:デフォルトの名無しさん mailto:sage [04/07/27 20:32]
do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&res=32&fi=no

280 名前:デフォルトの名無しさん mailto:sage [04/07/27 21:28]
>>278 >>279
C# がわからないのでいろいろ苦労しました.
いや,C# の問題じゃなくて,Win32API ってやつの方かな.
ヘルプとかいろいろ調べてやっとできました.
Win32API ってのは初めての経験なもので...

Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hWnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer

ってのを作っといて,

 y = SendMessage(TextBox1.Handle, &HC9, -1, 0)
 x = TextBox1.SelectionStart - SendMessage(TextBox1.Handle, &HBB, y, 0)
 For xx = x - 1 To 0 Step -1
  If AscW(TextBox1.Lines(y).Substring(xx, 1)) >= 256 Then x += 1
 Next
 y += 1 : x += 1
 Label1.Text = y & "行 " & x & "桁"

って感じでできたみたい.
全角文字のカウントは残りましたが,だいぶ速くなりました.
どうもありがとうございました.

281 名前:デフォルトの名無しさん [04/07/27 23:34]
ちと教えてください。

CrystalReport に Textオブジェクト を作って、そこにモジュールレベル変数
(String型)の内容を埋め込むには、どうしたら良いでしょう?

Accessのレポートなら作ったことあるんですが、
CrystalReport はちょっと勝手が違うん困ってます。

お願いします。

282 名前:デフォルトの名無しさん mailto:sage [04/07/27 23:51]
>>281
データソースはDB?
それとも実行時に任意に与える数値?

283 名前:281 [04/07/28 00:16]
>>282

レポートそのものは、AccessDBからフィールドを引っ張ってますが、
表題の部分に、任意の文字列を入れたいのです。

別フォームでその文字列を変数に格納して、レポートに表示したい
という訳です。


284 名前:デフォルトの名無しさん mailto:sage [04/07/28 00:42]
標準入力・出力するコマンドラインで動くアプリケーションがあるんだけど、
それとVB.NETでやりとりすることできるかな?

(ひらたく言えばVB.NETってパイプ使える?)

285 名前:デフォルトの名無しさん [04/07/28 00:49]
標準入出力とのやりとりならできる。



286 名前:デフォルトの名無しさん mailto:sage [04/07/28 01:10]
>>285
そうですか。できれば方法も教えてもらえると助かるのですが。
「〜〜というクラスを使え」とか・・・

287 名前:デフォルトの名無しさん mailto:sage [04/07/28 01:11]
ヘルプで検索すれば出ると思うが…
ProcessクラスとかProcessStartInfoとか参照。

288 名前:デフォルトの名無しさん mailto:sage [04/07/28 01:13]
>>287
ありがとうございます。
そこまで教えてもらえればあとはググるなりMSDN使うなりしてなんとかしてきます。


289 名前:デフォルトの名無しさん mailto:sage [04/07/28 01:59]
>>287
解決しました。ありがとうございます

290 名前:デフォルトの名無しさん mailto:sage [04/07/28 02:30]
>>281
スマン
遅くなりマスタ

表題って言うことは1枚目のレポートヘッダと解釈していいのかね?
仮にSection1にText1というテキストボックスがあったとして

Dim cr As New CrystalReport1
Dim t As CrystalDecisions.CrystalReports.Engine.TextObject
t = CType(cr.Section1.ReportObjects.Item("Text1"), CrystalDecisions.CrystalReports.Engine.TextObject)
t.Text = "123"


cr.ExportToDisk(CrystalDecisions.[Shared].ExportFormatType.PortableDocFormat, "c:\123.pdf") '結果を出力

パラメータフィールドを使う方法とか色々やり方はあると思うので
自分はまるまるXMLから取得する方法でやってます




291 名前:デフォルトの名無しさん mailto:sage [04/07/28 13:44]
FlexGrid.Netを使ってるのですが
ある日を境に
デザイン時は最新バージョン
実行時は古いバージョン
をロードしてしまいます

VSの再インストールやFlexGridの最インスコなどいろいろやってみたんですが・・・

binフォルダ内と標準インストール先のフォルダには最新バージョンの 2.1.20032.135 が
実行時にはなぜか一つ前の 2.1.20032.124 が読み込まれています

292 名前:デフォルトの名無しさん mailto:sage [04/07/28 14:21]
Windowsアプリケーションから、
任意のsqlスクリプト(ファイル名.sql)を読み込んで
実行させることって出来ますか?

293 名前:291 mailto:sage [04/07/28 16:05]
C:\WINNT\ASSEMBLY
の情報を書き換えたらうまくいきました

294 名前:デフォルトの名無しさん [04/07/29 17:20]
VB.NETで他フォームを参照するにはどうすればよいのでしょうか?
例えば、form1とform2があったとき、
form1からform2のコントロールを直接取得したいのです。

BorlandC++のときは、実行中のフォームのインスタンスを参照できた
のですが、VB.NETではそれが見あたりません・・・
よいアイディアがありましたら教えて頂けると
大変助かります。よろしくお願いいたします。

295 名前:デフォルトの名無しさん [04/07/29 17:47]
>>294
Form1の中に、
Form2 form2 = new Form2();
form2.hoge = "Hage";
って感じでどうですか?



296 名前:デフォルトの名無しさん mailto:sage [04/07/29 17:49]
上のほうでVB.NETでブラウザ作ってた人はどうなったんだろう?
なにげに気になってたんだがw

297 名前:デフォルトの名無しさん [04/07/29 18:22]
どこかにVB.NET(2003)を使って、シリアルポートからデータを受信して表示するプログラムの
ソースが公開されていませんでしょうか?

CreateFile とか ReadFile とかのAPIを使うっていうのはわかっているのですが、
公開されているのを見ると
Public Declare Function WriteFile Lib "kernel32" Alias "WriteFile" _
(ByVal hFile As Integer, lpBuffer As Any, _
とか書いてあって(As AnyはVB.NETでは使えない)
そのままだと使えないんです。

VB6のMSCommを使えばいいのかもしれませんが、APIを使いたいのです。



298 名前:デフォルトの名無しさん mailto:sage [04/07/29 18:27]
>>297
なぜVBにこだわる?


299 名前:デフォルトの名無しさん [04/07/29 18:31]
>>298
つっか、APIたたくならC#でもVBでもC++でも答えは似たようなもんでしょ。
あと、VBが一番安いんだっけか?


300 名前:デフォルトの名無しさん [04/07/29 18:43]
>>297
その程度のことでいちいち人に聞いてるレベルじゃ、
まず間違いなくファイルI/O系のAPI使いこなすなんて無理だと思う。

ほかのスレでこんなの見つけたけど、これなんか使えるのでは?
www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=b06e30f9-1301-4cc6-ac14-dfe325097c69

>>294
久々に「別フォームの……」キター

301 名前:デフォルトの名無しさん mailto:sage [04/07/29 18:45]
As Any って As Object で代用できなかったっけ?

302 名前:デフォルトの名無しさん mailto:sage [04/07/29 19:54]
どこかにVB.netのゲームサンプルがある場所ってありますでしょうか?

303 名前:294 mailto:sage [04/07/30 00:48]
>>295
ありがとうございます。
でもそれだと実行中のフォームじゃなくなってしまうので
ダメなんですよね・・・


304 名前:デフォルトの名無しさん mailto:sage [04/07/30 01:34]
>>303
インスタンスの扱いが理解できてるなら、Form2のインスタンス作成時に
参照をとっておけばどうにでもなることくらい分かりそうなもんだが…

305 名前:デフォルトの名無しさん mailto:sage [04/07/30 02:07]
Form2ってどの段階で表示(生成)されるの?
もしかして別EXE?



306 名前:デフォルトの名無しさん mailto:sage [04/07/31 00:04]
>>302
難しいなぁ。どんなゲームがいいんだ?

307 名前:デフォルトの名無しさん mailto:sage [04/07/31 03:51]
フォームロードイヴェントのときにそのアプリのプロセスIDを取得するのはどうやるのでしょうか?

308 名前:デフォルトの名無しさん mailto:sage [04/07/31 04:59]
Velocityのようなテンプレートエンジンってないの?
フリーの。

309 名前:デフォルトの名無しさん mailto:sage [04/07/31 08:47]
>>307
フォームロードのときというのに深い意味があるのか?
ただ単にプロセスIDのとり方が分からんだけとか?

310 名前:デフォルトの名無しさん [04/07/31 13:27]
Math.Cos(90 / 180 * 3.1415) を実行すると
4.63267948799578E-05   という数値になります。
0または0に近い数値にしたいのですが、どうすればいいのでしょうか?
90の部分は0〜360度の中で変動、0度=1、90度=0、180度=-1、270度=0という結果を出したいのですが・・。
同様にMath.Sinでも変な数値にorz

311 名前:デフォルトの名無しさん mailto:sage [04/07/31 13:46]
>>310
小数点以下3桁くらいで四捨五入しろ


312 名前:デフォルトの名無しさん mailto:sage [04/07/31 13:48]
>>310
π = 3.1415
としているのが原因

313 名前:デフォルトの名無しさん mailto:sage [04/07/31 14:05]
>>311-312
返答ありがとうございます。

311の通りにしたら数値が0になったので、桁数が多すぎると表示がおかしくなる・・・でいいのかな。

314 名前:デフォルトの名無しさん mailto:sage [04/07/31 14:14]
>>313
違う違う、有効数字の考え方を勉強して来なさい。

315 名前:デフォルトの名無しさん mailto:sage [04/07/31 14:15]
いや、むしろ10万桁ぐらいまで



316 名前:デフォルトの名無しさん mailto:sage [04/07/31 14:20]
もしかして
4.63267948799578E-05
の意味分かってないとか?

317 名前:デフォルトの名無しさん mailto:sage [04/07/31 14:25]
>>316
いや、それを変数に入れて計算したら、
4.63267948799578が数値として考えられたのか、ただの回転がとんでもないことにナターヨorz

318 名前:デフォルトの名無しさん mailto:sage [04/07/31 14:25]
つまり
π = 3.1415
のときに
0.0000463267948799578
ってことだから、
π = 3.141592653589793
くらいまで取ればもっと0に近づく


319 名前:デフォルトの名無しさん mailto:sage [04/07/31 14:28]
いや、浮動小数点数だから「変な数値」になることにはかわりないか?

320 名前:デフォルトの名無しさん mailto:sage [04/07/31 15:19]
Perlユーザーには基本を知らない人間が多いのは知ってるし
自分も最初はそうだったから人の事は言えないが、
実際にそういう場面に出くわすと疲れるな。

今、基本情報処理の試験受付してるぞ。
基礎を身につける意味で、受験&勉強してみたらどうだ?

321 名前:デフォルトの名無しさん mailto:sage [04/07/31 15:29]
すまん、スレ誤爆した。orz

322 名前:デフォルトの名無しさん mailto:sage [04/07/31 19:35]
>>308
ない

323 名前:4.63267948799578E-05 [04/07/31 22:05]
スマソ、やっぱ根本的なプログラムミスですたorz

とりあえず立体モデルの回転をさせようと思っています。
member.nifty.ne.jp/Mukai/3d.htm
ここの3番までをしようと思っているんですが、2番目の『初期状態】は
Dim A()() as Double = {{1.0 .0.0, 0.0},{0.0, 1.0, 0.0},{0.0, 0.0, 1.0}}
でいいのでしょうか?
そのあとの『M = A×M』はVB.netで表すとどうなるのか、そもそも『M』の値が分かりません・・・。
分かる方がいれば教えてください。
(ちなみにゆとり教育云々で数学の教科書には回転行列のことなんてませぬorz)

324 名前:デフォルトの名無しさん mailto:sage [04/07/31 22:41]
それはプログラミングって言うより線型代数の問題じゃないのか

325 名前:デフォルトの名無しさん mailto:sage [04/07/31 23:16]
>>323
ちゃんと読んでないのでちょっと良くわからないけど,
3番の M は 2番で言う A のことではないかな?
M が機体の 前上右ベクトルなんだと思う.
なので,M の初期値は,2番での Aの初期値とかでいいでしょう.

M = A × M は,普通の3行3列の行列演算.
行列演算がわからないなら,自分で調べるか,
もう一度ここで泣くかしなさい.



326 名前:4.63267948799578E-05 [04/07/31 23:43]
>>325
前者了解しますた。
一番肝心なのは後者のほうですね・・・検索しても分かりませんでした、分かる方助言をお願いしますorz
M[0][0]はA[0][0]とM[0][0]からM[2][2]をかけて足したもの?
もうさっぱりです(´-ω-`;)

327 名前:デフォルトの名無しさん mailto:sage [04/07/31 23:52]
3次元関連の入門書読め。
ゆとり教育って…行列の掛け算も載ってないの?
まあ、なんでも教科書に載ってると思う方が間違ってるともいえるが。

328 名前:デフォルトの名無しさん mailto:sage [04/08/01 00:12]
>>327
僕も指数表現とか行列演算は,プログラム作るために勉強したので,
326のいいきっかけになれば良いじゃん.
このホームページには冒頭に3D関係の本に載ってないと書いてあるが,
それでも,3DCGの基礎は知っとかんとこの先詰まるので,
>3次元関連の入門書読め。
には賛成.

>>326
これじゃだめ?
ttp://shigihara.hp.infoseek.co.jp/mx13.htm
ttp://www.matsusaka-u.ac.jp/~aihara/pukiwiki2/index.php?%A5%D9%A5%AF%A5%C8%A5%EB%A4%C8%B9%D4%CE%F3

ただし,プログラムでやるときは,
T = A × M
M = T
みたいにやらないとだめだよ.

329 名前:4.63267948799578E-05 [04/08/01 00:17]
>>327
DirectXの本が何冊かあるけど、どれも行列を使ったサンプルはなくSetRotation・・・。
DirectXはスレ違いだけどVBで作っているからcppのサンプルは使えないしでもうダメポ(つД`;)
それと2*2の行列の計算すら載ってませんでした。。

330 名前:デフォルトの名無しさん mailto:sage [04/08/01 02:44]
VBでエクセルをいろいろいじりたいんですが
参考になるサイトってありますか?

331 名前:4.63267948799578E-05 mailto:sage [04/08/01 02:50]
>>330
ttp://www.bcap.co.jp/hanafusa/


・・・orz

332 名前:4.63267948799578E-05 mailto:sage [04/08/01 03:28]
Microsoft® Visual Basic® アプリケーションでは、Direct3DX ユーティリティ ライブラリによって提供される D3DXMatrixRotationX 関数、D3DXMatrixRotationY 関数、および D3DXMatrixRotationZ 関数を使って回転行列を作成する。
ここまで分かったけど、そこの見えない谷に阻まれてまs orz

333 名前:デフォルトの名無しさん mailto:sage [04/08/01 06:56]
Rは登録商標だが、TMは何?

334 名前:デフォルトの名無しさん mailto:sage [04/08/01 07:43]
>>332
Direct3D で回転させるの? 自分で行列演算して回転させるの?
とくに実現方法にこだわらないなら,いろいろ調べてできそうなやつで
やれば良いんだけどね.
そもそも 3D→2D を Direct3D でやるか 自分で写像するか..
Direct3D のほうが速いと思うけど.

>>333
トレードマークでしょ.って,これは誤爆なのかな?

335 名前:デフォルトの名無しさん mailto:sage [04/08/01 08:00]
トレードマークって?



336 名前:デフォルトの名無しさん mailto:sage [04/08/01 08:17]
TM - Trade Mark 商標?
R - Registered (Trade Mark) 登録商標?


337 名前:デフォルトの名無しさん mailto:sage [04/08/01 09:27]
どっちがえらいの?

338 名前:デフォルトの名無しさん mailto:sage [04/08/01 10:36]
たぶん 登録商標 のほうがえろいと思うけど.
ここじゃなくて,法律関係の掲示板に行ったほうがいいと思うよ.

339 名前:4.63267948799578E-05 mailto:sage [04/08/01 14:04]
結局使い方が分からない罠orz

>>334
方位・角度・ロールを正確に表示しつつ回転させると、やはり回転行列を使わないと・・・。
少しロールさせた状態で機首を上げると、角度と方位が変わるとともにロールもする。
この表現にもう一ヶ月近く悩まされてますorz

340 名前:デフォルトの名無しさん mailto:sage [04/08/01 22:09]
>>339
じゃ >>323 のホームページにある3番のJavaプログラムみたいなものが
VB でできればいいの?
それくらいなら協力できるかも.

341 名前:4.63267948799578E-05 mailto:sage [04/08/01 22:36]
>>340
まったくもってその通りです、できる範囲でいいので協力お願いしますorz
数学板ではなぜか叩かれるし、ここでは反応が薄いし・・・回転行列は以前何かあったのかな・・・。


342 名前:デフォルトの名無しさん mailto:sage [04/08/01 22:56]
はっきり言って無理だと思われ。
他人に甘えてる態度が見え見え。
とても自分で努力しているようには見えない。
きっと数学板で叩かれてきたってのもそういう部分なんじゃないの?
基本を疎かにして上辺だけ習得しようって考えているなら、ずっと習得はできないよ。

343 名前:4.63267948799578E-05 mailto:sage [04/08/01 23:16]
>>342
去年同じようなことをFlash板で言われますた。。
努力しろ!って言われても検索するところはしたし、
自分でこれかな?って思ったのは作って砕けてるしでどうしろと(;´Д`)
行列は学校で習っているものと思われているけど、最近は習わないところが多々あるので基本とか言わないでくださいorz

344 名前:デフォルトの名無しさん mailto:sage [04/08/01 23:22]
>343
その辺が根本から間違ってるんだって。
「どうしろと」じゃねーよ、自分で考えるんだよ。
学校でなんでもかんでも教えてもらえると思うな、自分で調べるんだよ。
なんでも誰かに教えてもらうと考えるな。
だから叩かれるんだよ。

345 名前:4.63267948799578E-05 mailto:sage [04/08/01 23:27]
>>343
> 「どうしろと」じゃねーよ、自分で考えるんだよ。
> 学校でなんでもかんでも教えてもらえると思うな、自分で調べるんだよ。

> 努力しろ!って言われても検索するところはしたし、
> 自分でこれかな?って思ったのは作って砕けてるしでどうしろと(;´Д`)
頼むから飛ばして読まないでorz
てか釣りだったらスマソ



346 名前:4.63267948799578E-05 mailto:sage [04/08/01 23:28]
こっちでも矛先間違えたorz

347 名前:340 mailto:sage [04/08/01 23:30]
>>341
こんなのを作ってみた. 新しいプロジェクトにはっつけてみ.

Dim LocX As Double = 150
Dim LocY As Double = 0
Dim LocZ As Double = 100
Dim M(,) As Double = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}

Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
Dim Fx, Fy, Fz As Single ' 鼻先
Dim Bx, By, Bz As Single ' おしり
Dim Lx, Ly, Lz As Single ' 左翼端
Dim Rx, Ry, Rz As Single ' 右翼端
Dim Tx, Ty, Tz As Single ' 尾翼
Dim gr As Graphics = MyBase.CreateGraphics

If e.KeyChar = "f" Then ' 前進
LocX += 10 * M(2, 0) : LocY += 10 * M(2, 1) : LocZ += 10 * M(2, 2)
Else
Dim A(2, 2) As Double
Dim T(2, 2) As Double
If e.KeyChar = "r" Then ' 右を向く(ラダーというか自転)
Dim th As Double = 22.5 * Math.PI / 180
Dim R(,) As Double = {{Math.Cos(-th), 0, -Math.Sin(-th)}, {0, 1, 0}, {Math.Sin(-th), 0, Math.Cos(-th)}}
A = R
End If
If e.KeyChar = "u" Then ' 上を向く
Dim th As Double = 5 * Math.PI / 180
Dim R(,) As Double = {{1, 0, 0}, {0, Math.Cos(-th), Math.Sin(-th)}, {0, -Math.Sin(-th), Math.Cos(-th)}}
A = R
End If
つづく

348 名前:340 mailto:sage [04/08/01 23:30]
T(0, 0) = A(0, 0) * M(0, 0) + A(0, 1) * M(1, 0) + A(0, 2) * M(2, 0)
T(0, 1) = A(0, 0) * M(0, 1) + A(0, 1) * M(1, 1) + A(0, 2) * M(2, 1)
T(0, 2) = A(0, 0) * M(0, 2) + A(0, 1) * M(1, 2) + A(0, 2) * M(2, 2)
T(1, 0) = A(1, 0) * M(0, 0) + A(1, 1) * M(1, 0) + A(1, 2) * M(2, 0)
T(1, 1) = A(1, 0) * M(0, 1) + A(1, 1) * M(1, 1) + A(1, 2) * M(2, 1)
T(1, 2) = A(1, 0) * M(0, 2) + A(1, 1) * M(1, 2) + A(1, 2) * M(2, 2)
T(2, 0) = A(2, 0) * M(0, 0) + A(2, 1) * M(1, 0) + A(2, 2) * M(2, 0)
T(2, 1) = A(2, 0) * M(0, 1) + A(2, 1) * M(1, 1) + A(2, 2) * M(2, 1)
T(2, 2) = A(2, 0) * M(0, 2) + A(2, 1) * M(1, 2) + A(2, 2) * M(2, 2)
M = T
End If

Fx = LocX + 30 * M(2, 0) : Fy = LocY + 30 * M(2, 1) : Fz = LocZ + 30 * M(2, 2)
Bx = -10 * M(2, 0) : By = -10 * M(2, 1) : Bz = -10 * M(2, 2)
Lx = LocX - 20 * M(0, 0) + Bx : Ly = LocY - 20 * M(0, 1) + By : Lz = LocZ - 20 * M(0, 2) + Bz
Rx = LocX + 20 * M(0, 0) + Bx : Ry = LocY + 20 * M(0, 1) + By : Rz = LocZ + 20 * M(0, 2) + Bz
Tx = LocX + 10 * M(1, 0) + Bx : Ty = LocY + 10 * M(1, 1) + By : Tz = LocZ + 10 * M(1, 2) + Bz
Bx += LocX : By += LocY : Bz += LocZ
gr.Clear(MyBase.BackColor)
gr.DrawLine(Pens.Black, Fx, Fz, Bx, Bz)
gr.DrawLine(Pens.Black, Fx, Fz, Rx, Rz)
gr.DrawLine(Pens.Black, Fx, Fz, Lx, Lz)
gr.DrawLine(Pens.Black, Rx, Rz, Lx, Lz)
gr.DrawLine(Pens.Blue, Tx, Tz, Bx, Bz)
gr.DrawLine(Pens.Blue, Tx, Tz, CSng(LocX), CSng(LocZ))
End Sub

349 名前:4.63267948799578E-05 mailto:sage [04/08/01 23:33]
本当にありがとうございますorz
後ほど結果を書きますね(知らないのがいっぱい(;´Д`))

350 名前:デフォルトの名無しさん mailto:sage [04/08/01 23:34]
>345
ちゃんと読んでるよ。
じゃあ聞くが、検索以外には何をした?
書籍を調べたか?
図書館に行ったか?
検索をしたのは1ヶ月で何回だ?

これかな?と思って作ったものはどこがなぜダメなのか考えたのか?
それに対して色々と検証はしてみたのか?
検証をしたならその結果をまとめてあるか?

基本を学べ。
人生の基本を。
調べ方の基本を。

351 名前:340 mailto:sage [04/08/01 23:37]
>>341
>数学板ではなぜか叩かれるし、

叩かれて当然なくらい簡単なことを聞いてるからだと思うよ.
まぁ,ここから勉強すればいいじゃん.

で,上のプログラムだが,行列の掛け算は展開して書いてある.
もう間違えようがないよな.なっ?

キーボードの f で前進, r で右向く, u で上向く.
左向く,下向く,ロール は自分でトライして.

352 名前:4.63267948799578E-05 mailto:sage [04/08/01 23:41]
>>350
本は3冊買いますた、プログラムをやってる先生にも聞きました(でも昔やったが忘れた、とorz)。
検索はほぼ毎日してます、ダメな部分を変えていったら地獄の一丁目にたどり着きますた。。
一度書いてやってから組んでいるからノートの半分以上は埋まったし・・・基本と言われることはしてます。
受験勉強せずになにしてんだか(;´Д`)

353 名前:340 mailto:sage [04/08/01 23:46]
>>349

ちょっとバグってた.
予定してないキーを押すと機体が消える.
とりあえず↓のようにしとけば回避できる.

× Dim A(2, 2) As Double
○ Dim A(,) As Double = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}


354 名前:4.63267948799578E-05 mailto:sage [04/08/01 23:51]
>>340
改めてありがとうございました。
これこそ基本だと言われることなのですが、
指定されたキー以外を押すと止まってしまう(そのあと何を押しても動かない)のはなぜなんでしょうか。
自分はselect case 〜でやっているので他のキーを押しても何も起こらないだけなのですが。


355 名前:4.63267948799578E-05 mailto:sage [04/08/01 23:52]
>>353
って先に直してくれてましたね、度々ありがとうございます。



356 名前:デフォルトの名無しさん mailto:sage [04/08/01 23:52]
VB.NETでaspxを書くときは

サーバープログラムとHTML部分のどちらをうえに書くのがおすすめですか?

<script runat=server>
</script>

逆にしてもいいけどどちらがファイルをWindowsメモ帳で編集するときに楽か

<html>
</html>

357 名前:340 mailto:sage [04/08/02 00:01]
>>355
実は右翼端と左翼端の座標も逆みたい.
想定座標系の裏返しに表示されてる.
ちゅーことは,右回転しているようで実は左回転してた.
よく検証せずに出してすまんね.

358 名前:4.63267948799578E-05 mailto:sage [04/08/02 00:07]
円周率はMath.PIでokだったのか・・・>>312のはこのことを言ってたのかorz

359 名前:デフォルトの名無しさん mailto:sage [04/08/02 00:08]
>>352
…お前は多分基本の意味を勘違いしてるだろ。
分からない事を基礎となってる部分から一つ一つ解決していけ。
まず行列の計算が分からない、理解できないんなら、
行列について勉強しろ。
それが出来たら3D関連の基礎的な本やサイトを見れば、
行列と言う物が3Dでどのように利用されるのか分かる。
プログラミングはその上で行う物だ。

お前はダメなところを変えていったというが、適当に式を変えてみたとか、
そんなんだろ?
なぜおかしいかを論理的に考えて間違ってる場所を探したか?
なんとなく適当に買えながら動かしてちゃんと動くのを待つ
ではいつまでたってもちゃんと動かないぞ。

360 名前:340 mailto:sage [04/08/02 00:11]
2度目の修正.

"r"押したときの R(,) の値
Dim R(,) As Double = {{Math.Cos(-th), 0, Math.Sin(-th)}, {0, 1, 0}, {-Math.Sin(-th), 0, Math.Cos(-th)}}

と,表示のとこ.
gr.DrawLine(Pens.Black, Fz, Fx, Bz, Bx)
gr.DrawLine(Pens.Brown, Fz, Fx, Rz, Rx)
gr.DrawLine(Pens.Black, Fz, Fx, Lz, Lx)
gr.DrawLine(Pens.Black, Rz, Rx, Lz, Lx)
gr.DrawLine(Pens.Blue, Tz, Tx, Bz, Bx)
gr.DrawLine(Pens.Blue, Tz, Tx, CSng(LocZ), CSng(LocX))
わかりやすいように右翼を茶色にしてみた.

内部では,x-z が水平でy軸が上になってる.
表示は,手抜きで,x-z 平面を グラフィクスの y-x にそのまま表示してる.

361 名前:デフォルトの名無しさん mailto:sage [04/08/02 00:11]
>そんなんだろ?
ああっと、勝手に決め付けてるようで悪いが、
お前の言動を見てるとそういう匂いがしたんだ。

362 名前:359=361 mailto:sage [04/08/02 00:13]
あ、進めてるところに水をさす気はないので続けてくれ。

363 名前:340 mailto:sage [04/08/02 00:31]
>>362
はい.
あなたの言うこともわかるのですが,この辺にしといてあげましょうよ.
これからいろいろ学んで立派になってくれることを祈りつつ.

で,ぼくはもう眠いので,ロールのところを書いて寝ます.

If e.KeyChar = "p" Then ' 右ロール
Dim th As Double = 10 * Math.PI / 180
Dim R(,) As Double = {{Math.Cos(-th), Math.Sin(-th), 0}, {-Math.Sin(-th), Math.Cos(-th), 0}, {0, 0, 1}}
A = R
End If

おやすみなさい.

364 名前:4.63267948799578E-05 mailto:sage [04/08/02 00:53]
>>340
色々手直し・追加ありがとうございます。
明日(今日)早いので帰ってきたらじっくり勉強させてもらいます。

>>361
分かってから振り返れば『そんなんだろ?』というレベルかもしれませんが、
検索するべき単語もハッキリ分からず模索している段階からみればそんな一言で片付けれるものじゃないっすorz
回転はおかしいけど悩みながら進行方向に動かしたり、直線だけどミサイルを飛ばしたりはできたんだけど・・・。
ほんと回転だけは悩まされましたorz

365 名前:デフォルトの名無しさん mailto:sage [04/08/02 01:38]
2次元の回転行列A=
{ cosΘ , -sinΘ }
{ sinΘ , cosΘ }

これを3次元に展開すればX軸回転、Y軸回転、Z軸回転が作れる。
例えばX軸回転(YZ平面回転)の場合、B=
{ 1 , 0 , 0 }
{ 0 , cosΘ , -sinΘ }
{ 0 , sinΘ , cosΘ }
となる。

それぞれ式に直すと
x'=x
y'=y*cos(r)-z*sin(r)
z'=y*sin(r)+z*cos(r)
となる。

Y軸回転、Z軸回転は自分で考えてみそ。



366 名前:デフォルトの名無しさん mailto:sage [04/08/02 06:11]
>364
>検索するべき単語もハッキリ分からず模索している段階からみれば
そこだよ。
基本がわかってないからそうなる。

あと、他人の意見を素直に受け入れられないなら、人に聞いても何も得られないよ。

367 名前:デフォルトの名無しさん mailto:sage [04/08/02 17:46]
すいません。質問させていただきますー

Console.WriteLine(result) をつかって、resultの中身を確認したいんですが、
どうやって確認したらいいんでしょうか。Msgbox()のようにダイアログが出る
わけでもないようなんですが。。。よろしくお願いします。


368 名前:デフォルトの名無しさん mailto:sage [04/08/02 18:12]
出力 ウインドウを確認

369 名前:367 mailto:sage [04/08/02 18:34]
>>368
お答えありがとうございます! なにやら超基本的なことを聞いてしまった
みたいですいません。助かりました。

370 名前:デフォルトの名無しさん mailto:sage [04/08/02 22:19]
何となく、ConsoleとDebugとかTraceを混同しているような気がしないでもない。

371 名前:4.63267948799578E-05 mailto:sage [04/08/02 22:27]
>>365
ありがとうございます。
野暮用(宿題)が増えたのでこっちに集中することはできませんが、
>>340さんのおかげで突破口ができたのでこれや調べたのを参照しつつ早く理解できるようにがんばります。

>>366
全く知らない範囲を基本と言わないでとorz
言われたことは既にやってるし、調べて試すと言う基本的なことも想像されてる以上にやってます。
ただ論理的っていう部分だけは除きますが・・・
(・・・分からない部分が論理的に考えることができたら、そりゃ理解できてるじゃんとか突っ込みたくなる(;´Д`))

大変申し訳ないのですが、レスのたびにどっかの文で人の努力を簡単に踏みにじってる印象を受けたので反論しています。
質問側で甘えてしまっている立場でほんと申し訳ないのですが、
> あと、他人の意見を素直に受け入れられないなら、人に聞いても何も得られないよ。
を返すとしたら
・他人を理解していなければ、その人が意見を素直に受け入れることは無理
全部を理解しろと言うわけではないけど、この大変さだけでも理解して欲しかったですorz
大変な中で叩かれると相当きつい。。
立場を弁えてないレス失礼しました。

372 名前:デフォルトの名無しさん mailto:sage [04/08/02 22:32]
>371
>>359,>>361に同意
何が基本かもわからないのは物事の本質を論理的に考えられないから

373 名前:デフォルトの名無しさん mailto:sage [04/08/02 22:34]
×「分からない部分が論理的に考えることができたら」
○「自分が何を分かっていないかを論理的に考える」
この時点で間違いだらけ。

374 名前:デフォルトの名無しさん mailto:sage [04/08/02 22:39]
>・他人を理解していなければ、その人が意見を素直に受け入れることは無理
ここは2chだ。
理解するべきことは「誰の発言か」ではなく「どんな内容か」それだけだ。
他人を理解できないと意見を受け入れられないなら2chで聞く事自体が間違い。
匿名掲示板で名も素性も知らぬ他人を理解できると思っているならお前は大馬鹿。
目を覚ませ。
今から考えを改めれば5年後にはまともな人間になれるかもしれないぞ。

375 名前:デフォルトの名無しさん mailto:sage [04/08/02 22:53]
偉そうな事を言ったのは謝る。
どうもお前みたいな甘えた奴見てるとイライラするんだ。
社会に出る前に論理的思考を身につけとけ。
俺はお前を不幸にしたいわけじゃない。
お前の周囲の人間が不幸になってしまうのを憂いているだけだ。
論理的思考を身に付けろ。
そうすればほんの少しでもみんな幸せになれる。



376 名前:デフォルトの名無しさん mailto:sage [04/08/03 08:42]
社会に出て本当に必要なのは
論理的思考力なんかではなく、他人に優しくできる心である


と、言ってみる。

377 名前:デフォルトの名無しさん mailto:sage [04/08/03 09:46]
社会は大部分の論理的思考の足りない奴らで構成されている。
論理的に問題解決しようとする俺らのほうが ちょっとおかしい人間 なんだよ。

ところで Boolean型 って何のためにあるんだ?
いや、まじめなはなし。

378 名前:デフォルトの名無しさん mailto:sage [04/08/03 09:55]
イエス・ノーをはっきりさせたいアメリカ人のため

379 名前:デフォルトの名無しさん mailto:sage [04/08/03 10:32]
>>377
コンピーターの基本動作は何かを考える

380 名前:デフォルトの名無しさん mailto:sage [04/08/03 10:45]
>>379
コンピュータの基本動作は理解しているつもりだが。
いや、そう言う意味じゃなくて、昔の BASIC には
なかってでしょ。
CPUが特別に持っている型でもないし、
技術的に何の意味があるのかという ちょっとした疑問。

>>378 みたいな答えはまぁ、納得するしかないね。

381 名前:デフォルトの名無しさん mailto:sage [04/08/03 11:00]
>>380
CPUにはフラグレジスタがある。
昔のBASICでBoolean型がなかったのは、ON/OFFだけで
変数1個分のメモリ使うのはもったいなかったからじゃないかな。
数値のままならbit数分だけ使えるし。
まあ、文中で論理式という形ではあったと言えるかも。
X=X+(K$="4")-(K$="6")

この話題は、こっちのスレのほうがよかったか。
MicrosoftBASIC総合談話室
pc5.2ch.net/test/read.cgi/tech/1089798174/

382 名前:デフォルトの名無しさん mailto:sage [04/08/03 15:13]
例えばaという通信の受信オブジェクトとF1、F2、F3の3つのフォームがあります。

受信したデータの処理で、3つのフォームそれぞれにaを置けば全く問題は無いのですが、
aを1つだけにして、受信イベント時に受信データを見て、
それぞれのフォームに振り分けたいとしたら、
どんな方法が一般的なのでしょうか?

383 名前:デフォルトの名無しさん mailto:sage [04/08/03 16:15]
>>382
普通にイベントを起こせばいいんじゃない?

384 名前:デフォルトの名無しさん mailto:sage [04/08/03 17:35]
前々から気になってたことなんですが
新規にフォームモジュールを作成するときに
Option Explicit On などを自動的に付加することって出来ますか?
プロジェクトのプロパティではOnになってるんですが
反映されないんです・・・


385 名前:デフォルトの名無しさん mailto:sage [04/08/03 19:03]
>>384
Option Explicit On って変数宣言の必要になるやつだよね。
ぼくは、普通に常に On になってるけど。
ツールのオプションのプロジェクトのとこだよね? ふしぎー。



386 名前:デフォルトの名無しさん mailto:sage [04/08/03 19:17]
>>381
>CPUにはフラグレジスタがある。
まぁ、確かに。 レジスタの退避命令使えば一応メモリ上にも置けるしね。

>まあ、文中で論理式という形ではあったと言えるかも。
んと、それは論理演算子のことで、Boolean型ではないですね。
論理演算子の演算結果が、昔は 整数型 だったのが
VB では Boolean型 になってる。

>この話題は、こっちのスレのほうがよかったか。
>MicrosoftBASIC総合談話室
あっ、ごめんごめん。
みんな暇そうだったから、疑問に思ってたことを言ってみただけ。
(えっ? 暇じゃないって? もっと ごめんごめん。)

387 名前:デフォルトの名無しさん mailto:sage [04/08/03 19:27]
>377
規格統一じゃない?
プログラマによって、TRUEを1とするか-1とするか分かれたりするし。

388 名前:デフォルトの名無しさん mailto:sage [04/08/03 22:56]
>>386
>んと、それは論理演算子のことで、
間違えた。「比較演算子」だった。

>>387
BASICによって、比較演算の結果が 1 のやつと -1 のやつが
あったからね。 C言語だと 1 だね。

そろそろ 次の相談者登場の予感。

389 名前:デフォルトの名無しさん mailto:sage [04/08/03 23:55]
次の相談です。
ちょと過去ログにみつからなかったんですが、バルーンチップって
どうやって出したらいいんでしょうか。
ステータスバーのところに「バックグラウンド処理が終わりました」
みたいなのを吹き出しで表示したいので、だから
ツールチップみたいにオートで出る奴じゃなくて、任意のタイミングで
任意の場所に出せるツールチップが欲しいのです。
InputMan.netは「バルーンチップ付きコントロール」はあるけど
バルーンチップ単独のコントロールはなさそうだし。

昔は論理式の「真が-1」を利用して、テンキー移動の処理を
K$=INKEY$
X=X-(K$="4")*(X>0)+(K$="6")*(X<39)
みたいに1行で書いたりしたな。久しぶりに書いてみたから上のは
合ってるかどうか知らないけど。

390 名前:デフォルトの名無しさん mailto:sage [04/08/03 23:55]
ただ単にあいまい性をなくして厳密にするためのものでしょ。
コンピュータではなく人間にとって分かりやすくするためのもの。
バグを出しにくくするためというのも含んでる。

391 名前:デフォルトの名無しさん mailto:sage [04/08/04 00:21]
>>385
多分>>384は設定の意味を勘違いしてるだけと思われ。
プロジェクトの設定は、ソースに明示してないときのデフォルトを設定するもので、
ソースに自動出力させるものではない。

392 名前:384 mailto:sage [04/08/04 01:26]
>>385>>391
ありがとうございます
VB6やOfficeのVBAのように行頭に追加されるものだと思ってました<m(__)m>

393 名前:デフォルトの名無しさん mailto:sage [04/08/04 16:25]
>>389
>ステータスバーのところに「バックグラウンド処理が終わりました」
>みたいなのを吹き出しで表示したいので、

バルーンチップって使ったことがないから、今ヘルプとか
見たけど良くわからん。
ぼくなら、メッセージを表示して [OK] ボタンを押すか
時間がくると自分で .Close するフォームを作っちゃうけど、
そう言うのじゃだめかな?

394 名前:デフォルトの名無しさん mailto:sage [04/08/04 17:47]
>>389
バルーンのようなフォームを作ってみましたが、
コードはともかくデザインもあるし、どうやって渡せばいいものか。

395 名前:デフォルトの名無しさん [04/08/04 18:26]
VB.NET2003 + ADO.NETで初歩的質問です。

実行時のパスにおいてあるMDB(Access2000)に接続したいんですけど
ウィザード系使うと接続文字列が固定になっちゃいますよね

サーバーで動いてるような大きなDBならまだいいけど
環境変わったりDBのパスが変わるような、要は接続先を実行時に決定するような仕組みをつくるには
もうクラスの宣言から全てコードで記述するしかないっつーか、それが基本なんでしょうか?
DB関係のGUIは一切放棄でつか?

ADOに比べてものすごい多くのコード書かなきゃいけないんですけど・・・
めんどくさい・・・

なんかよい省力化方法ってありますか?



396 名前:デフォルトの名無しさん mailto:sage [04/08/04 20:48]
>>395
接続文字列だけ書き換えればいいじゃん


397 名前:395 mailto:sage [04/08/04 21:04]
>>396
Connectionオブジェクト以下につながる下層オブジェクト(AdaptorとかDatasetとかDatagridとか)は
フォームの初期化イベント内で”つながり”が設定されているらしく
LoadイベントでConnectionの接続文字列を書き換えると、その後エラーで止まってしまいます。
うまいことやる方法はあるんでしょうか・・・
”つながり”の初期化(Refresh?)の仕方とかあったら教えて下さいませm(_ _)m

398 名前:デフォルトの名無しさん mailto:sage [04/08/04 21:16]
それって「フォーム デザイナで生成されたコード」を書き換えにいってないか?


399 名前:395 mailto:sage [04/08/04 21:58]
いやいやいやw
さすがにそこまでおまぬけさんじゃないです('A`)

フォームのLoadイベントで接続文字列を書き換えた後(初期値はウィザードで作った値になっています)、
しなきゃいけない処理とか、こうすれば下層オブジェクトまでの”つながり”に反映できるってのがあればご教示下さい〜

400 名前:新人 [04/08/04 22:21]
あの、すみません。
現在社会人一年目のペーペーで、研修を終えてOJTに入ったばかりです。
環境はVB.net + Javascriptというものらしいです。(まだよくわかってません)

そこで与えられた作業なのですが、現在、
ボタンを押すとテーブルに一行を追加する、という処理で詰まっています。

<script type="text/javascript">
<!--
function add_row() {
table = document.getElementById('tab1');
new_row = table.insertRow(table.rows.length);
new_row.insertCell(0).appendChild(document.createTextNode(''));
new_row.insertCell(1).appendChild(document.createTextNode('b'));
new_row.insertCell(2).appendChild(document.createTextNode('c'));
new_row.insertCell(3).appendChild(document.createTextNode('d'));
new_row.insertCell(4).appendChild(document.createTextNode('e'));
new_row.insertCell(5).appendChild(document.createTextNode('f'));
new_row.insertCell(6).appendChild(document.createTextNode('g'));
}
// -->
</script>

という感じで書いて、行を追加するのですが、
createTextNode('')
のままでは、ただ文字列を表示するだけなんです。
これをテキストボックスにするやり方が、もうずっと考えているんですけど、
どうしても分かりません。
周りに聞ける人間が全然いなくて、メソッドの使い方もまだ全然です。
どうか、どなたか救っていただけませんでしょうか?

401 名前:デフォルトの名無しさん mailto:sage [04/08/04 22:28]
>>399
その後のエラーとやらの内容をちゃんと書け。
でも簡単にやる場合は普通はダイナミックプロパティを使うと思うが。

402 名前:デフォルトの名無しさん mailto:sage [04/08/05 03:51]
学校でVB6.0を使っているのですが
課題を家でやるためにspoke premiumを買っても問題ないでしょうか?

403 名前:デフォルトの名無しさん mailto:sage [04/08/05 08:52]
>>402
だめ
VB6スレにいけ

404 名前:デフォルトの名無しさん [04/08/05 10:11]
>>400
周りに聞けるものがいない会社ってどんな会社だよw

405 名前:395 mailto:sage [04/08/05 10:45]
解決しました・・・・orz
りっぱなおまぬけさんですた・・・・orz

というか、Loadイベントで接続文字列書き換えるだけで下層も勝手に追随してくれるんですねー
リフレッシュも何もいらないとは、便利というかブラックボックスというか・・・

結局昨日はなんでエラーになったかというと
ソースと同じパスにmdb置いてたせいだったんでした orz
VB.NETはexeがソース直下のbinフォルダにできるんでした・・・
VB6に慣れすぎてます(涙
お答えくださった方、ごめんなさいでした

>>401
ダイナミックプロパティは”実行時のパス”を設定できないのでこの場合使えませんでした。
でもoracleとかの固定DBには有効な手段ですね!サンクスです。



406 名前:デフォルトの名無しさん [04/08/05 14:06]
WebBrowserで新しいウィンドウを開かせても親ウィンドウを
閉じたら子ウィンドウも閉じてしまう現象を解決する方法は?
6.0なら何も指定しなくてもいけたんだが…。

With New Form1
.WebBrowser1.RegisterAsBrowser = True
e.ppDisp = .WebBrowser1.Application
.Visible = True
End With

407 名前:デフォルトの名無しさん [04/08/05 14:45]
DataGridで特定の列だけセルにフォーカスを受けないようにする方法はないでしょうか?
Tabキーを押していくとその列だけとばされるようなイメージで。



408 名前:デフォルトの名無しさん mailto:sage [04/08/05 18:14]
今、VB.net 2002を使用していますが
2003にアップするとどのような魅力がありますか?

どうせアップするならVIsual Studio.net 2003 Professionalの
ステップアップグレード買おうかと迷っとります。

けど2005もベータ版が発表されましたしもう少し様子見た方が良いですかね?


409 名前:デフォルトの名無しさん [04/08/05 22:52]
Visual Studio .NET theSpoke Premium Version 2003
って、ラーニングエディションみたいなもんですか?

410 名前:409 [04/08/05 22:55]
すいません、スレ違いでした
逝ってきます・・・

411 名前:デフォルトの名無しさん mailto:sage [04/08/06 07:02]
>>407
Private Sub DataGrid1_CurrentCellChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGrid1.CurrentCellChanged
    〜
End Sub
で該当の列だったら
DataGrid1.CurrentCell = New DataGridCell(RowNumber, 次のColumnNumber)

412 名前:407 mailto:sage [04/08/06 08:59]
>>411
早速教えていただきありがとうございます。
これ最後の列だったりするときは勝手に次の行に行きますかね?
ってとりあえず試してみます。
助かりました。

413 名前:407 mailto:sage [04/08/06 09:53]
うまく行きそうです。

質問続きで申し訳ないのですがDataGridを継承させてコントロール(myDataGrid)を作っているのですが
myDataGrid.TableStyle.Addメソッドが呼ばれたことをmyDataGrid側で知る方法はないでしょうか?

414 名前:デフォルトの名無しさん mailto:sage [04/08/06 14:28]
数字を漢字にしてくれる関数はなんでしょうか?

Ary(1)="一"
Ary(2)="二"
Ary(3)="三"
のように自作で数字漢字変換するしかないのでしょうか


415 名前:デフォルトの名無しさん [04/08/06 14:37]
>>414
そんな関数がライブラリで用意されてると期待すること自体が不思議。



416 名前:デフォルトの名無しさん mailto:sage [04/08/06 15:17]
>>414

ChangeNumericToJapaneseNumericChar()

417 名前:デフォルトの名無しさん mailto:sage [04/08/06 15:34]
>>414
漢字コードは順番に並んでるんだから、変換テーブルは必要ないと思うけど。

418 名前:414 mailto:sage [04/08/06 15:47]
みなさま了解です。

419 名前:デフォルトの名無しさん mailto:sage [04/08/06 16:28]
VB6で「アイコンなし、×ボタンだけなんだけどサイズ変更可能なダイアログ」
というのを実現するのに、BorderStyle=固定ダイアログ、Icon=なしにして、Form_Loadで
SetWindowLong WS_THICKFRAME して実現してますた。
これをVB.NETでもやりたいんですが、APIなしでできますか?それとも同じ方法が
ベストですか?
あとついでに、フォームの右下にサイズ変更ツマミ(斜線をドラッグできるやつ)って
任意に出せないですか?


420 名前:デフォルトの名無しさん mailto:sage [04/08/06 21:06]
>>419
書いてあること、フォームのプロパティウィンドウでいろいろ試すだけで
一分で全部できた。

正直、こういう人ってどういう根性してるのかねえ?不思議。
精神分析の対象だわホント。

421 名前:デフォルトの名無しさん [04/08/06 21:20]
>>420 うぜぇよ。消えな。

422 名前:デフォルトの名無しさん mailto:sage [04/08/06 22:28]
漢字を数字か。昔仕事でそんなコードを書いたな。
百五と百十五と百二十五とか腹立つんだよねぇ

423 名前:デフォルトの名無しさん mailto:sage [04/08/06 23:48]
>422
一、十、百、千、一万とかも嫌だね。

424 名前:デフォルトの名無しさん mailto:sage [04/08/07 00:10]
客が壱、弐、参も使いたいとかローマ数字T、U、Vとかも使いたいとか言ってきたら大変だな

425 名前:e [04/08/07 01:06]
ADO.NETでデザイナを使わないで、プログラミングする方法の解説とか
ごぞんじないでしょうか。

webで検索してみても、こういう結構基本的なもので終わってるのが
多いもんで。。。
www.atmarkit.co.jp/fdotnet/basics/adonet_index/index.html




426 名前:デフォルトの名無しさん mailto:sage [04/08/07 01:08]
白黒2色のマスク画像みたいなやつの黒の部分から
Regionオブジェクトを作る方法ってないでしょうか?

427 名前:DARK mailto:sage [04/08/07 01:32]
NoCD化パッチ作りたいのですが…教えて下さいm(_ _)m


428 名前:デフォルトの名無しさん mailto:sage [04/08/07 02:03]
>>425
黄色いADO.NETの本とかは?
でかくて高いヤツ
まぁあれも基本しか書いてないけど


429 名前:デフォルトの名無しさん mailto:sage [04/08/07 07:25]
やっぱ標準モジュールがあると便利だね。
C#が嫌になってきた。

430 名前:デフォルトの名無しさん mailto:sage [04/08/07 13:14]
c#が嫌なのは同意するが(VBに比べると、可読性が悪くてイライラしてくる)
標準モジュールなんてイラネ。

読みにくいキャメル形式の命名法もイラネ。

431 名前:ぷぷぷっ mailto:sage [04/08/07 17:11]
.NET(2002 or 2003)で作成したアプリを動かしたときに、
そのアプリはどの.NET Frameworkのバージョン(1.0 or 1.1)で動いているか
把握することはできないんかいのぉ。。。
そのアプリのフッター部分に表示とかしたいのじゃが。

432 名前:デフォルトの名無しさん mailto:sage [04/08/07 19:20]
ちょっと違うが、VB.NETで作ったプログラムで、フォームに
そのプログラムをコンパイルした日時を埋め込みたいのですが
なんか方法ありますか?


433 名前:デフォルトの名無しさん mailto:sage [04/08/07 22:58]
標準モジュール…ってあんたw

434 名前:419 mailto:sage [04/08/08 02:31]
>>420
出来なかったんですが、やり方教えてもらえませんか?


435 名前:419 mailto:sage [04/08/08 03:06]
>>434
当たり前なので書き忘れましたが、SizableToolWindowはなしでお願いします。
あれはダイアログボックスではなくプロパティインスペクタを作るための
もので、タイトルバーの高さが異なるものなので。



436 名前:419 mailto:sage [04/08/08 03:12]
>>435
あ、でもSizableToolWindowでプロパティをいじるだけでタイトルバーの
高さを通常のウィンドウと揃える方法があればそれでオーケーです。
連続カキコですみません。

437 名前:デフォルトの名無しさん mailto:sage [04/08/08 14:16]
自分でコントロール作った方が早くない?

438 名前:デフォルトの名無しさん mailto:sage [04/08/08 21:52]
>>435
重症だわこの人。。「当たり前なので書き忘れましたが、」だと。
なんで最近こういう「自分以外はみんなエスパー」と思ってるとしか思えない
病的な奴が多いんだろう。

420 :デフォルトの名無しさん :04/08/06 21:06
>>419
書いてあること、フォームのプロパティウィンドウでいろいろ試すだけで
一分で全部できた。

書いてあること、

書いてあること、

書いてあること、

439 名前:デフォルトの名無しさん mailto:sage [04/08/08 21:54]
>>438
自尊心を守るのに必死なんだよ。放っておいてやれ

440 名前:デフォルトの名無しさん mailto:sage [04/08/08 23:52]
変なヤツは放置しろよおまえら

441 名前:デフォルトの名無しさん mailto:sage [04/08/09 02:19]
>>432
.exe のタイムスタンプで代用じゃダメか?

442 名前:デフォルトの名無しさん [04/08/09 13:22]
>>441
あ、そうか。コロンブスの卵ですね。さんく


443 名前:デフォルトの名無しさん mailto:sage [04/08/10 01:59]
みなさ〜ん。自分は今日からプログラミング始めようとしている高校生です。
なんかいろいろ調べるとVBやらVB.NETやらC++やらC#やらいろいろな言語があることを知りました。
難易度的にはVBが一番簡単らしくVB.NETはVBの進化で少し複雑になっているとか。
C++やC#は難しいとか。。
自分としてはVBを覚えその次にVB.NETんでもってC++やC#やろうかなって思っていたのですが
どうやらVBとC#はまったく関連性がないとか。。。
フランス語覚えたから中国語得意になるってわけでないのと同じですかね?
将来は本格的なプログラマになりたいので、やっぱりC言語からはじめてC#やC++を学んだ方が
よいのでしょうかね?

444 名前:デフォルトの名無しさん mailto:sage [04/08/10 02:30]
ここはVB.NETの技術的な質問回答をする場所なので
どの言語が自分に適してるかを答えることはできないと思う
プログラマー板の方に行った方が適切な回答が得られると思われ

445 名前:デフォルトの名無しさん mailto:sage [04/08/10 04:39]
>>444サンクス ペコ



446 名前:デフォルトの名無しさん [04/08/10 09:48]
私だけ?何年もVBに触っているのに、
いまだにTreeViewの使い方が分からない・・・


447 名前:デフォルトの名無しさん mailto:sage [04/08/10 12:10]
>>446
いや・・俺もこないだ初めて知った人なのだが、それは質問なのか?

448 名前:デフォルトの名無しさん mailto:sage [04/08/10 19:34]
質問です。

フォームに、ボタン2つと、グループボックスを配置します。ボタン2を
グループボックスに乗っけます。そして、

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

If Me.GroupBox1.Enabled = True Then
Me.GroupBox1.Enabled = False
ElseIf Me.GroupBox1.Enabled = False Then
Me.GroupBox1.Enabled = True
End If

End Sub

とすると、グループボックスとボタン2をまとめて有効/無効を切り替え
出来るのですが、

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Me.Button2.Enabled = False
End Sub

として、ボタン2をクリックしてボタン2を無効にすると、ボタン1をクリックしても
グループボックスとボタン2をまとめて有効/無効を切り替え出来なくなります。
何故でしょう(;´Д`)

449 名前:最凶VB厨房 mailto:sage [04/08/10 20:21]
2箇所のEnd Subの前に
MessageBox.Show("Button2.Enabledは" & Button2.Enabled.ToString())
をつけてやっとーみ。

450 名前:デフォルトの名無しさん mailto:sage [04/08/10 21:13]
レスどうもです。
ひょっとしてEnabled = Falseになっているコントロールは、
グループボックスと連動してEnabled = Trueに出来ないのでしょうか?
そうならちょっと不便(;´Д`)

451 名前:最凶VB厨房 mailto:sage [04/08/10 21:18]
ボタン2が有効か無効かは
この場合グループボックスとボタン2の論理積(And)となる。

つまりはグループボックスのEnabledを操作すればいいだけ。

452 名前:デフォルトの名無しさん mailto:sage [04/08/10 21:42]
>>450
もう解が得られたようだけど、
>ひょっとしてEnabled = Falseになっているコントロールは、
>グループボックスと連動してEnabled = Trueに出来ないのでしょうか?

もしそういう感じの仕様になっていると、そのうち
「グループボックスやフォームなどのコンテナに入っているコントロールは、
 必ずコンテナと連動してEnable = True になってしまうのでしょうか。
 そうならかなり不便」
ということになると思う。

453 名前:450 mailto:sage [04/08/10 22:10]
グループボックス=ON  ボタン2=ON  ←真
グループボックス=OFF ボタン2=OFF ←真
グループボックス=ON  ボタン2=OFF ←偽
グループボックス=OFF ボタン2=ON  ←偽

弱い頭で考えますた。間違ってます?

454 名前:最凶VB厨房 mailto:sage [04/08/10 22:14]
知らんかったら論理積で検索して確かめな。

455 名前:デフォルトの名無しさん mailto:sage [04/08/10 22:20]
>>450
ええと、
・ウィンドウ(フォーム)が Enable = False の場合、中のコントロールは (Enableの値に関わらず) 全て無効
・グループボックスが Enable = False の場合、中のコントロールは (Enableの値に関わらず) 全て無効
ってことですよ。コンテナ側が無効だと、中身は無効。

喪前の学校が休みのときは、どのクラスも休み。
喪前のクラスが休みのときには、元気な奴も病気の奴も皆休み。
学校もクラスも休みじゃないときには、病気 (Enable = False) の奴だけが休み



456 名前:450 mailto:sage [04/08/10 22:44]
理解できました!
最凶VB厨房殿、デフォルトの名無しさん殿ありがとうでした(`・ω・´)

457 名前:デフォルトの名無しさん mailto:sage [04/08/11 00:02]
だれか突っ込んでやれよ。

>>450
>If Me.GroupBox1.Enabled = True Then
> Me.GroupBox1.Enabled = False
>ElseIf Me.GroupBox1.Enabled = False Then
> Me.GroupBox1.Enabled = True
>End If

このコードはあまりにひどいだろ。

Me.GroupBox1.Enabled = Not Me.GroupBox1.Enabled

か、せめて

If Me.GroupBox1.Enabled Then
Me.GroupBox1.Enabled = False
Else
Me.GroupBox1.Enabled = True
End If

だろ、普通。

458 名前:デフォルトの名無しさん mailto:sage [04/08/11 02:23]
>>457
スレ違いを承知で突っ込んでおくが、>>450の書き方が決して「良くない」
とは言えない場合もあるよ。

Boolean 型が何バイトか考えてごらん。VB.netでは2バイト(=8ビット)だ。
BOOL型が存在しないCなどでは
 #define BOOL char
 #define TRUE 0x01
 #define FALSE 0x00
とか書いてたりすることもある。こうなると
 BOOL HogeFlag=TRUE;
 if(HogeFlag==TRUE) wow(); // (1)
 if(HogeFlag) wow(); // (2)
と、(1)と(2)では挙動が同じでも違いが良くわからなかったりする。

大勢の人間が寄ってたかって複数の言語で開発するような現場の場合、
よほど速度チューニングが求められない限り、冗長でもいいから明示的に
誰でも解るように書くのが暗黙の了解だったりする。

とにかく、自分の主観だけで他人のコードを「あまりにひどい」などと
言うのは良くないよ。

459 名前:458 mailto:sage [04/08/11 02:24]
2バイト=16Bitだ。。。_| ̄|○

460 名前:デフォルトの名無しさん mailto:sage [04/08/11 11:02]
>>458
なんかフォーカスがずれたお人だね。そういうの「為にする議論」っていうんだよ。

「冗長でもいいから明示的に誰でも解るように」という要件は、
<.NETでは>Booleanという型が存在しそれを利用することで必要十分に満たされている。
Booleanってそもそも何だと思ってるの?(ついでに、Boolean=ワード、ってのは旧VBの仕様)
違う道具(C)の作法をそのまま適用して何になる。

一般論をしてるだけだって?
特殊なケースでの冗長なコードの効用を過剰に一般化してるだけじゃん。
そういうの「馬鹿の一つ覚え」とか「羹に懲りて膾を吹く」って言う。

461 名前:450 mailto:sage [04/08/11 11:53]
>>457
大変勉強になりました。ただ、あなたがプログラムに関して、
私以上に知識を有してる事は十分理解出来ますが、それを必要以上に
誇示したり、「あまりにひどい」「馬鹿の一つ覚え」「羹に懲りて膾を吹く」
と言う発言は、一社会人の会話として私には『冗長』に思えてなりません。

462 名前:457 mailto:sage [04/08/11 12:16]
>>461
私の 「あまりにひどい」 発言に批判があるようで、反省。。
なかったことにしてくれ。私がわるかった。

私が一番気になったのは、ElseIf で 成立しかしない条件を
判定しているところなんですよ。
個人的には、2つ目の例のほうがわかりやすいと思ってる。
他の処理を足せるしね。

>>460 は 私じゃないので知りません。

463 名前:457 mailto:sage [04/08/11 12:37]
>>458
>とにかく、自分の主観だけで他人のコードを「あまりにひどい」などと
>言うのは良くないよ。

そこは今反省中。
もちろん、(たぶん)意図通り正しく動くプログラムであることは
すばらしいことだと思ってます。
その範囲内での発言のつもりだったのですが、そんなことは
全然伝わるわけも無かったと反省中です。ごめんね。

じゃぁこうしよう。

If Me.GroupBox1.Enabled = True Then
Me.GroupBox1.Enabled = False
Else
Me.GroupBox1.Enabled = True
End If

これなら、私もそんなに気持ち悪くない。
って言うのも 主観 か、残念。

464 名前:デフォルトの名無しさん [04/08/11 14:13]
asp.netの質問ってここでもよいですか?

465 名前:デフォルトの名無しさん [04/08/11 15:06]
なぜか悪者にされているが>457は良い指摘だと思ったのは俺だけじゃないよな



466 名前:デフォルトの名無しさん mailto:sage [04/08/11 15:16]
if a = true then
b = false
else
b = true
end if

より

a = not b

のほうが断然いいよな。
値を反転してるって一目瞭然だし。

467 名前:デフォルトの名無しさん mailto:sage [04/08/11 20:18]
>458 の詭弁もあるが指摘自体はただしいだろ。
じっさい俺もひどいコードと思ったし。
>450 は教え方が悪いと言ってんじゃないの?

468 名前:デフォルトの名無しさん mailto:sage [04/08/11 21:13]
漏れなんかは VB (.Net) は、「動けば良し」的センスで使ってナンボ、みたいな先入観があるので、
457的突っ込みは思いつきもしなかった。まぁあれは確かに正論だし親切だと思うけど。
 ↑こう書くと荒れにくい。

 ↓こう書いてはいけない
>>457 どうせVBなんて厨坊言語なんだから、酷いコードでもちゃんと動きゃそれでいいんだよ。

469 名前:デフォルトの名無しさん mailto:sage [04/08/11 23:21]
マウスカーソルを乗せると浮き上がって、
押すと凹むツールバーのようなものってVBでは出来ないのでしょうか?
例えばLive2chのツールバーや、Winnyの「ノード情報」等で使われているものです。
C++やDelphiで作られているようですが・・



470 名前:デフォルトの名無しさん mailto:sage [04/08/12 00:43]
>>469
ToolBar.Appearance プロパティをFlatにすればできると思うけど・・・。

471 名前:デフォルトの名無しさん mailto:sage [04/08/12 03:24]
>>470
ありがとう、出来そうです。

472 名前:デフォルトの名無しさん mailto:sage [04/08/12 16:21]
>>468
このスレはそういうレベルなのか?
VBってバカにされがちだけど結構ちゃんとできてる。
醜いコードでもとりあえず動くものを作るのは重要だけど
それで終わらせるのも勿体無いと思う。
「こういう処理は こう書くときれい」とかも共有して行こうよ。

473 名前:デフォルトの名無しさん [04/08/12 18:15]
テキストボックスに商品の値段を入力したときに、数値に3桁区切りの","を付けたいのですが
入力したとたんに桁区切りをする方法というのはあるのでしょうか?

別のフォームで入力して、表示する際に桁区切りにするのは出来たのですが、入力したそのフ
ォームの中で桁区切りにする方法というのがどうしても判りません。

474 名前:デフォルトの名無しさん mailto:sage [04/08/12 18:37]
>>473
人間はエスパーじゃないことを忘れないようにしよう。
「入力したとたんに」とは具体的にどういうこと?
ひょっとして人に質問している自分自身が何がやりたいのか分ってないとか?

(3n+1)桁の数字のキーが押されたタイミングで、ということ?
あるいは、エンターキーが押されたタイミング?
それとも、他のコントロールにフォーカスが移ったとき?

一番最初のなら、そんな腐れUIは考え直すべきだと思う。
後の2つなら、単にそういうコード書くだけだと思うけど。

475 名前:デフォルトの名無しさん mailto:sage [04/08/12 19:06]
>>473
ひょっっっっとして、
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, \
       ByVal e As System.EventArgs) Handles TextBox1.TextChanged
というイベントメソッド名が解らん、とかそーいうハナシか?



476 名前:デフォルトの名無しさん [04/08/12 19:14]
>>466
b = not a


477 名前:デフォルトの名無しさん mailto:sage [04/08/12 19:51]
Vd:J/A>Dxqr-RJ"~{Ro*

478 名前:コピペ [04/08/12 20:02]
ファイル切り貼り処理を行うに当たって、既に同じ名前のファイルがあるとエラーになってしまいます。
その場合は上書きで処理したいのですが、どう書けばいいでしょうか?
現在以下のようなコードで切り貼り処理をしています。

'strOKU_FILE = 切取側ファイルパス
'strUKE_FILE = 貼付側ファイルパス
Set FsoFile = fso.GetFile(strOKU_FILE)
FsoFile.Move (strUKE_FILE)

479 名前:デフォルトの名無しさん mailto:sage [04/08/12 21:05]
>>478
そんなもんここにレスしている間に調べがつくだろ。
横着野郎に今日を生きる資格はない。
こういう奴の書くコードってどっかのサンプルのツギハギなんだろうなきっと。

まあ、ヒントだけだすと、そんなことにわざわざFSOなんぞ使うな、
VBネイティブの機能を調べろ、ってことだな。

480 名前:デフォルトの名無しさん [04/08/12 21:38]
>>479
あんた、やさしいな。

481 名前:デフォルトの名無しさん [04/08/12 22:13]
>>479
名前欄・・・

482 名前:デフォルトの名無しさん mailto:sage [04/08/12 22:26]
VBは確かに楽な言語だな。
VBで用意されているコンポーネントを使う分にはとても楽でいい。
ちょっと変な事を客から要求されるとかなり大変になるけど。

でも、VBに溺れたPGは最悪だな。
もうVB以外全然できない。
入門としてVBをやるのはいいが、そこからステップアップする気概が欲しいね。

483 名前:デフォルトの名無しさん mailto:sage [04/08/12 23:02]
>>473
電卓みたいに、入力できるのを最下桁に固定すると
簡単になるじょ。

484 名前:デフォルトの名無しさん mailto:sage [04/08/12 23:03]
>>482
.NET使ったこと無いだろ(w

485 名前:デフォルトの名無しさん mailto:sage [04/08/12 23:07]
>484
残念、逆。
.NETでVBに触れた。



486 名前:デフォルトの名無しさん [04/08/12 23:08]
>>482
>入門としてVBをやるのはいいが、そこからステップアップする気概が欲しいね。

C言語のほうが使いやすい奴がVBはじめるのはステップダウンですか?

487 名前:デフォルトの名無しさん mailto:sage [04/08/12 23:13]
>>485
そっか・・・
貴殿はVB6を見ると卒倒するんだろうな・・・


488 名前:デフォルトの名無しさん mailto:sage [04/08/12 23:20]
>486
そうは言わないよ。
VBだって優れた言語だ。
ただ、VBしかやっていないでいると、計算機の本質を考えずにプログラミングできてしまう。
それは>482で言った「ちょっと変な事」を実現するための想像力の欠如に繋がる。
結果として作られたレールの上しか走れないPGになる。
それはクリエイターとしては大きすぎる痛手だ。

>487
色んな言語やってるから大丈夫だと思う。
自分で設計するならオブジェクト指向なしに戻りたくはないが。

489 名前:デフォルトの名無しさん mailto:sage [04/08/12 23:30]
>>488
計算機の本質じゃなくて、Windowsプログラミングの本質でしょ。
何が本質かは主観の問題だろうけど、
SDKプログラミングだって「作られたレールの上」を走っていることに違いはない。

490 名前:デフォルトの名無しさん mailto:sage [04/08/12 23:49]
結局自慢話か( ´,_ゝ`)

491 名前:デフォルトの名無しさん mailto:sage [04/08/12 23:51]
「VBでアプリを作るのは非常に簡単。VBで『マトモな』アプリを組むのは非常に難しい」

VB4の頃からウチの会社に伝わっている格調高き名言でつ。
ドトネトになってからは更に加速したヨカン。

492 名前:デフォルトの名無しさん mailto:sage [04/08/12 23:53]
>>488
まあ、言ってる事は分かるんだけど、VB.NETに関しちゃ、
JavaでもC#でも似たようなもんじゃないかな。Cとかなら別だけど。
計算機の本質と言うか、単にプログラミングということ自体の理解が足りないかな。

ついでに…
最悪なのはVBしか出来ないプログラマではなくて、VBすらできないプログラマだ…
ってか、VB.NETが「ちゃんと」使えるなら大丈夫なんだけどね。

493 名前:483 mailto:sage [04/08/13 00:04]
ひまだとVB議論のスレになるのだ。

>>473
こんな感じでいかがなものかな?
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Dim v As Decimal
If InStr("0123456789", e.KeyChar) > 0 Then
v = Val(TextBox1.Text.Replace(",", ""))
v = v * 10 + Val(e.KeyChar)
TextBox1.Text = Format(v, "#,##0")
TextBox1.SelectionStart = TextBox1.Text.Length
End If
e.Handled = True
End Sub

若干手抜きかも知れないのでみんなで直してくれい。

494 名前:デフォルトの名無しさん mailto:sage [04/08/13 00:08]
TextChangedだったかのイベントの方が良いと思うのだよ。

495 名前:483 mailto:sage [04/08/13 00:12]
>>494
そうなの?
理由教えて。



496 名前:デフォルトの名無しさん mailto:sage [04/08/13 00:25]
あ、ちょっと勘違いしてたかも…
言いたかったのは、メニューからペーストした場合とか、
要はキー入力以外でも書き換えられる可能性はあるという意味だったんだが…

497 名前:483 mailto:sage [04/08/13 00:43]
>>496
なるほどね。ペーストされちゃダメだわ。

でも言われて TextChanged バージョンも作ってみたけど結構めんどうそうだよ。

Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
Dim c As Integer
Dim v As Decimal
c = TextBox2.SelectionStart
If c > 0 Then
If InStr("0123456789", TextBox2.Text.Substring(c - 1, 1)) = 0 Then
TextBox2.Text = TextBox2.Text.Replace(TextBox2.Text.Substring(c - 1, 1), "")
TextBox2.SelectionStart = c - 1
End If
End If
c = TextBox2.Text.Length - TextBox2.SelectionStart
v = Val(TextBox2.Text.Replace(",", ""))
TextBox2.Text = Format(v, "#,##0")
If TextBox2.Text.Length - c > 0 Then TextBox2.SelectionStart = TextBox2.Text.Length - c
End Sub

まだちょっとおかしい。

498 名前:483 mailto:sage [04/08/13 00:57]
もっと簡単になったよ。

Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged
Dim c As Integer
Dim a As Integer
Dim v As Decimal
c = TextBox3.Text.Length - TextBox3.SelectionStart
For a = 0 To TextBox3.Text.Length - 1
If InStr("0123456789", TextBox3.Text.Substring(a, 1)) > 0 Then
v = v * 10 + Val(TextBox3.Text.Substring(a, 1))
End If
Next
TextBox3.Text = Format(v, "#,##0")
If TextBox3.Text.Length - c > 0 Then TextBox3.SelectionStart = TextBox3.Text.Length - c
End Sub

こんなもんでいいのかな?

499 名前:デフォルトの名無しさん mailto:sage [04/08/13 00:57]
だからそもそもそんな糞みたいなUI採用するのが間違っとる。

まあそれは置くとしても入力制限するんだからそもそもペーストに反応しちゃまずい。
そして入力制限さえ出来れば、後の処理はParseしてToStringするだけ。
TextBox1.Text = Integer.Parse(TextBox1.Text).ToString("###,###,###,###,###,###")

500 名前:483 mailto:sage [04/08/13 01:19]
>>499
1行で出来るよってこと?

そうだったのか、かっこ悪い漏れ orz
後は任せた。

501 名前:デフォルトの名無しさん [04/08/13 08:42]
>>486
自分もそのクチだけど、けっこう新しい発見があるので損はしないよ。

502 名前:デフォルトの名無しさん [04/08/13 09:14]
偉そうなこと言う奴に限ってxxx
499 < 498

503 名前:デフォルトの名無しさん [04/08/13 17:12]
>>502
まあおまえは何も出来ない無能なわけだが。

504 名前:デフォルトの名無しさん mailto:sage [04/08/13 18:29]
OSの作り方教えてください。

505 名前:デフォルトの名無しさん mailto:sage [04/08/13 20:53]
TabControlなのですが、ふと気付くとタブの順序が入れ替わって
しまっていることがありるのですが、戻す方法は無いでしょうか・・・



506 名前:デフォルトの名無しさん mailto:sage [04/08/13 21:05]
Tabつながりでふと思い出したこと

TABキーを押したときの順番をGUIで変更することってきる?(ACCESSみたいに)
.NET発表の際にその辺が強化されたって話を聞いてたんだけど


507 名前:デフォルトの名無しさん mailto:sage [04/08/13 22:29]
>>502
まぁほっといてやれ。
もともとの質問出した >>473 が好きなほうを選ぶよ。

508 名前:デフォルトの名無しさん mailto:sage [04/08/13 22:45]
>>505
デザイン時? 実行時?

デザイン時なら、TabPageコレクションエディタの [↑] [↓] ボタンで
順番は変えられるよ。

実行時なら、もう少し詳しく現象を報告してちょ。

509 名前:デフォルトの名無しさん mailto:sage [04/08/13 22:46]
>>506
旧VBって、できなかったの?

510 名前:デフォルトの名無しさん mailto:sage [04/08/13 22:50]
>>508 デザイン時なら、TabPageコレクションエディタの [↑] [↓] ボタンで
できました。ありがとうございます。

実行時に勝手に変わるということは無いと思うので、デザイン時だとは思うのですが
そのプロパティはいじってないし、ふと気付くと変わってることがある状態で気持ち
悪いです(しく

VB.NET(2002)

511 名前:506 mailto:sage [04/08/14 03:07]
自己解決

表示のタブオーダーでできました

512 名前:506 mailto:sage [04/08/14 03:12]
>>509
もしかしたら有るのかもしれないけど
一個一個オサルのごとく数値変えてました(w

513 名前:デフォルトの名無しさん [04/08/14 16:15]
VB.net 2003でWindowsコントロールライブラリの勉強をしています。
UserControl上にLabelとButtonを追加したユーザーコントロールに
新たなプロパティーを追加する場合について質問です。

<System.ComponentModel.Browsable(True)> _
Public Property tProp_Button() As Button
Get
Return Me.Button1
End Get
Set(ByVal Value As Button)
Me.Button1 = Value
End Set
End Property
Buttonをデザイン上で変更出来るようにする為に上記のコードを記述すると、
そのユーザーコントロールを貼り付けた別のプロジェクトのデザイン上では、変更した値が表示される(例えば.textに"hoge"とするとボタンに"hoge"と表示される)のですが、
そのプロジェクトを実行させた場合、デザイン上で変更した値が反映されません。

ただ、Buttion1の宣言をpublicにして、コードで変更した値は、実行時には正常に反映されます。
コントロール自体をデザイン上で変更出来る様にするにはどのようにすればよいのでしょうか?



514 名前:デフォルトの名無しさん mailto:sage [04/08/14 16:23]
なにがしたいのかさっぱり分からん。
デザイナ上でコントロール自身を変更するってどういうこと?
っていうかコントロール自身を入れ替えてどうするの?

515 名前:デフォルトの名無しさん [04/08/14 19:42]
>281さん、結果報告キボンヌ。

ぢつはおいらも、別フォームで入力したテキストの内容を、セクション1の
テキストオブジェクトに表示したくて、Googleで調べたらここに辿り着いた
っす。

で、そのテストに>290さんのをやってみました。

ビューワーを指定したFormを開くときに、>290さんのコードを実行している
んですが、ビルドエラーなどは出ないんですけど、Text1は空っぽのままっす。

表示したビューワーをリロードしても表示されませんです。

>281 さん、上手くいったなら、報告をながいます。



516 名前:デフォルトの名無しさん mailto:sage [04/08/15 00:24]
質問なのですが、下のリンク先にある、Visual Basic .NET 2003というものは、Visual Studioを使った時のようなエディタがついているのでしょうか?


ttp://www.microsoft.com/japan/msdn/vbasic/productinfo/default.asp

兄が、仕事で使っているというVB.NETでは、関数の名前を入力した後、ピリオドをうつと各プロパティとか命令が表示されて、かつそれぞれのヘルプまで表示されると聞いたのですが、その機能がほしいのです。

517 名前:デフォルトの名無しさん mailto:sage [04/08/15 00:37]
>>514
それは君が無知で無恥だから。ユーザーコントロールって概念が理解できてないんだろ。
知らないなら黙ってろよ。
何をやりたいかは>>513の文章で理解可能。俺は解決法は知らないけど。

ま、でもデザインモードでの変更がコードに反映されてないだけだろうから
そんなに難しい問題じゃない気がするけど。
.NETではVB6みたいにウィザードがコード書いてくれないのか?

518 名前:デフォルトの名無しさん mailto:sage [04/08/15 00:55]
>>517
うーむ、俺が無知なら正直すまんかったんだが…
見たところユーザコントロールに既に貼り付けてあるボタンのインスタンスを
プロパティで入れ替えようとしてるんだよね?

ってかいてて今やりたいことが多分分かった…
普通その場合は、プロパティを読込専用にするだろ?
入れ替えできるようなプロパティを書いてるから勘違いしてたよ。

519 名前:デフォルトの名無しさん mailto:sage [04/08/15 00:57]
あと、VB.NETで貼り付けたコントロールの実体はプロパティなので、
普通はメンバをPublicにするだけでOK。
まあ、新たに追加してもいいことはいいんだけど…

520 名前:デフォルトの名無しさん mailto:sage [04/08/15 01:00]
って何度もすまん、これじゃデザイナでできないって言ってるのか…
まえに同じような事して単純に出来たような気がするんだけど…未確認。

生成されたコード上でのプロパティの設定順かな…?

521 名前:デフォルトの名無しさん mailto:sage [04/08/15 01:15]
>>516
「VB.NET単体でVS.NETと同じようなテキストエディタが用意されているのか?」
と言う質問ですか?
それなら答えはYesです


522 名前:デフォルトの名無しさん mailto:sage [04/08/15 01:29]
>>517
俺には>>513の意味はぱっと見て分からなかった。
誤解を招く表現がいくつかあるから、意味を取れなくても無知かどうかは分からんのじゃないの?
逆にやりたいことと>>513の書き込みを見て違和感も感じないなら、その方が無知の可能性あり。


523 名前:513 [04/08/15 10:12]
すみません。難解な文章を書いてしまって・・・もう一度、書いてみますと
UserControl上にButton1を追加します。そして、Button1をデザイン上で設定出来るようにする為にプロパティを追加しました。(UserControlのコードを下記に記載)
そして、ビルドを行いUserControl1.dllを生成し、Windowsアプリケーションの別プロジェクトを立ち上げ、アイテムの追加と削除より、UserControl1.dllを追加します。
Form上にUserControl1を貼り付け、プロパティを見ると、tButtonが出来ています。
そのtButtonプロパティの値を変更(Textに"hoge"をセットする)とデザイン上では、Button1の表示が"hoge"となります。
この状態で、実行してみると、Textに"hoge"とセットしていたはずなのに、"hoge"と表示されず"Button1"と表示されます。
このように、プロパティで設定した値が、実行時には全く反映されません。
どのようにすれば良いのでしょうか?

>>519
Button1をPublicに変更して行って見ましたが、プロパティで設定した値は、デザイン上では
変わっているのですが、実行時には反映されませんでした。

Public Class UserControl1
Inherits System.Windows.Forms.UserControl

#Region " Windows フォーム デザイナで生成されたコード "

<System.ComponentModel.Browsable(True) _
, System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)> _
Public Property tButton() As Button
Get
Return Me.Button1
End Get
Set(ByVal Value As Button)
Me.Button1 = Value
End Set
End Property
End Class

524 名前:516 mailto:sage [04/08/15 12:51]
>>521
ありがとうございます。

525 名前:デフォルトの名無しさん mailto:sage [04/08/15 13:10]
>>523
デザイナで生成されたコード内に、プロパティの変更コードは出てる?




526 名前:デフォルトの名無しさん mailto:sage [04/08/15 15:33]
エクスプローラの詳細表示のような、横に複数項目表示できるリストボックスって
VB.NET標準コントロールには無いの?

527 名前:526 mailto:sage [04/08/15 15:46]
悪い。自己解決した。ListViewだったね

528 名前:デフォルトの名無しさん [04/08/15 22:31]
test

529 名前:デフォルトの名無しさん mailto:sage [04/08/16 09:04]
>513
どっかで見た質問だなぁ。
どこで見たんだろ……まぁいいや。

そんときは
>#Region " Windows フォーム デザイナで生成されたコード "
この中で初期化してた、ってオチだったよ。

530 名前:デフォルトの名無しさん mailto:sage [04/08/16 09:35]
>>513
そもそも、Button1のプロパティを全て公開する必要があるの?

ユーザーコントロールにカプセル化するんだから、
必要なプロパティのみを公開すべきじゃない?

Public Property ButtonText() As String
  Get
    Return Button1.Text
  End Get
  Set(ByVal Value As String)
    Button1.Text = Value
  End Set
End Property

他にも必要なら、
ButtonBackColor とか、
ButtonFont という風に追加すればいいのでは?

531 名前:MSサンプルにバグ? [04/08/16 09:48]
ja.gotdotnet.com/quickstart/howto/doc/Remoting/mainfeatures.aspx
リモート処理の概要 参照によってオブジェクトを渡すのサンプルを実行すると、
セキュリティ制限のため、型 System.Runtime.Remoting.ObjRef にアクセスできません。
というエラーがでます。
クライアント、リモート オブジェクト、およびリモート ホスト アセンブリを異なるディレクトリに置いてサンプル実行しています。
対策ご存知の方、教えてください。

532 名前:自己解決 [04/08/16 18:43]
>>531自己解決。お騒がせ↓
www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconautomaticdeserializationinnetremoting.asp

533 名前:513 [04/08/16 23:08]
>>529
確かに
#Region " Windows フォーム デザイナで生成されたコード "
の中は、デフォルトのままです。具体的には、どのように修正すれば宜しいのでしょうか?

>>530
確かに、通常は必要と思われるプロパティのみ公開するのですが、
ボタンコントロールなどは、予めどれが必要と言われると、ほぼ全部使う可能性があると思われます。
その場合、数十にもなるプロパティを記述していくのは・・・という事と、
勉強も兼ねて、コントロール自体のプロパティを全て公開するにはどうするのだろうと、疑問に思い
質問した次第です。


534 名前:473 mailto:sage [04/08/17 14:52]
483さんの方法でやってみたらうまく行きました。ありがとうございます。

535 名前:デフォルトの名無しさん [04/08/19 17:03]
APIを使いたいんですが
関数の形は
void __stdcall fncSub(struct Info *p);
って形になっていて
Public Declare Sub fncSub Lib "HOGE.DLL" (ByRef p As Info)
という風に宣言して
fncSub(p)
というように呼び出したんですが、
「'System.NullReferenceException' のハンドルされていない例外が test.exe で発生しました。
追加情報 : オブジェクト参照がオブジェクト インスタンスに設定されていません。」

て出るんです。
どのようにすれば正しく呼び出せるのでしょうか。
よろしくお願いします。



536 名前:デフォルトの名無しさん [04/08/19 17:28]
ぬるり

537 名前:デフォルトの名無しさん [04/08/19 17:39]
データアダプタで質問させてください。

まず前作業としてMDBでテーブル2つとビュー1つを作成します。

TABLE1
  ID,FIELD_1,FIELD_2 (キーはID)

TABLE2
  ID,FIELD_A,FIELD_B (キーはID)

VIEW1
  ID,FIELD_1,FIELD_2,FIELD_A,FIELD_B


さて、ここでVB.NETからVIEW1のデータアダプタを作りたいのですが、
構成ウィザードで警告が出てしまい、UPDATEとDELETEについてコマンドが作成されません。
アダプタ自体は作成できるのですが、削除が実行できないのです。
どうしたらいいんでしょうか・・・

TABLE1とTABLE2の2つアダプタを作って、それぞれに削除かけないとだめなのかしら・・・
VIEWで一発ですませたいんですが・・・

538 名前:デフォルトの名無しさん [04/08/19 17:49]
あ、警告はちなみに一意に識別する列を作成できませんでした、とかいうやつです。
キーがあるから一意のはずだし、Accessからは削除できるのに・・・なぜ・・・

539 名前:デフォルトの名無しさん mailto:sage [04/08/19 20:23]
>537-538
DBは何を使ってるんだよ。
DBから主キーを取得できてないって事。

540 名前:デフォルトの名無しさん mailto:sage [04/08/19 22:10]
>>536
ガッ

541 名前:535 mailto:sage [04/08/19 22:37]
535です。
どうやらAPIのほうが悪かったようで
void __stdcall fncSub(struct Info *p); は
extern "C" HOGE_API void __stdcall fncSub(struct Info *p);
という風にするのを忘れていたようです。

それで、後者のほうにDLLを修正したところ、今度は
「'System.ExecutionEngineException' のハンドルされていない例外が
mscorlib.dll で発生しました。」
というエラーが発生しました。
これはどういうエラーなんでしょうか。
ググったりMSDNで調べたりしましたがいまいちわかりません。
分かる人がいましたら解決方法を教えてください。
よろしくお願いします。


542 名前:デフォルトの名無しさん mailto:sage [04/08/19 23:32]
そのAPIって参照設定で読み込めたりしないのかと横着を考える

543 名前:541 mailto:age [04/08/20 00:50]
>>541
参照設定をしようとしたら「有効なDLLじゃない」とエラーが出て
設定できませんでした。

ところで、使っている構造体の形は

struct Info{
char A[10][1024];
char B[10][512];
char C[10][512];
};

って形になっているんですけど、VBでこの構造体を宣言するには

Public Structure Info
Dim A() As String
Dim B() As String
Dim C() As String
End Structure

でいいんでしょうか?教えてください。お願いします。

544 名前:デフォルトの名無しさん mailto:sage [04/08/20 08:15]
>>543
だめ。構造体の宣言で、マーシャリングをきっちり指定する必要あり。
結構面倒だよ。

545 名前:デフォルトの名無しさん mailto:sage [04/08/20 17:04]
.netであるクラスのプロパティを動的に参照するため

wk1 = ClassA.PropA
wk2 = ClassA.PropB



wk1 = ClassA.xxxx("PropA")
wk1 = ClassA.xxxx("PropB")

のような感じにしたいのですが
どのようにコーディングすればよいでしょう???

VB6時代だとProperties("PropA")のようなことができた気が…



546 名前:デフォルトの名無しさん mailto:sage [04/08/20 18:50]
VB よくわかんないけど、例えばクラス ClassA の静的プロパティの場合
val = typeof(ClassA).GetProperty("PropA").GetValue(Nothing, Nothing)

インスタンス a のプロパティの場合
val = GetType(a).GetProperty("PropA").GetValue(a, Nothing)

とかかなあ・・・ Object が帰ってくるから、型変換は必要。
あとプロパティの一覧を得たいなら、System.Type.GetProperties メソッドが使えます。

547 名前:546 mailto:sage [04/08/20 18:50]
>>546
スマソ。typeof は C# か。

548 名前:デフォルトの名無しさん mailto:sage [04/08/21 00:55]
>>546-547
>GetType(a).GetProperty("PropA").GetValue(a, Nothing)

書き込み後なんとかGetType(a).GetProperty("PropA")のプロパティ情報列挙までは自己解決していましたが
GetValue()の配列indexの使用法を間違ってました。

配列要素でないときはNothingなのかー!

激さんくすです!!

549 名前:デフォルトの名無しさん mailto:sage [04/08/21 17:42]
データーグリッドを使って、データーを表示させた際に、グリッド右端をクリックすると
幅が自動で広がりますが、あれをプログラムでやらせることは出来るでしょうか?

550 名前:デフォルトの名無しさん [04/08/21 19:09]
MSDEとVBの組み合わせで、"display_order"をintに設定して

SqlDataAdapter1.SelectCommand.CommandText = "SELECT * FROM pc_data ORDER BY display_order "

とやると数値が大きなものが上にきてソートされます。

SqlDataAdapter1.SelectCommand.CommandText = "SELECT * FROM pc_data ORDER BY display_order DESC"

とやれば、小さい順にソートされるかな・・・とやってみたのですが、うまく動きません。何が間違っているのでしょうか?

551 名前:デフォルトの名無しさん mailto:sage [04/08/21 20:17]
どうでもいいけど昇順と降順間違ってないか?


552 名前:デフォルトの名無しさん mailto:sage [04/08/21 22:05]
いろいろ

553 名前:デフォルトの名無しさん mailto:sage [04/08/21 22:51]
まだVB.NET初めて間もないのですが
以下のようなコードで「オブジェクト参照のインスタンスがありません」
とエラーが出てしまいます。

dim wrk_item() as string

wrk_item(0) = "テキスト"  ←ここでエラーが起こってます
wrk_item(1) = "テスト"

エラーの原因がわかりません。配列の要素数はあらかじめ決めておかないと
だめなのでしょうか・・・

554 名前:デフォルトの名無しさん mailto:sage [04/08/21 23:17]
dim wrk_item() as string = { "","" }



555 名前:デフォルトの名無しさん mailto:sage [04/08/21 23:19]
「配列を参照する事のできる」変数を定義しただけで、
「配列自体を作成」していない。変数の初期もしていない。
よって「配列を参照する事のできる」変数はNothingのままだから以下省略



556 名前:デフォルトの名無しさん mailto:sage [04/08/21 23:20]
>>554
ありがとうございます
やはり配列要素を決めておかないとだめみたいですね

557 名前:デフォルトの名無しさん mailto:sage [04/08/21 23:22]
>>555
なるほど、そういうことでしたか・・・


558 名前:デフォルトの名無しさん mailto:sage [04/08/21 23:33]
>553
ArrayListとかReDimとか使えば?

559 名前:デフォルトの名無しさん mailto:sage [04/08/22 10:21]
ボクのPCはDELLのディメンションですがVB.NETをうごかしてもこわれないでしょうか?

560 名前:デフォルトの名無しさん mailto:sage [04/08/22 10:24]
残念ながらどこのPCでも壊れるときは壊れます。

561 名前:デフォルトの名無しさん mailto:sage [04/08/22 14:15]
まあ、基本的にはArrayListあたり使うのが常套かな。


562 名前:デフォルトの名無しさん [04/08/22 18:56]
>>559
VisualStudio.net入れると壊れる可能性が高いですね。

563 名前:デフォルトの名無しさん [04/08/23 09:19]
>>550
ここは初心者の来る場所じゃありませんYOwwwwwwwwwwwwwwwwwwwwwwwww

564 名前:デフォルトの名無しさん mailto:sage [04/08/23 12:35]
かといって高度な問題には解答が出来なかったりする

565 名前:デフォルトの名無しさん mailto:sage [04/08/23 13:57]
変数のタイプっの取得なんですが・・・

dim val
dim s as String = ""

val = s.GetTypeCode
なら結果 String ですが


dim val
dim s as String

val = s.GetTypeCode

で初期化していないと当然 sは生成されていないので.GetTypeCodeが取れません。

初期化されてない変数タイプ取得ってどう記述しますか?



566 名前:565 mailto:sage [04/08/23 14:02]
あ、ちなみに上記で

GetTypeCode(s)

で Object が返るのですが Dimで定義されている String を返したいのです・・・

567 名前:デフォルトの名無しさん [04/08/23 16:17]
>>550
どう動かないのかというのが良くわからないが、データーグリッドの表示順を変えたいだけなら

データセット名.Clear()
SqlDataAdapter1.SelectCommand.CommandText = "SELECT * FROM pc_data ORDER BY display_order"
SqlDataAdapter1.Fill(データセット名, "car_data")

としてやるだけでいけると桃割れ。

568 名前:デフォルトの名無しさん [04/08/23 16:34]
って"car_data"ってなんだよ"pc_data"ねw。

ところで、ここの上のほうにあるデータグリッドの幅をデーターの長さに自動であわせて表示するっていうの
を、どなたか出来る方いませんか?



569 名前:546 mailto:sage [04/08/23 16:44]
>>565-566
無理。そもそも String が帰る時だって、値の型を取得しているだけで
"変数" のタイプを取っているわけじゃないし。

570 名前:デフォルトの名無しさん mailto:sage [04/08/23 21:02]
>>569
よくわからんが無理ってことはないんじゃないか?
むしろインスタンスからしか型に関する情報を取れないなんてライブラリの方が
不条理な気がする。

www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vblr7/html/vaoprgettype.asp

www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemtypeclassgettypecodetopic.asp
の組み合わせでいけるんじゃないだろうか。

571 名前:546 mailto:sage [04/08/23 23:56]
>>570
 レスされたので答えるけど、その手のメソッドでは無理。
IL にコンパイルされた後はそもそもローカル変数なんて
タイプ情報にも存在しなくなっちゃうんで、
「ローカル変数が何型で宣言されたか」ってな情報を得るには、
ライブラリではなく言語自体によるサポートが必要。

値型 (value types - 単純型や structure) のものなら、
変数宣言と同時にインスタンスが作成されるので大丈夫だけど(と思う)

572 名前:デフォルトの名無しさん mailto:sage [04/08/24 00:37]
>>565
ちなみになんでそんなことがしたいわけ?
>>571も言ってるけど、ライブラリじゃなくて言語仕様で
そういう機能があるかどうかの問題になるね。

573 名前:565-566 mailto:sage [04/08/24 00:55]
>>569

>値の型を取得しているだけで
>"変数" のタイプを取っているわけじゃないし。
私も同様の認識だったのですがデバッグ中に…

Dim s As String

直後のステップをブレーク、イミディエイトにて

?type.GetTypeCode(s) 

と実行した際、

「型 'String' の値を 'System.Type' に変換できません。」
といったメッセージが出たもので…

「あれ?エラーだけどここで'String'と認識するってことは…なにかしらの記述で変数のタイプも取得できるのか???」と…


574 名前:デフォルトの名無しさん mailto:sage [04/08/24 11:51]
Form1で
    Dim f2 As Form2
    f2.show()

のようにしてForm2を表示して、そのForm2からForm1のTextbox1の内容を操作するにはどうしたらいいんですか?
Form1からForm2の操作はできるんですが・・・その逆を行おうとするとエラーがでます。

575 名前:デフォルトの名無しさん mailto:sage [04/08/24 12:31]
またVB6から進化できてない人間が迷い込んだな。。



576 名前:デフォルトの名無しさん [04/08/24 12:39]
だから旧VBスレも合わせて、スレの>>1のテンプレに愚問集作ってそこに

 『別フォームの……』

を入れとくべきだろう。

577 名前:デフォルトの名無しさん [04/08/24 12:39]
ここは初心者の来る場所じゃありませんYOwwwwwwwwwwwwwwwwwwwwwwwww

578 名前:デフォルトの名無しさん mailto:sage [04/08/24 12:50]
そして、煽りも要りませんので・・・

とりあえず過去ログ読みまっしょ

579 名前:デフォルトの名無しさん [04/08/24 13:23]
>>577
すいません
初心者はどこへ行けばよいですか?

580 名前:デフォルトの名無しさん mailto:sage [04/08/24 14:15]
>>579
ここは2ちゃん。「うるせー馬鹿」が返しの挨拶。

581 名前:デフォルトの名無しさん mailto:sage [04/08/24 14:51]
あの〜
いつぞやに、.NETの板が出来たと思っていたのですが、
あれは夢だったのでしょうか?

582 名前:デフォルトの名無しさん mailto:sage [04/08/24 15:55]
>>581
( ゚Д゚)氏ね

583 名前:デフォルトの名無しさん mailto:sage [04/08/24 19:46]
>>581
>>224のことか?

584 名前:デフォルトの名無しさん mailto:sage [04/08/24 21:39]
>>577
初心者の来る掲示板だと思います。ぼくはね。

で、>>574 みたいなのは、ハンドル渡すとか、
Form1 のほうで面倒見てあげるとかして実現は可能だと思う。

いまだによくわからないのだけど、答えはどっちなん?
「コードを工夫して実現する」 or
 「かっこ悪いからやってはいけない」

585 名前:デフォルトの名無しさん mailto:sage [04/08/24 21:51]
>>574
解1. Form2 のプロパティにForm1 のインスタンスをセットしておいてForm2 の方からはそれを介して使う。
解2. アプリケーション実行中にForm1 のインスタンスが高々1個しか無いことが確かなら、Form1 クラスに
     静的プロパティとして Form1 のインスタンスを保持して、Form1.ActiveForm のようにしていろんな所から使う。



586 名前:513 [04/08/24 22:32]
誰か解を求む・・・_| ̄|○

587 名前:デフォルトの名無しさん mailto:sage [04/08/24 22:35]
>>586
問題のソース圧縮してどっかにうpすれば?

588 名前:デフォルトの名無しさん mailto:sage [04/08/24 22:47]
>>585
例外的な場合を除けば、どっちも不正解だと思う。
そんなことをすればデータ隠蔽の効用が全部失われてしまう。

実際にデータを持つオブジェクトからハリボテ君(Form1)に
イベントで通知するのが正解だろう。

589 名前:デフォルトの名無しさん mailto:sage [04/08/24 23:14]
>そんなことをすればデータ隠蔽の効用が全部失われてしまう。
その判断の根拠を教えてくれ。
って>>584の言ってる事の方が普通じゃないと思うが…

590 名前:デフォルトの名無しさん [04/08/24 23:40]
ヴァカ降臨!
www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=14151&forum=3


591 名前:駆け出し mailto:sage [04/08/24 23:49]
ちょっと気持ちの悪いエラーが出ているので質問です。

Button1 と TextBox1を配したForm1のButton1のクリックイベントで

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim parameter As Integer
  Do While ( 処理続行条件 = True )
  Application.DoEvents()
  parameter = CInt(TextBox1.Text)
          ・・・                    'parameter を使った処理
Loop
End Sub

というように、TextBox1からパラメータを入力してループ処理に反映させるコードを書き、
デバッグモードでビルドエラーも出ずに一見正常に動作する所まできました。
ところがDo While ループが回っている最中にForm1の右上の「X」ボタンをクリックして強制終了させると、
parameter = CInt(TextBox1.Text) の行のところで

'System.InvalidCastException' のハンドルされていない例外が microsoft.visualbasic.dll で発生しました。
追加情報 : 文字列 "" から型 'Integer' へのキャストが有効ではありません。

とエラーが出てしまいます。
なにぶんど素人なもので、どうしてエラーが出てるか良く分からないし、分からないと気持ち悪くて使えないし・・・
どなたか、エラーが出ている原因をご教授願えないでしょうか


592 名前:デフォルトの名無しさん mailto:sage [04/08/24 23:59]
TextBox1.Textが""なんじゃないの?

593 名前:駆け出し mailto:sage [04/08/25 00:06]
>>592
TextBox1の中身は(目で見る限り)整数が入っています。
実際、ループ中の強制終了さえしなければ妥当な結果が得られています。

アプリケーションの終了でTextBox1の中身がクリアされてしまう、と言われれば
なんとなくそうかなあとは思うのですが、
素人考えでは、「X」ボタンのクリックが処理されるのは ”Application.DoEvents()”
のところであって、だとするとわざわざその次の行まで処理が進んでエラーが出るのも
おかしいんじゃないかと思ったり、悶々と悩んでいる次第です。



594 名前:デフォルトの名無しさん mailto:sage [04/08/25 00:31]
うーん、細かい内部動作までは知らないんだけどさ…
Application.DoEvents()でフォームが閉じるわな。
閉じ終わったら処理が戻ってくるわな。
Windowの破棄とかが具体的にどのタイミングなのかは知らないけど、
この時点でTextBoxが空になってるというのはありえそうな話だ。
まあ、ObjectDisposedExceptionになりそうな気もするけどそこはそれ。

勘違いしてそうだが、×ボタンクリック=アプリケーションその場で強制終了じゃないぞ。
ちゃんと最後まで処理は続く。

595 名前:デフォルトの名無しさん mailto:sage [04/08/25 00:34]
DoeventsだからこそForm Unloadとその他のプログラムの動作がマルチタスクで動く。
ところでDoevents中に×ボタンを押したときにちゃんと終了するプログラムを書けるかどうか見守ってやる



596 名前:592 mailto:sage [04/08/25 00:37]
書こうと思ったら>>594氏が書いてくれたか
Application.DoEvents()で閉じる処理を拾った後(フォームが破棄されてる)に
parameter = CInt(TextBox1.Text)を実行してるから空っぽ
DoEventsはどの順序でイベントが発生したか追跡が難しいから
あまり使うことはおすすめできない

597 名前:デフォルトの名無しさん mailto:sage [04/08/25 00:38]
>>589
>>584が正しいなんて全く言ってないけど。。

「データ隠蔽の効用が失われる」は正しい言い回しじゃないが、
要するに>>585のようにしたのでは、たとえばフォームならフォーム上のコントロールの
制御の責任者とそのタイミングの明確さが失われるってことだ。

テレビに例えれば、ケーブルで繋がってるのなら映像がどっから流れてきているかは
ケーブルを追っていけば自明だが、「パブリックな」電波だったら映像がどっから来ているか
追跡するのは大変だよ。

よく知ったかクン(俺もその一人だが。。)が「UIとロジックを分離する」
なんて知った風なこといってるでしょ?要するにそれだよ。

598 名前:デフォルトの名無しさん mailto:sage [04/08/25 00:41]
ちゃんとフラグ管理やらEnable False やら工夫すればDoevents使いまくりでとても軽くて快適なアプリができるぞ

599 名前:デフォルトの名無しさん mailto:sage [04/08/25 00:52]
スレッド使えるようになったのにわざわざDoEventsなんていう
面倒で危ない橋を渡る理由が浮かばない。

マルチスレッドがよほど難しいならともかく、
直接UIいじらない単純なバックグラウンド処理なら屁みたいなもんなのに。


600 名前:駆け出し mailto:sage [04/08/25 00:54]
レスくれたみなさん、ありがとうございます。
どうも Application DoEvents() の処理のタイミングについて誤解があったようですね。
ちょっくら関連ドキュメントなぞ当たって勉強してみます。

VBは奥が深いと言うか何と言うか、やればやるほど
過去に書いた見掛けだけ正常に動くコードのインチキさ加減が露になってくる・・・

601 名前:デフォルトの名無しさん mailto:sage [04/08/25 01:02]
まあ、EnabledをFalseにするとかでもはや別スレッドでやるのと
同じくらい流れが明確なのであれば、そんなに危険があるわけではないが、
>>599の言ってるとおり、それがスレッドでやるより特別に簡単てわけじゃない。
単発処理自体が重かったり、常にDoEventsを行う事を考えるくらいなら、
むしろ別スレッドの方が簡単確実だ。

602 名前:デフォルトの名無しさん mailto:sage [04/08/25 07:45]
どんな.NETアプリでもあちこちにDoevents挿入しとかないと他のアプリが重くなっちゃうというのが.NETアプリを使ってるときの体験法則

VB.NETアプリが動作中にタスクバーにある他のアプリをクリックしてアクティブにするときに重さを感じる

603 名前:デフォルトの名無しさん mailto:sage [04/08/25 08:14]
>>602
DoEventsの意味がわかってない予感。。
ついでにプリエンプティブって意味もわかってない予感。。

しかし、これをプログラマの世界もオーディオみたいにプラシーボに
騙される人が出るほどレベルが低下していると見るべきか、それだけ
層があつくなったと見るべきか。

604 名前:デフォルトの名無しさん mailto:sage [04/08/25 09:03]
>586
VB6の時はPropertyBagオブジェクト使ってたが、.NETだと違うみたいだ。
MSDNでPropertyBag調べて見れ。
.NETではどうすればいいかわかる。

605 名前:774.sln [04/08/25 10:14]
質問です。
Windows2000で組んだアプリケーションが、Windows2000では起動するんですが
WindowsMeで起動しないんです。
デバッガで調べたら
「アセンブリファイル Microsoft.VisualBasic.Compatibility が見つかりません」
と出ているんですが、これはどういうことなんでしょうか?

環境は
Windows2000 / Microsoft .net Framework v1.1
WindowsMe / Microsoft .net Framework v1.1

です。よろしくお願いします。



606 名前:774.sln mailto:sage [04/08/25 11:03]
すみません解決しました。
WindowsMeには「Microsoft.VisualBasic.Compatibility」がインストールされないらしく
「参照設定」で「ローカルコピー」をTrueにしたら起動しました。

スレ汚しすみませんでした。

607 名前:デフォルトの名無しさん mailto:sage [04/08/25 13:37]
>>602
( ゚Д゚)ポカーン

608 名前:デフォルトの名無しさん mailto:sage [04/08/25 15:54]
すいません。わたしマイクロソフトの社員ですが実は602の言うとおりです・・・

609 名前:デフォルトの名無しさん mailto:sage [04/08/25 17:23]
プロパティウインドウでGUI入力できるプロパティはどのように作成したらよいのでしょう?
たとえばBackColorのプロパティ等のような
プロパティ値の▼押下でプロパティ設定用の画面から入力できるようなものを作成したいのですが・・・

610 名前:デフォルトの名無しさん [04/08/25 17:50]
VB.NETでCORBAって使えますか?

611 名前:デフォルトの名無しさん [04/08/25 17:50]
とりあえず練習用にVisualBasic.netを買ってみたんですが、DB400に接続しようとしてODBC接続
接続しようとすると、このバージョンのVSでは無理だよヴォケ!ってウィザードの最中にいわれてしま
います。

普通のVisualStudio.netなら大丈夫なのでしょうか?それとも、エンタープライズ版を買わないとダメな
のでしょうか?



612 名前:デフォルトの名無しさん mailto:sage [04/08/25 18:05]
>>608
そこらにDoeventsを入れないといけないプログラム記述は
マイクロソフトで推奨されてるのですか?

613 名前:デフォルトの名無しさん mailto:sage [04/08/25 18:10]
.NETの実行速度を上げるために
1行のステートメントが終ったらすぐに次の行のステートメントを実行する仕様になってます。
そのためたとえループでなくてもマルチタスクさせたい場合(たとえネットするぐらいでも)は制御のあそび(すきま)を作ってほしいです。
Doeventsを使ってないプログラムのマルチスレッドは余計負荷になります。
公では言ってませんが感のいい方は気づいていたみたいです。

614 名前:デフォルトの名無しさん mailto:sage [04/08/25 18:19]
>>612
 このスレで書かれてる Doevents 推奨はほぼデタラメですが、
RPC や Out of Process COM オブジェクトの呼び出し (一部のSHホゲホゲ系 API も含む) などで
内部的に「隠れたウィンドウ」が生成されるようなスレッドは、非UIスレッドだからといって長時間ブロック
して処理を行うと DDE ブロードキャストを阻害し、シェル( Explorer) の動作を重くします。

615 名前:デフォルトの名無しさん mailto:sage [04/08/25 18:21]
推奨とは言いたいが言えない企業の悩み



616 名前:デフォルトの名無しさん mailto:sage [04/08/25 18:23]
>>614
追加。例えば Win32 の Sleep API の注意
www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpdllpro/html/_win32_sleep.asp
なんかは、.Net でスレッドを作成する場合にも同じく適用されます。
(.Net の場合には AppDomain 間をまたがるメソッドの呼び出しでも隠しウィンドウが生成されると思います)

617 名前:デフォルトの名無しさん mailto:sage [04/08/25 18:29]
実行速度が早いとみせかけるためにはしょうがないのだよ

618 名前:デフォルトの名無しさん [04/08/25 20:34]
誰か611に答えてやれよワラ

619 名前:デフォルトの名無しさん mailto:sage [04/08/25 21:36]
だってわかんないんだもん

620 名前:591 mailto:sage [04/08/26 00:26]
どうも、>>591です。
今日は同僚の目を盗んでVSのヘルプやらWeb上の文書をあさってみましたが、結局DoEvents()関連についてはうやむやのまま
せっかく.NETに移行したことだし(2ヶ月前までExcelのVBAマクロしか書いたことなかった)
スレッドとやらを使ってみようかとトライしてみました。

で、試行錯誤した末、以下のような感じのコードになりました。

Imports System
Imports System.Threading

Public Class Form1
      
      ・・・

Private Sub DoLoopThread()
'元Button1のクリックイベントにあった処理から、Application.DoEvents()を取っ払ったもの
End Sub

Private MyThread As New Thread(AddressOf DoLoopThread)

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MyThread.start()
End Sub

Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
MyThread.Abort()
End Sub

End Class

これで何とか”ループ処理中に「X」をクリックするとエラーが出る”問題は回避できるようになりました。

621 名前:591 mailto:sage [04/08/26 00:38]
しかし、>>620のコードでもまた新たな問題が発生してしまいました。
一度ループの処理が終わった後、再度Button1をクリックすると

"スレッドが実行中か、または終了しています。再起動できません。"

とエラーが出てしまいます。
このツールでは、Button1で始まる処理を、何回でも呼べるようにしたかったのでいろいろいじくって
結局、Button1のクリックイベントの中身を以下のように書き換えて、何とか目論見どおりの
動作をさせることができるようになりました。

Select Case MyThread.ThreadState
Case ThreadState.Unstarted
MyThread.Start()
Case ThreadState.Running
MsgBox("処理実行中です。やり直す時は一度終了してください")
Case ThreadState.Stopped
MyThread.Abort()
Dim t As New Thread(AddressOf DoLoopThread)
MyThread = t
MyThread.Start()
End Select

これにて一件落着!と行きたい所ですが、どうもこのコードは直感的に美しくないような気がします。
一般的にスレッドの再利用(に近い機能)を実現するときのリーズナブルな方法とはどんなものなんでしょうか?

622 名前:デフォルトの名無しさん mailto:sage [04/08/26 00:55]
ボクにはネタにしかみえません。


623 名前:デフォルトの名無しさん mailto:sage [04/08/26 00:58]
タイマーで10ms

624 名前:デフォルトの名無しさん [04/08/26 01:52]
厨な質問で申し訳ないが、VB6のProjectをVB.netで読み込んで、
加筆修正してVB6のデータとして保存できるんでしょうか?

要はVB.netでVB6形式の保存ができるのかどうなのかを知りたいのです。

625 名前:デフォルトの名無しさん mailto:sage [04/08/26 01:55]
どうあがいてもむり。



626 名前:デフォルトの名無しさん mailto:sage [04/08/26 09:55]
>>624
ばっっっかじゃねーの

627 名前:デフォルトの名無しさん [04/08/26 10:08]
申しわけありませんが、質問させてください。

VB.NETで、配列を使わずに最終レコードから逆読みしていくにはどのようにすればいいのでしょうか。

1〜100までのデータがあり、100、99、98…とグリッドに表示したいのです。



628 名前:デフォルトの名無しさん [04/08/26 10:40]
うるせーバカ

629 名前:デフォルトの名無しさん mailto:age [04/08/26 11:28]
>>628
クズハ、ハヤクシネヨ
ソノホウガヨノタメ

630 名前:デフォルトの名無しさん mailto:sage [04/08/26 11:39]
フォームのデザイン時にロジックからコントロールを生成するようなことは可能でしょうか?
実効時、動的コントロール生成のやりかたはわかるのですが

AccessフォームのTextBoxのようにフォームデザイナにTextBoxを配置した時点で連動するCaption(Label)コントロールも同時に生成し
以降、デザイナ上でレイアウト操作を連動させる・・・
といったようなことをやりたいのですが
デザイン時にParentのInitializeComponent()へコントロール追記できるようなクラスやメソッドがあるのでしょうか?
ざっとググってみても関連する情報が見当たらないもので・・・

631 名前:デフォルトの名無しさん [04/08/26 12:02]
うるせーバカ

632 名前:デフォルトの名無しさん mailto:sage [04/08/26 13:24]
.NETになってからは変数名にいちいち
i.NETとかmyString.NETとか書かなければならなくなってめんどうになったから
VB6.0に戻ろうかな

633 名前:デフォルトの名無しさん mailto:age [04/08/26 13:29]
>>628>>631
クズハ、ハヤクシネヨ
ソノホウガヨノタメ
ダイタイ、オマエガイテモダレモカンシャシナイ



634 名前:デフォルトの名無しさん [04/08/26 13:53]
>>632
うちの.netは付けなくても動くよ

635 名前:デフォルトの名無しさん mailto:sage [04/08/26 14:04]
>>634
社内(or参加プロジェクト内)での命名規約の話だろ。

>>632
VB6もリリースが終わったから、否応無しにVB.netを使わなきゃならん。。



636 名前:デフォルトの名無しさん mailto:sage [04/08/26 14:09]
>>635
難儀な会社だな・・・
うちじゃコンパイラがエラー出す

637 名前:デフォルトの名無しさん [04/08/26 14:17]
>>629>>633
テメーコソヤクタタズダローガ
クズハ、ハヤクシネヨ
ソノホウガヨッポドヨノタメw

638 名前:デフォルトの名無しさん [04/08/26 14:40]
>>637
ノロイヲカケタヨ
エキノホームカラテンラクシシナイヨウニナ
ケケケケ...

639 名前:デフォルトの名無しさん [04/08/26 14:52]
>>638
アイニクデンシャニハノラネエンダワ
ゴクロウサマ
プププ...

640 名前:デフォルトの名無しさん mailto:sage [04/08/26 15:25]
>>611
安いやつ買ったね? ウィザードを使わずコードで書けばOKだよ

>>627
そのデータはどこに格納してあるの?

>>630
DTE からオブジェクトをとって、ごにょごにょやるしかないんじゃないかな。
つまり、コントロールの機能としては無理かと。


641 名前:627 [04/08/26 16:12]
640様

返答いただきありがとうございます。

SQLサーバ7.0内のRDBとなります。接続はODBC接続しています。



642 名前:デフォルトの名無しさん mailto:sage [04/08/26 16:50]
>>641
データセットに入れてあるのなら、ループで逆に読めば OK。

レコードセットに入れてあるのなら、MoveLast して、MovePrevious しながら
とっていけば OK。

643 名前:627 [04/08/26 17:38]
642様

ありがとうございます。

早速、試してみたいと思います。

本当に感謝致します。

644 名前:デフォルトの名無しさん mailto:sage [04/08/26 19:01]
掲示板を自動巡回するソフトを作りたいのですが、
どういった知識が必要なのでしょうか。
いくつかの掲示板を自動巡回できるようにし、
また各掲示板用の書き込みを巡回前に用意しておけば
巡回中に、自動で投稿されるようにしたいです。

掲示板によっては投稿に必要な手順が異なったりするのも
ソフトの方で登録できるようにしたいです。

どなたか、よきアドバイス・実現方法等ご教授下さらないでしょうか。


645 名前:デフォルトの名無しさん [04/08/26 19:08]
>>644
まずは、IEコンポーネントとかを使わずにブラウザを作るところからスタートだな。
TCP/IPとHTTPとHTMLぐらい。



646 名前:デフォルトの名無しさん mailto:sage [04/08/26 21:00]
コントロールA(アンカー左)とコントロールB(アンカー右)を配置した後、
フォームをリサイズしたら、BがAの下に潜り込んでしまいました。逆に
AがBの下に潜り込むようにしたいんですが、どうすればいいんでしょうか。
各コントロールの重なり方を指定するやり方を教えてください!m(_ _)m


647 名前:デフォルトの名無しさん mailto:sage [04/08/26 21:14]
>>646
まずはデザインモードでコントロールを右クリック。
話はそれから。
というか、普通それで解決法がわかると思う。

648 名前:デフォルトの名無しさん mailto:sage [04/08/26 22:32]
>>644
ついこないだそんなもん作ったなぁ・・・お前は俺か?(ぉ
www.gotdotnet.com/japan/student/column/firststep/
ここのダウンローダーあたりを見ればwebから取得する方法は分かるだろ。
これで巡回はいいとして・・・

あとはその掲示板への投稿方法を見なければならないからなぁ
HTMLフォームの知識も必要になるだろう。
(簡単なHTTPの知識もあったほうがいいと思われ。RFCでも見るんだ)

巡回先が2chじゃないだろうな?一応
www.monazilla.org/document/index.html

自動投稿スクリプトでAA連投プログラムとか作っちゃダメだぞ

649 名前:デフォルトの名無しさん mailto:sage [04/08/27 09:43]
Windows Script HostのMapNetworkDrive メソッド、RemoveNetworkDrive メソッド
と同じような事をwsh使用せずにVB.NETだけでしたいのですが
System.IO,System.netクラスにはなさそうだったのですができないのかな?
ネットワークドライブの割り当てせずにUNC形式でパスかかってるファイル、フォルダに
アクセスできればいいのですがどなたかご存知ないでしょうか?


650 名前:デフォルトの名無しさん mailto:sage [04/08/27 10:40]
プログラムを常駐させといて、ユーザーのクリックに反応してある関数を動かす
そんなプログラムを作りたいのですが、.NET Frameworkで実現できますか?

651 名前:646 mailto:sage [04/08/27 19:09]
>>647
レス遅れてしまってすいません! ありがとうございました!
とても簡単に解決できたんですね・・・申し訳ないです。助かりました。
多謝です m(_ _)m

652 名前:デフォルトの名無しさん [04/08/27 22:25]
SQLからNullを含んだ列をDataSetに読み込んできたんですが、その列が
Nullであるかどうかを判別するのってどのようにすればいいんでしょうか?
SqlDataAdapter1.Fill(DataSet11.TestTable)
For Each dr As DataSet1.TestTableRow In DataSet11.TestTable
If Not dr.X Is Nothing Then
....
Else If
Next

という感じで書いてみたんですがだめでした
XMLスキーマエディタでNullValueを設定しようとしたら
このコンテキストでは無効です
というエラーが出てしまい、保存できません
どなたがご教授お願いします


653 名前:デフォルトの名無しさん mailto:sage [04/08/27 23:43]
>>652
IsDBNull関数でできると思うけど?


654 名前:デフォルトの名無しさん mailto:sage [04/08/28 09:52]
>>653
出来ません。

655 名前:デフォルトの名無しさん mailto:sage [04/08/28 10:09]
自作プロパティ、メソッドに説明文をつけたいのですが方法がわかりません。
プロパティウインドウの下の部分や、入力候補に表示させるにはどうしたらいいのでしょうか?



656 名前:652 mailto:sage [04/08/28 12:28]
>>653 >654の言うとおりで出来ませんでした。
datasetの項目はpropertyみたいなのでgetメソッドの中で
例外が発生しているみたいです。


657 名前:デフォルトの名無しさん [04/08/28 12:40]
ちょっと質問です。

VB6.0では、スクリプトコントロール
(www.microsoft.com/japan/msdn/scripting/default.asp)
があって、VBアプリからVBスクリプトを簡単に利用できましたが
VB.NETで同じようなことはできるでしょうか?



658 名前:デフォルトの名無しさん [04/08/28 13:22]
DataSet11ってオリジナルのクラス?

659 名前:652 mailto:sage [04/08/28 13:36]
>>658
そうです。データアダプタでデータセットの生成をやったときに
新しいデータセットを作るときのデフォルトの名前がDataSet1
で、それをフォームに追加したときに出来るのがDataSet11です。


660 名前:デフォルトの名無しさん mailto:sage [04/08/28 14:10]
その方法でDataSetを使ったことがないんだけど

XMLスキーマ経由で返されるNULLってゼロストリング""じゃなかったっけ?
CrystalReportsのXMLデータセットで使ったときはNULL=""で対処してた



661 名前:652 mailto:sage [04/08/28 15:16]
>>660
XMLスキーマエディタでNullValueをemptyに設定するとゼロストリング""
になるらしいんですけど、その設定が出来ませんでした。(保存するとき
にエラー「このコンテキストでは無効です」が出る)
>NULL=""で対処してた
それで対処できるのはわかるんですけど、たとえばSQLdatareaderとかを
使う場合とかならISDBNUllとかで対処できるからdatasetでもできるんじゃ
ないかと思ったんです

662 名前:デフォルトの名無しさん mailto:sage [04/08/28 15:54]
試しに
ID Int
STR CHAR
DT DATETIME
っていうSQL結果(テーブル)からDataSet1.xsd
作ってみたんだけど

STRのNullValueプロパティを(Empty)にしたら問題なくコンパイルが通った

DT(DateTime)のNullValueプロパティを(Empty)にしたら
「カスタム ツール エラー : コードを生成できませんでした。システム エラーです。」
と言うのが発生したけど、これはまた別物かな

一度XMLスキーマに通してるみたいだけど
直接Data.DataSetにFillすることは出来ないのかね?
Data.DataTable内のDataColumnならNull値(Nothing)が取れるんだけど

何かあんまり力になれそうにないです
スマソ


663 名前:デフォルトの名無しさん mailto:sage [04/08/28 16:09]
datasetじゃなくてdatatableじゃダメなん?


664 名前:652 mailto:sage [04/08/28 16:19]

>STRのNullValueプロパティを(Empty)にしたら問題なくコンパイルが通った
>DT(DateTime)のNullValueプロパティを(Empty)にしたら
>「カスタム ツール エラー : コードを生成できませんでした。システム エラーです。」
>と言うのが発生したけど、これはまた別物かな
同じエラーです。こっちではそれでコンパイルが通らなくなっちゃうんですよね。
何がちがうんですかね?

>一度XMLスキーマに通してるみたいだけど
>直接Data.DataSetにFillすることは出来ないのかね?
えーっと私の理解ではdatasetを生成すると自動でXMLスキーマが生成されて
さらに編集したい場合にはエディタを使うってことだと思ってたんですが
違いますか?

>Data.DataTable内のDataColumnならNull値(Nothing)が取れるんだけど
DataTableは使ったことがないんで試してみます。

>何かあんまり力になれそうにないです
>スマソ
いえいえありがとうございました。参考になりました。

>>663
とりあえずやってみます


665 名前:デフォルトの名無しさん mailto:sage [04/08/28 16:35]
>>664
XMLのDataSetとSystem.Data.DataSetは名前は同じなんですけど中身が別物です

Dim dt As New Data.DataTable '新しいDataTable作成
SqlDataAdapter1.Fill(dt)      'でDataTable内にデータを取得できるので

For Each dr As Data.DataRow In dt.Rows

dr.Item(カラム名か番号) '<-これでレコードごとのカラムにアクセスできます

Next

な感じでデータを取得できます



666 名前:652 mailto:sage [04/08/28 18:08]
>>665
>dr.Item(カラム名か番号) '<-これでレコードごとのカラムにアクセスできます
ここでItem(カラム名か番号)がNULLだと例外が出てしまうんです。
If dr.Item(カラム名か番号) Is Nothing then ...
If ISDBNull(dr.Item(カラム名か番号)) then ...
などとやってもうまくいかないんですよ(TT)



667 名前:デフォルトの名無しさん mailto:sage [04/08/28 20:26]
If IsDBNull(dr.Item(カラム名か番号)) then てやらんと。
DataRowに入ってるSystem.DBNull.Value とNothingは別物だぞ

668 名前:667 mailto:sage [04/08/28 20:32]
If dr.Item(カラム名か番号) Is DBNull.Value then ... でもok


669 名前:665 mailto:sage [04/08/28 20:57]
失礼
NothingじゃなくてDBNullでした

670 名前:デフォルトの名無しさん mailto:sage [04/08/28 21:58]
dr.Item(カラム名か番号) で例外が出るんだったらそれでは無理と思うが…


671 名前:デフォルトの名無しさん mailto:sage [04/08/28 22:00]
って勘違いしてたかな?スマン

672 名前:デフォルトの名無しさん mailto:sage [04/08/28 23:26]
ON_WM_KEYUP( )メッセージハンドラで他のアプリのキーUPメッセージって拾えますか?


673 名前:デフォルトの名無しさん [04/08/29 05:29]
SqlDataAdapter1.Fill(DataSet1,"DataTable")で作成したDataTableの中身を
Excelファイル(.xls)に吐き出して、Excel起動→WorkSheet表示→印刷
→Excel終了をVBのプログラムから実行したいのですが方法が分かりません。
どなたかご教示頂きたく宜しくお願いいたします。
ちなみに、VBは2003、Excelは2002、DBはMSDE-RelAです。

674 名前:デフォルトの名無しさん mailto:sage [04/08/29 08:17]
>>673
www.atmarkit.co.jp/fdotnet/index/bbs/dir91.html
ヒントが見つかるんでないかな

675 名前:523 [04/08/29 12:35]
>>655
入力候補ってのはどんな奴を指してるかイマイチ解りませんが、
Modifiersプロパティみたいな奴だったら
Public Enum testEnum
t0 = 0
t1
End Enum
<System.ComponentModel.Description("説明です")> _
Public Property test() As testEnum
で、OKと思われる

追伸
誰か、523の回答もお願いします



676 名前:デフォルトの名無しさん mailto:sage [04/08/29 20:09]
>>675
>>523のやつまだやってたのかよ。

ってか>>518で書いてるようにプロパティをReadOnlyにしたらいけたぞ?
ReadOnlyじゃないと、DesignerSerializationVisibility.Contentの指定が生きてない感じ。
というより、コントロールのオブジェクト自体入れ替えられるんだから指定が意味なしってことかな・


677 名前:523 [04/08/29 21:20]
>>676
すみません。完全に見落としてました・・・_| ̄|○
ReadOnlyにしたら出来ました。

678 名前:デフォルトの名無しさん mailto:sage [04/08/30 09:15]
VisualStudio.NET2003と.NET Framework1.1の組み合わせで
使用しています。

TreeviewやListviewを使った標準的な3ペインのアプリケーションを
作っているんですが、起動時に、Treeviewに水平スクロールバーが
表示されます。必要もないのに、です(つまりノードはすべて表示し
切れています)。Treeviewの大きさを変えたりすると、消えてしまいます。
これはバグでしょうか? scrollableプロパティをfalseにすれば表示され
ないんですが、これだと、ノードが表示しきれなくなったときにバーが
出なくなってしまいます。この水平スクロールバーの表示をなくすには
どうしたらよいでしょうか。よろしくお願いします。

679 名前:655 mailto:sage [04/08/30 09:36]
>>675
レス感謝です。
プロパティは確かに実現できました。

>入力候補ってのはどんな奴を指してるかイマイチ解りませんが、
ソースを入力している時にピリオドを打つと出てくる奴のことです。
たとえばShowメソッドだと、
Me.
と打った時に入力候補が出て、Showの説明には、
コントロールをユーザーに対して表示します。
と表示されます。この説明を設定したんです。

680 名前:デフォルトの名無しさん mailto:sage [04/08/30 10:10]
>>679
XML ドキュメント

681 名前:デフォルトの名無しさん mailto:sage [04/08/31 02:28]
>>680
もっとわかりやすく伝わるように努力してくれませんか?

682 名前:デフォルトの名無しさん mailto:sage [04/08/31 02:46]
681 名前: デフォルトの名無しさん [sage] 投稿日: 04/08/31 02:28
>>680
もっとわかりやすく伝わるように努力してくれませんか?


他人に努力を求めるってのもすごいな

683 名前:デフォルトの名無しさん mailto:sage [04/08/31 03:47]
>>681
ぎゃはははは、じゃとっととあきらめろ。
やならドキュメントコメントについて調べろ。

684 名前:デフォルトの名無しさん [04/08/31 09:56]
ここは中途半端な知識の香具師が、エラを張るイソターネッツでつね。

685 名前:デフォルトの名無しさん mailto:sage [04/08/31 12:41]
インターネッツ?
2ちゃんねるだよ ボケ!



686 名前:デフォルトの名無しさん mailto:sage [04/08/31 18:08]
>>683
そんな一言じゃアドバイスになりません。
煽るつもりならレスしないでください。

687 名前:デフォルトの名無しさん [04/08/31 18:54]
夏の終わりに変なのが出てきたな・・・
課題が終わらない大学生か?




688 名前:デフォルトの名無しさん [04/08/31 19:15]
idCode1で絞込みをして、外装コンボボックスに値を出力、次にidCode1とidCode2で
絞込みをして内装コンボボックスに値を出力しようと思っています。

下のように書いて、外装コンボボックスに"excol_name"値は出力できました。次に
この"excol_data"テーブルに存在している"excol_id"の値を"idCode2"に代入したい
のですが、コンボボックスの"excol_name"をフォームから選んだ時に、その行にある
"excol_id"を"idCode2"として得る方法を教えてください。

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

Dim cmd As SqlClient.SqlCommand = SqlConnection1.CreateCommand()
Dim dr As SqlClient.SqlDataReader
Dim idExcol1 As Integer
cmd.Connection = SqlConnection1
SqlConnection1.Open()

'外装コンボボックスの設定

cmd.CommandText = "SELECT * FROM excol_data WHERE car_id =" & idCode1 & ""
dr = cmd.ExecuteReader()
Do While dr.Read = True
cmbExcol.Items.Add(dr("excol_name"))
Loop
dr.Close()

End Sub

689 名前:デフォルトの名無しさん mailto:sage [04/08/31 23:24]
外装とか内装って何よ

好意的に解釈すると
ComboBoxが2個ある
一方に値を設定すると、他方にそれに該当する候補値を入れたいって事か

だったらSelectedIndexChangedかSelectedValueChangedでその変化をひらって
みるとか

できたらもう少し状況がわかるように書いてくれよ
つうか人間にうまく伝えられなかったら、コンピュータにもうまく伝えられないんじゃねぇ

690 名前:688 [04/09/01 00:56]
えーとですね、車の見積を作ってるんです。

んで、外装の色のコンボボックスは、車種でもって、ふるいに掛けられて
内装の色のコンボボックスは、車種と外装の色でもって、ふるいに掛けた
いんです。

で、外装の色コンボボックスは、excol_dataのテーブルに含まれてる車種
のidであるcar_idでふるいに掛けることに成功したんですが、内装の色の
コンボボックスの値を決めようとすると、車種をあらわすidCode1=car_idと、
外装の色を表す、idCode2=excol_idが必要になるんです。

で、外装の色のコンボボックスで、色を選択したときに、このテーブルに含
まれているexcol_idを取得したい・・・というわけなんです。

判りにくくてすいません。

691 名前:デフォルトの名無しさん mailto:sage [04/09/01 01:46]
車のデータベースか・・・
以前どこかで見かけたような・・・
いや、デジャヴだろうな・・・

692 名前:デフォルトの名無しさん mailto:sage [04/09/01 05:32]
>>691
意味ないレスしてんじゃねーよ
おまえはチラシの裏にでもレスしてろ

693 名前:デフォルトの名無しさん [04/09/01 07:53]
オマエモナー

694 名前:デフォルトの名無しさん [04/09/01 07:54]
ここは、役に立たないイソターネッツですね。

695 名前:689 mailto:sage [04/09/01 11:02]
>>688 >>690
Accessとかでやった方がすこぶる簡単だと思われ




696 名前:デフォルトの名無しさん [04/09/01 20:53]
ACCESS以下だと言う事が露呈しました。

697 名前:デフォルトの名無しさん mailto:sage [04/09/02 01:32]
Accessって何?

698 名前:デフォルトの名無しさん mailto:sage [04/09/02 02:40]
TreeViewコントロールのツリー構造をどこかに保存しておき、
アプリケーションを起動したときに、そのツリー構造を正確に
再現するようにしたいんですが、どうしたらいいのか見当つかず
困っています・・・。このツリー構造は、ユーザーがノードを
追加・削除できるもので、プログラマ側が、具体的にどのような
ツリー構造となるかは予想できません。TreeViewコントロールは
いろんなアプリに利用されていて、保存・再現はほとんど必須の
テクニックだと思うのですが・・・。どのように処理するとよいんで
しょうか。

699 名前:デフォルトの名無しさん mailto:sage [04/09/02 10:34]
>>698
検索しろ。過去ログ嫁。

700 名前:デフォルトの名無しさん mailto:sage [04/09/02 17:40]
Webサービスで
<WebMethod()> _
Public Function FX(ByVal X As Integer, ByVal Y As Integer, ByVal Z As Integer) As Integer
Z = X + Y
End Function
というサービスを起動し

クライアントアプリケーション(VB.NET)でZの値を取得しようとしたのですが
値が返ってきません

Webサービスでは引数に戻り地を渡すことは出来ないのでしょうか?

701 名前:デフォルトの名無しさん mailto:sage [04/09/02 19:46]
ByVal Z As Integer じゃなくて
ByRef Z As Integer じゃないのかな

702 名前:デフォルトの名無しさん mailto:sage [04/09/02 21:46]
>>697
Office製品の一部?

703 名前:デフォルトの名無しさん mailto:sage [04/09/02 22:13]
>>700
何がしたい

704 名前:デフォルトの名無しさん mailto:sage [04/09/02 22:23]
>>698
キーワード: シリアライズ

705 名前:デフォルトの名無しさん mailto:sage [04/09/02 22:39]
シリアライズする元ですら作れないと思われ。
っていうか、TreeViewの情報って何を保存しときたいの?
ツリーの構造と状態?名前?その他のデータ?
その情報は誰が(何が)操作、作成するわけ?



706 名前:デフォルトの名無しさん [04/09/02 22:46]
役に立たないから落とせよ、このスレ。
プ

707 名前:デフォルトの名無しさん mailto:sage [04/09/02 22:48]
(σ´∀`)σ)・ω・) >>706

708 名前:デフォルトの名無しさん mailto:sage [04/09/02 23:38]
みんな基本コントロールを継承して軽くカスタマイズして使ってるだろけど、
ネットで公開してるのは少ないな。
TreeViewの構造を読み書きできる継承クラスぐらい落ちてそうなもんなのに。

709 名前:700 mailto:sage [04/09/03 00:25]
おそくなりました

>>701
ByRefにしてみてもダメでした

>>703
サーバ上のとあるユーティリティ(COMコンポーネントで実装)を実行して
検索結果を返すというサービスです
複数の結果を同時に返す必要があるので
引数で返す方法をとりたかったのですが

710 名前:デフォルトの名無しさん mailto:sage [04/09/03 08:54]
>700
Returnしなくていいのか?

711 名前:デフォルトの名無しさん mailto:sage [04/09/03 08:56]
>700
709読んでなかった、710は見逃してくれ。

構造体で返したらだめ?

712 名前:デフォルトの名無しさん [04/09/03 11:18]
めちゃめちゃ基本的な質問ですが。
ポップアップして処理状況を表示したりするときって、どういう処理してます?
MessageBoxと違って、自動で閉じたりしたい場合。

CreateObject("WScript.Shell").Popupだと秒数指定で閉じられるけど、
これだと外部からクローズできるのかな?
でもこんなので遅延バインディングするのもなんか嫌なかんじ。

わざわざ個別にフォーム作るのもめんどくさいんで、
Timeoutプロパティとか表示メッセージのプロパティとかを
くっつけたクラスをさくっと作ろうかと思ったけど、
普通みんなどうしてるんでしょう。


713 名前:デフォルトの名無しさん mailto:sage [04/09/03 12:36]
時間が来たら自律的に死ぬクラスがそんなに悩むようなこととも思えないが。。

714 名前:デフォルトの名無しさん mailto:sage [04/09/03 14:05]
作るのに悩んでるんじゃなくて、
定石を知りたいんじゃないのかな?
自律死はともかく、ポップアップ窓はなんか標準であってもよさそうだし。

715 名前:デフォルトの名無しさん mailto:sage [04/09/03 14:34]
(´-`).。oO( 自演Z



716 名前:700 mailto:sage [04/09/03 15:26]
>>711
本来はクライアントアプリケーションで使うOCXを
Webサービスで使おうとしているので

    r = FX.HOGE(X,Y,Z) <= Zに計算結果、rは成功か失敗か

このようなOCXの場合

    r = FXweb.HOGE(X,Y,Z) <=Web経由で同じ作業をさせたい

のように FXオブジェクト をWeb参照にするだけで、現状のソースを書き換えたかったのです
もともと「IIS(ASP)でも使えます」というOCXだったので
上記のような使い方が出来るものかと思いまして・・・

ただWebサービスの内部はXMLのPOSTのようなので、引数はInputのみなのかもしれません
別の方法が無いか試して見ます



717 名前:デフォルトの名無しさん [04/09/03 17:04]
vb.netで「ペイント」のようなソフトを作りたいんですけど、
良いサンプルありませんか?

718 名前:デフォルトの名無しさん mailto:sage [04/09/03 18:46]
無い

719 名前:デフォルトの名無しさん [04/09/03 19:08]
Dim X As string = (SqlDataAdapter1.SelectCommand.CommandText
= "SELECT name FROM member WHERE member_id = 25")

ってやったら、Xにid25番の人のnameじゃなくて、TrueかFalseが帰ってきちゃうんで
すが、nameを返すにはどうしたらよいでしょうか?

720 名前:デフォルトの名無しさん mailto:sage [04/09/03 19:49]
>>719
Dataset の使い方を一から勉強しなおす。

721 名前:デフォルトの名無しさん mailto:sage [04/09/03 20:02]
DBやったこと無いけど>>719は絶対に真偽値を返す事だけはわかる。

722 名前:まんこ ◆yCMANKO3dM [04/09/03 20:11]
質問内容からして素人なんだから、だれか説明してやれよwwww。

723 名前:デフォルトの名無しさん [04/09/03 21:01]
ばか、ここは生まれながらにして、VBが使える神の集うスレナンダよ!

だから、どんな質問でも完璧に答えられる。

自分で調べろ!

な?完璧だろ?

724 名前:デフォルトの名無しさん mailto:sage [04/09/03 22:37]
タスクトレイに表示したアイコンから
www.geocities.jp/mootdata/unno.jpg
みたいにメッセージを表示したいのですが
どう殺ったらよいのでしょうか?

725 名前:デフォルトの名無しさん mailto:sage [04/09/04 00:24]
>>713
簡単なようだが、まともに動作する、かつ問題のない
こういうクラスを作るのは、それ程簡単でもないぞ。




726 名前:デフォルトの名無しさん [04/09/04 00:54]
>>724
VBの神が答えてやろう。

自分で調べろ。

727 名前:デフォルトの名無しさん [04/09/04 01:11]
>>724
一番簡単なのは新しいハードウエアを抜き差しすることだな

728 名前:デフォルトの名無しさん mailto:sage [04/09/04 01:12]
Objectのキャストについてどなたかご存じでしたら教えてください。

・フォームに複数のコントロールがある
・各コントロールのTagプロパティに、文字列
 またはオブジェクトがセットされている

この状態で、フォーム内の全コントロールを参照して
Tagプロパティに文字列"hogehoge"がセットされているもの
だけに処理を施したいと思い、Tagプロパティをcstrでキャストして
"hogehoge"と比較したいのですが
オブジェクトが入っている場合、エラーになってしまいます。

こういう場合、cstrでキャストできるかどうかの判断をする方法
というのはあるのでしょうか?
それとも、TryCatchで例外を拾うしかないのでしょうか?


729 名前:デフォルトの名無しさん mailto:sage [04/09/04 01:19]
If TypeOf hoge.Tag Is String AndAlso CStr(hoge.Tag) = "hogehoge" Then
 ほにゃらら

730 名前:デフォルトの名無しさん [04/09/04 08:01]
↑ちがうだろ。

正解は、自分で調べろ。だろw

731 名前:デフォルトの名無しさん mailto:sage [04/09/04 08:36]
なにこの良スレ

732 名前:デフォルトの名無しさん [04/09/04 09:03]
初心者に”自分で調べろ”と言って、日ごろの憂さを晴らすデジタル・ドカタ
のスッドレはココですか?

733 名前:デフォルトの名無しさん mailto:sage [04/09/04 10:14]
初心者じゃなくて、何か(例えば「初心者」)を口実っていうか免罪符にして
他人を利用しようとするズウズウしい横着者を叩いて日ごろのウサを晴らす
デジドカのスレがここですが文句ありますか。

ついでに自分のあつかましさを批判されると逆切れする>>732みたいな
あつかましい奴ももれなく叩いておりますが。

734 名前:デフォルトの名無しさん [04/09/04 10:20]
↑デジタルドカタキター。

735 名前:デフォルトの名無しさん mailto:sage [04/09/04 10:33]
休日の朝から、カルシウム不足の>>733が湧いたな、牛乳でも飲んでろ。

>>719もまいは、明日から俺のメイドさんになること。もしくは口からクソを垂れる前と後
にSirをつけること。あと、入門書に乗ってないことでも、冷静に色々やってみろ。


'変数の定義
Dim X As String
'SqlConnection1を使って、データコマンド作成
Dim cmd As SqlClient.SqlCommand = SqlConnection1.CreateCommand
'データーリーダーの設定
Dim dr As SqlClient.SqlDataReader
'コマンドのコネクション設定
cmd.Connection = SqlConnection1
'検索条件の設定(A)
cmd.CommandText = "SELECT name FROM member WHERE incol_id = 25 "
'コネクションを開く()
SqlConnection1.Open()
'データリーダーから、データーを読み出す
dr = cmd.ExecuteReader()
'読めたら、Xに代入・・・(A)のSQLでnameのところを*にしてXをYだのZだのに変えて、
'好きなだけ変数を引っ張れw
Do While dr.Read = True
X = dr("name")
Loop
'データリーダーを閉じる()
dr.Close()
'コネクションを閉じる()
SqlConnection1.Close()

デジタルドカタは、人に者を教えるときはそいつのレベルまで下がって教えてやれよw。
お前らだって誰かに習っただろうにwww。



736 名前:デフォルトの名無しさん mailto:sage [04/09/04 11:00]
>>724
これは漏れも知りたい

>>727
ワロタ

737 名前:デフォルトの名無しさん mailto:sage [04/09/04 13:05]
>>724
Baloon Tooltip を使え。

738 名前:デフォルトの名無しさん [04/09/04 16:07]
DateTimePickerコントロールをデータセットに連結してます。
ユーザー操作無しにコントロールのValue値をデータセットに反映させるには
どうすればいいのでしょうか?
例えば、新規レコード追加Formでコントロールに年月日が表示されますが、
その日付でいいやと言うことでコントロールを操作しないと、新規レコードの
日付はNullになってしまいます。
これを何とかしたいです。言葉足らずがあったらすみませんm(_ _)m

739 名前:デフォルトの名無しさん [04/09/04 17:43]
変更がない時は、Nowを突っ込む。

Null入れてんじゃねえよ!と言うエラー捕まえて、Nowを突っ込む。

てのは?

740 名前:デフォルトの名無しさん mailto:sage [04/09/04 17:56]
意味がわかりません

741 名前:738 mailto:sage [04/09/04 18:07]
>>739
レスありがとうです。
現状は、
Dim dvHogeHoge As DataView
Dim cm As CurrencyManager
DateTimePickre.DataBindings.Add("Text",dvHogeHoge,"HIDUKE")
みたいな感じになってるので、
If DateTimePickre.Text = "" Then
dvHogeHoge(cm.Position)("HIDUKE") = Now()
End If
ってな感じで試してみようと思います。

742 名前:デフォルトの名無しさん [04/09/04 18:09]
だから、直接連結させずに、一端変数に入れて、変数に入れた内容をupdateするときに
その変数をDBに突っ込めば?んで、変数の初期値をnowにでもしとけば、底がNullに
なるって事はないでそ?

743 名前:デフォルトの名無しさん mailto:sage [04/09/04 18:10]
って、>>740>>741とは違う人だったかw。

744 名前:デフォルトの名無しさん mailto:sage [04/09/04 20:04]
自フォームのListViewから(エクスプローラのように)他のアプリ
ケーションに対し、Drag&Dropでファイル名を与えたいのですが、
方法がよくわかりません。

Private Sub ListView1_ItemDrag(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemDragEventArgs) Handles ListView1.ItemDrag
Dim filename as String
filename = (略)
ListView1.DoDragDrop(filename, DragDropEffects.All)
End Sub

としてみたのですが、Dragしてもマウスカーソルは(/)のままで、
エクスプローラからのDrag&Dropなら受け取ってくれるアプリも
Dropに無反応です。

例外としてMS Wordは文字列(filename)を受け取ってくれました。

何かやるべきことが抜け落ちているのでしょうか、教えてください。

745 名前:デフォルトの名無しさん mailto:sage [04/09/04 21:06]
たしかオライリーだっけ?それ使えばいいのかな



746 名前:デフォルトの名無しさん [04/09/05 07:14]
質問させてもらいます。

Textbox1〜3にA,B,Cと入力した文字を、WriteLine関数
を使って、テキストファイルの1行目に
"A","B","C"
というような内容で保存したのですが。

ListViewに見出し行を3つ設定したもの
(例えば 番号,氏名,フリガナ )
を、それぞれ見出し行別に、保存したファイルの内容を
表示するように読み込むにはどうしたらいいでしょうか。

747 名前:デフォルトの名無しさん mailto:sage [04/09/05 10:11]
少しは考えろ

748 名前:デフォルトの名無しさん mailto:sage [04/09/05 11:39]
オマイもその生産性のない行為と人生について考えたらどうかね

749 名前:デフォルトの名無しさん mailto:sage [04/09/05 12:02]
クレタ人は嘘つきだとクレタ人はいった。

生産性のない行為と人生について考えろ、といった者は、
「生産性のない行為と人生について考えろ」という行為の生産性と
彼の人生にいおける意味について考えた...?

750 名前:デフォルトの名無しさん mailto:sage [04/09/05 12:23]
面白い!

751 名前:デフォルトの名無しさん mailto:sage [04/09/05 14:32]
>>749
考えたらこんな感じになった
ってかVBじゃなくなってしまった すまそ

public Menbs = new Menbs(748);

while(にちゃんねら.人類なんてどうしようもないんだよとオモタカウンタ < 1000000)
{
 foreach(2CHスレッド スレ in 2CH)
 {
  for(int i=1; i<1001;++i)
  {
   if(にちゃんねら.watch(スレ,i)==Menbs.ゴミクズ || にちゃんねら.watch(スレ,i)==Menbs.糞レス)
    ++ にちゃんねら.人類なんてどうしようもないんだよとオモタカウンタ;

   ++にちゃんねら.ストレス;
  }
 }
}
print("そうか、人類皆殺しにすればいいだよ\n");
Exit(人生);

752 名前:デフォルトの名無しさん mailto:sage [04/09/05 18:28]
ちゃんとVB.NETで書かんかい。

753 名前:デフォルトの名無しさん [04/09/05 19:13]
質問させてください。

タイマーの割り込みは1ms単位で設定できるようなのですが、実際に動かすと、10ms単位になっているようです。
1ms単位で割り込みをかけられないのでしょうか?


754 名前:デフォルトの名無しさん mailto:sage [04/09/05 19:18]
何のタイマーってかどういうタイマーってか、Timerは何使ってんだ?
ちなみにまじめに書くと多分やろうとしてることは無理だからあきらめろ。

755 名前:デフォルトの名無しさん mailto:sage [04/09/05 20:34]
>>753
知ってるけど教えてやらない



756 名前:デフォルトの名無しさん [04/09/05 20:39]
そんなこと言わないで教えてよ。

757 名前:デフォルトの名無しさん mailto:sage [04/09/05 22:28]
>>756
System.Timers.Timerは精度が高い

www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemtimerstimerclasselapsedtopic.asp
> イベントを時間どおりに発生させるという点で、Windows のタイマより正確です。

758 名前:デフォルトの名無しさん [04/09/06 00:04]
>>757

ありがとうございました。
明日、会社で試してみます。

759 名前:デフォルトの名無しさん mailto:sage [04/09/06 00:08]
正直結局同じような問題に引っかかると思うぞ…

760 名前:デフォルトの名無しさん mailto:sage [04/09/06 00:21]
Winのプロセスのタイムスライスってmsecのオーダーだったような気がするんだけど。。
OSのタイムスライスより短い間隔のイベントって無理じゃないだろうか?
少なくともマイコンのタイマ割り込みみたいに厳密にはいかないはず。

>>753って組み込み系の人か?
Winのプログラミングってのはハード(CPU)をプログラミングしてるんじゃなくて
ハード上に仮構された仮想機械をプログラミングしてるんだってことを忘れてないか?

761 名前:なんかの壁 [04/09/06 10:47]
不思議な現象に悩んでいます。
DatagridのdataSourceにDatatableを設定して表示しています。
プログラムでDatatableをカラムから作成しています。
1回目の実行ではうまく表示されます。
2回目でDatatable作り直すとカラムだけ表示されて、データ部分が
表示されません。
1回目も2回目も動くプログラム部分は同じです。対象となるデータが異なるだけです。
(ちなみに、プログラムを再起動して先ほど2回目に行ったデータで実行してみると正しくデータも表示
されています)
なにか初期設定すべきことでもれていることがあるようですが、
いくら調べてもわかりません。




762 名前:デフォルトの名無しさん mailto:sage [04/09/06 11:13]
不思議ですね。

763 名前:デフォルトの名無しさん [04/09/06 15:25]
ソースを張れよ

764 名前:なんかの壁 [04/09/06 16:23]
失礼いたしました。
ソースはかなり大きいので・・・。
問題箇所が判明しました。
datatableを作り直すとき、resetメソッドを使っていたのが問題だったようです。
テーブル自体は作り直せるのですが、何かの情報が失われるようです。

    (Public tbl as Datatable)
(Form_Loadで tbl = New DataTable("table1"))

元:
tbl.reset()

修正後:
tbl = Nothing
tbl = New DataTable("table1")

本当の理由がわからないのが弱点ですが。

765 名前:デフォルトの名無しさん mailto:sage [04/09/06 16:36]
┐(´ー`)┌



766 名前:デフォルトの名無しさん [04/09/06 17:27]
ちょっと急ぎなんで過去ログとか読んでなくてすみません。

textboxをラベルみたいに表示させたいんですが、
どうしたらよいでしょうか?

文字色は黒でフォーカスが行かないよう(クリックも不可)にしたいです。

767 名前:デフォルトの名無しさん mailto:sage [04/09/06 17:36]
>>766
知ってるが急いでるんで教えられない。

768 名前:デフォルトの名無しさん [04/09/06 17:39]
enable = false

769 名前:デフォルトの名無しさん [04/09/06 17:43]
enable = false でやると、
文字色が灰色になっちゃいますよね?
文字色黒のまま使いたいのですが・・・

770 名前:デフォルトの名無しさん mailto:sage [04/09/06 18:08]
readonly = true

771 名前:デフォルトの名無しさん [04/09/06 18:11]
readonly = true でやると
クリックした時にフォーカスが行きますよね?
文字色黒、クリック不可の状態を作りたいのですが、
どうしたらよいでしょうか?

772 名前:デフォルトの名無しさん [04/09/06 18:13]
すいません。
クリック不可ではなく、選択不可です。
文字色黒、中の文字を選択不可の状態を作りたいです。

773 名前:デフォルトの名無しさん [04/09/06 18:34]
上からラベルをかぶせる

774 名前:デフォルトの名無しさん [04/09/06 18:37]
やっぱラベルかぶせるしかありませんかね?
テキストボックスのみでどうにかできるのが、
理想なんですが。

775 名前:デフォルトの名無しさん [04/09/06 18:38]
つ〜か、なんでラベルが使えないの?



776 名前:デフォルトの名無しさん mailto:sage [04/09/06 18:38]
ていうか、なんでラベルじゃだめなのか。

777 名前:デフォルトの名無しさん mailto:sage [04/09/06 18:38]
オホホかぶった。

778 名前:デフォルトの名無しさん [04/09/06 18:42]
パラメータによって、
そのフィールドが入力出来たり出来なかったりします。
で、入力不可の時はラベルみたいにして欲しいと言われてるんで。


779 名前:デフォルトの名無しさん mailto:sage [04/09/06 18:49]
Windows標準から外れたことをやろうとしてるわけだから
エレガントに解決しようとせず、実際にラベルを使うのが
ベストだと思う。
実行時にラベルを生成して、TextBoxと同じBoundsに
置いて、TextBoxを消せばいいんだろ。

780 名前:デフォルトの名無しさん [04/09/06 19:04]
わかりました。
そのやり方で上司と相談してみます。
回答ありがとうございました。

781 名前:デフォルトの名無しさん mailto:sage [04/09/06 19:05]
sage忘れた。すみません。

782 名前:779 mailto:sage [04/09/06 20:02]
>>780
その要求の出所がお客じゃなくて上司だったら、
「そんな間抜けなUIじゃ笑われますよ」って言ってやるが。

783 名前:デフォルトの名無しさん mailto:sage [04/09/06 20:29]
注文が多いな

784 名前:デフォルトの名無しさん [04/09/06 20:46]
笑うのはプログラマの都合。見た目重視を求めるなら
十分有りうる想定。

笑われますよ、とか、出来ませんとかは只の言い訳だし。


785 名前:デフォルトの名無しさん mailto:sage [04/09/06 21:19]
いや、見た目重視ならむしろWinの標準のUIの方が統一感があり直観的だと思うが。。
それ以上に必要以上に見た目が変化するUIなんてダサイしイライラするだろう。

まあ、マーキーで文字が流れまくりのウェブサイトをかっこいいと思う人も
いるわけだから蓼食う虫も好き好きといえばそれまでだけど。



786 名前:デフォルトの名無しさん mailto:sage [04/09/06 21:31]
Textboxを継承してLabelを内在するコントロールクラス作っとけ。
で、プロパティで表示を切り替え。

787 名前:779 mailto:sage [04/09/06 21:39]
>>784
「すいません、できません」は言い訳っていわないと思うが。

「なんでそんなバカな仕様で受けてきたんだ」はよく使う言い訳。
というか遠吠え。

788 名前:デフォルトの名無しさん mailto:sage [04/09/07 00:12]
>>784
言われたこと全部やろうとするのかお前は。


789 名前:デフォルトの名無しさん mailto:sage [04/09/07 09:28]
メール送信のプログラムを作成していたのですが、CDO.messageにアクセスできません。
という例外がでて送信することができません。
調べたところ私の使ってるメールサーバのSMTPがPOP before SMTPになっていたので
1〜4行目を追加したところ、自分から自分には送信できたのですが
他のメールアドレスに送信すると同じ例外が帰ってきました。
本についてるメール送受信のサンプルソースなども試したのですが
わたしのメールサーバの設定では、例外こそ出ないものの他のメアドに送信すると
何故かメールが消えてしまい、相手にも届かなければこちらに送信エラーで
帰ってもきませんでした。
どなたか良い解決方法はないでしょうか?

1 Dim tcp As New System.Net.Sockets.TcpClient()
2 tcp.Connect("pop.hogenet.ne.jp", 110)
3 Dim sw As New StreamWriter(tcp.GetStream())
4 sw.Write("USER hoge" + vbCrLf + "PASS ******" + vbCrLf + "STAT" + vbCrLf + "QUIT" + vbCrLf)
5 Dim mm As New System.Web.Mail.MailMessage()
6 mm.From = "hoge@hogenet.ne.jp"
7 mm.To = "piyo@piyo.co.jp"
8 mm.Subject = "てすと"
9 mm.Body = "てすとです"
10 mm.BodyEncoding = System.Text.Encoding.GetEncoding(50220)
11 System.Web.Mail.SmtpMail.SmtpServer = "smtp.hogenet.ne.jp"
12 System.Web.Mail.SmtpMail.Send(mm)


790 名前:デフォルトの名無しさん mailto:sage [04/09/07 09:49]
追記

なお、自分自身にメールを送信すると
必ず差出人のところ『のみ』が文字化けしてしまいます。
ただ、差出人を本当のメールアドレスの"hoge@hogenet.co.jp"から
"hage@hogenet.co.jp"や"hoge@hogehogenet.co.jp"
などと出鱈目なものにすると何故か文字化けせずに受信できました。

使用環境は
WindowsXP Professional Version2002 Service Pack 1
Microsoft Visual Basic .NET
Microsoft.NET Framework 1.0.

使用しているメールソフトはNetscap 7.1です

791 名前:デフォルトの名無しさん mailto:sage [04/09/07 10:37]
関係あるかわからんけど

mm.Headers("Content-Transfer-Encoding") = "7bit"

これしたらどうだろうか。これしないとQuoted-Printableになっちゃって
受け付けないor化ける相手がいたことならある。

792 名前:デフォルトの名無しさん [04/09/07 10:56]
>>789
プロバイダ経由しないで送信できないの?
たとえばIISからとか

793 名前:デフォルトの名無しさん mailto:sage [04/09/07 11:20]
>>791
ご指摘ありがとうございます。
mm.Headers("Content-Transfer-Encoding") = "7bit"
の一文だけでは文字化けは直らなかったのですが

以下のヘッダー情報を追加したところ、
mm.Headers("Content-Transfer-Encoding") = "7bit"
mm.Headers.Add("Reply-To", "hoge@hogenet.ne.jp")
mm.Headers.Add("sender", "piyo@piyo.co.jp")

差出人の文字化けは直りました。
何故か"sender"を抜くと文字化けしたままなのが
よくわかりませんけど・・・。

あと、エラーメッセージももう少し掘り下げてみました。
サーバーによって 1 つまたは複数の受信者アドレスが拒否されました。サーバーからの応答は次のとおりです。
550 5.7.1 <piyo@piyo.co.jp>... Relaying denied. Proper authentication required.

'CDO.Message' オブジェクトにアクセスできませんでした。
System.Web
at System.Web.Mail.LateBoundAccessHelper.CallMethod(Object obj, String methodName, Object[] args)
at System.Web.Mail.CdoSysHelper.Send(MailMessage message)
at System.Web.Mail.SmtpMail.Send(MailMessage message)
at mail.Form1.sendMail() in C:\temp\mail\Form1.vb:line 98

>>792
IISやSMTPなどの設定もあまりよくわからないのですが
開発環境でIISを使用して作ったとして、Home Editionなどを使っている
他の端末でも実行できるのでしょうか?

794 名前:デフォルトの名無しさん mailto:sage [04/09/07 12:05]
>>793
IISさえ起動していればHomeでもいけると思う(試したことが無い
やり方はSmtpServerプロパティを設定しないだけ


795 名前:デフォルトの名無しさん mailto:sage [04/09/07 13:02]
>>794
説明の仕方がまずかったかもしれません。
Aという端末(HomeEdition)がある処理をしたら
その結果をB端末(HomeEdition)、C端末(HomeEdition)・・・
にメールの形で報告するというものなので
IISが起動しているサーバというものはないのです。
普通のメールソフトで送受信できているので
できればわざわざA端末にProを入れてIISを起動させる。
という事はしたくないのですが、IISを使わないと
簡単にメール送受信を実現させる事は難しいのでしょうか?




796 名前:デフォルトの名無しさん mailto:sage [04/09/07 13:07]
>>795
550 5.7.1 <piyo@piyo.co.jp>... Relaying denied. Proper authentication required.
リレー拒否されてますけど、
>6 mm.From = "hoge@hogenet.ne.jp"
これちゃんとそのサーバにアカウントのあるアドレスですか?

797 名前:デフォルトの名無しさん mailto:sage [04/09/07 13:13]
>>796
それはもちろんあります。
SMTP、POP、FROMのメールアドレスは
メーラーで使われているものをそのまま
コピペでもってきたものです。
TOの方のメールアドレスも当然実在するもので
メーラーで送る分には何の問題もなく使えるものです。

798 名前:デフォルトの名無しさん mailto:sage [04/09/07 13:14]
>>789
(OutlookExpress等で) 一旦POPで読んでから動かすとどうなりますか?
なんとなく POP before SMTP がうまく行っていないだけのような気もします。

あと System.Web.Mail.Message って ISO-2022-JP が使えない(ですよね)ので、
日本語は送らない方がいいと思いますよ。
受信するのも自分ならいいのかもしれませんが。


799 名前:デフォルトの名無しさん mailto:sage [04/09/07 13:18]
>>789
BASP21を検討汁

800 名前:デフォルトの名無しさん mailto:sage [04/09/07 14:19]
>>789
>(OutlookExpress等で) 一旦POPで読んでから動かす

というのは、メーラーを立ち上げる→プログラムを実行する。
ということでしょうか?
とりあえずそれを実行してもダメでした。
あと、POP before SMTP が上手くいっていないという事だったので
4行目のソースのUSERとPASSを出鱈目なものして自分自身に送ってみたところ
それでも普通に送れてしまいました。
なのでPOP before SMTPが上手くいってなくて同じドメインの
自分のメールアドレスにだけメールを送る事が出来ているのかもしれません。

それと、ISO-2022-JPに関しては参考にしたサンプルソースで
日本語を送れる版ということでISO-2022-JPの設定があったので
10行目のISO-2022-JPの指定は問題ないと思います。

>>799
どうしようもなければそういった方法も検討しないといけないのかもしれませんが
まだ時間があるので出来れば自力で実現できる方法を考えたいと思います。


801 名前:デフォルトの名無しさん mailto:sage [04/09/07 14:44]
>>800
例えば foo@bar.com に送るとして、nslookup -type=MX bar.com で得られる
mail exchanger を SmtpServer にセットして、直接先方へ送れば多くのケースで動くと思います。
nslookup は System.Diagnostics.Process.Startで起動して、標準出力を貰えばよいでしょう。

802 名前:デフォルトの名無しさん mailto:sage [04/09/07 16:14]
>>801
その方法であっさり送る事が出来ました。
POP before SMTP で自分の所属するSMTPから
他所のドメインに送信する方法でかなり悩んでいたのですが
こんな方法があるとは思いも尽きませんでした。
本当にありがとうございます!

アドバイスして下さった皆さんにもとても感謝しています。
おかげさまでメール送受信の仕組みも全然勉強不足なのを痛感できました。
今回は801さんの方法で送ることができましたが
他の実現方法もないか勉強がてらいろいろ試してみようと思います。

803 名前:デフォルトの名無しさん [04/09/07 16:32]
>>801
神認定

804 名前:デフォルトの名無しさん mailto:sage [04/09/07 17:13]
>>802
ウィルス/ワームの類でPCを乗っ取って spam をガンガン送る奴とかへの対策でLAN 内部から外部への
smtp での直接アクセスをはじくネットワーク管理者も多いと思いますので、その辺を考慮する必要がある
なら自分の側のサーバ経由での SMTP の方も使えるようにしたほうがよいでしょう。

そういったネットワークの内部からなら、内部の smtp サーバには認証無しで送れそうな気もするし。

805 名前:デフォルトの名無しさん mailto:sage [04/09/07 21:59]
このスレ、俺がいなければ良スレだな



806 名前:デフォルトの名無しさん mailto:sage [04/09/07 23:08]
>>805
俺がいなければ良スレだよ

807 名前:デフォルトの名無しさん mailto:sage [04/09/08 12:50]
ソリューション内に、AとBのプロジェクトがあります。
Aにフォームを継承したクラス1と、それを継承したクラス1'があります。

このクラス1と1'をBプロジェクトでも使用したいので、
リンクファイルとして追加しました。

ですが、実行しBプロジェクトでクラス1'をNewしようとすると、

指定されたカルチャ (またはニュートラル カルチャ) に必要なリソースがアセンブリに見つかりません。
"クラス1'.resources" が、アセンブリ "Bプロジェクト" に正しく埋め込まれているか、
またはリンクされているかを確認してください。

というエラーが発生してしまいます。

ビルドは通ります。
それぞれのプロジェクトをソリューションから切り離した場合もうまく動きました。
フォームを継承していない自作クラス2と2'は動作しています。

サブクラスはリンクファイルとして使用できないのでしょうか?

808 名前:デフォルトの名無しさん mailto:sage [04/09/08 16:37]
はい、その通りです。

809 名前:デフォルトの名無しさん mailto:sage [04/09/09 02:59]
なんでリンクファイルにしたいわけ?

810 名前:デフォルトの名無しさん mailto:sage [04/09/09 03:04]
現在、.Net Remotingの勉強をしようと
MSDNのサンプルを試してみています。
System.Runtime.Remoting.Channels.Tcp名前空間を
インポートするように書いてあるのですが、自分の環境では
名前空間が見つからないというエラーになってしまいます。
確かにSystem.Runtime.Remoting.Channelsの
メンバ一覧にも出てきません。
普通にインポートできるものじゃないんでしょうか?

811 名前:810 mailto:sage [04/09/09 03:07]
System.Runtime.Remotingを参照設定したら解決しました。
すみませんおさわがせしました。

812 名前:デフォルトの名無しさん [04/09/09 17:09]
Windowsアプリケーションを作成しています。
プログラムの中で予期せぬエラーが発生した場合に、共通のエラーメッセージを表示したいのですが、
すべてのイベントにTry〜Catchを書かずに実現する方法はありませんか?
ASP.NETではGlobal.asaxでApplication_OnErrorにエラーメッセージ表示を記述すれば実現できたのですが、Windowsアプリケーションでは無理なんでしょうか。。。

813 名前:デフォルトの名無しさん [04/09/09 17:50]
>>812
試してないけど
Application.ThreadException イベント
はダメだった?

814 名前:デフォルトの名無しさん mailto:sage [04/09/09 23:47]
質問です。
実行時にフォームに labelコントロールを作ろうとしています。
C = New Label
Me.Controls.Add(C)
ってやると作れるのはわかりました。
既にある Label1 のコピーみたいなのはできませんか?
C = Label1 ってやると実態は増えてないし、
New Label を Label1 で初期化できるといいのですよ。
なにかやり方ありますか?

815 名前:デフォルトの名無しさん mailto:sage [04/09/10 00:53]
あるわけねーだろ馬鹿



816 名前:814 mailto:sage [04/09/10 11:40]
>>815
そっか。じゃ しかたない。

817 名前:デフォルトの名無しさん [04/09/10 11:46]
現在の Object の簡易コピーを作成します。

[Visual Basic]
Protected Function MemberwiseClone() As Object

[C#]
protected object MemberwiseClone();

818 名前:デフォルトの名無しさん [04/09/10 12:13]
For Nextでクルクル回しながら得た値を

TextBox1.Text
TextBox2.Text

と順番に突っ込んで生きたいのですが

For i = 1 TO 10

として

TextBox"i".Textと言う格好で、末尾を変数にしての
名前の指定の仕方がわからず困っています。

どなたかボスケテいただけませんか?

819 名前:デフォルトの名無しさん mailto:sage [04/09/10 12:22]
どうしてもそういうヘンなことがしたいのなら、>>545あたりを一読した上で、
Type.GetField と FieldInfo.SetValue あたりを使えばいいと思うけど、絶対お勧めしない。
事前にコントロールへの参照を配列に入れておいたほうがいいと思う。

820 名前:デフォルトの名無しさん [04/09/10 13:12]
特別な事情がないなら>>819の方法がいいと思う。

821 名前:デフォルトの名無しさん mailto:sage [04/09/10 13:44]
>>819
今回はSetValueじゃなくて、FieldInfo.GetValue で TextBox をとってきてから普通に Textプロパティにセットだね。
でも漏れも絶対にお勧めしない。

822 名前:デフォルトの名無しさん mailto:sage [04/09/10 15:49:41]
>>818
Public Function FindControl2(ByVal ctl As Control, ByVal name As String) As Control


Dim myPropertyInfo As System.Reflection.PropertyInfo

Dim myObject As Object


myPropertyInfo = ctl.GetType().GetProperty(name _

, Reflection.BindingFlags.Instance _

Or Reflection.BindingFlags.NonPublic)


If Not myPropertyInfo Is Nothing Then


myObject = myPropertyInfo.GetValue(ctl, Nothing)

Return CType(myObject, Control)

End If

Return Nothing

End Function
for i as int32 = 0 to 10
findcontrol2(me,"textBox" & cstr( i) ).text="aheahe"
next

823 名前:デフォルトの名無しさん mailto:sage [04/09/10 16:10:09]
絶対できない無理
とか言われると、意地でもなんか探してくる性

824 名前:814 mailto:sage [04/09/10 21:19:50]
>>817
なんだ、本当はあるのか。
でも使い方がよくわからないよ。
Label1.MemberwiseClone なんて出来ないみたいだし。
新しいクラスを作るのかな?
もう少し教えて。

825 名前:デフォルトの名無しさん mailto:sage [04/09/10 23:06:21]
できるわけね〜だろ



826 名前:デフォルトの名無しさん mailto:sage [04/09/10 23:07:24]
>>817
変な事教えるなよ…

827 名前:最凶VB厨房 mailto:sage [04/09/10 23:14:34]
www.microsoft.com/japan/msdn/library/?url=/japan/msdn/library/ja/cpref/html/frlrfSystemICloneableMembersTopic.asp?frame=true

828 名前:sage [04/09/11 03:02:39]
>>818
こういうことでええどすの?

Const s As String = ",うほ,いい男"
Dim i As Integer
For i = 1 To 2
Form1.Controls("Text" & i).Text = Split(s, ",")(i)
Next


ところでVBでのバイナリデータの暗号化方法を誰か教えて。
capicomではバイナリの暗号化は無理ですの?
お金かけずに作りたいのでCryptLightは無しの方向でお願いしまっす。

829 名前:デフォルトの名無しさん mailto:sage [04/09/11 05:05:47]
他のアプリで押された特殊キーの状態とかをトリガにして処理開始したいのですが
vbで他のアプリで押されたキーの状態とか取得できますか?
よくわかってないんですが自分のプロセスならwinprocとかでメッセージ拾って
なんかできそうなんですが。。。


830 名前:デフォルトの名無しさん [04/09/11 11:55:20]
特殊キーを押すアプリがあるとは知らなかった。。

【こんなアプリはイヤだ】

モニタから手が出てきて特殊キーを勝手に押すアプリ

831 名前:デフォルトの名無しさん mailto:sage [04/09/11 13:06:57]
>>828
それ本当にやってみた?
controlsはインデックスだから名前入れらんねーんだけど
ここはvb.netでvbaのスレじゃねーですぜ
(vbaじゃそれ重宝してたんだけどね)


832 名前:デフォルトの名無しさん mailto:sage [04/09/11 14:05:36]
Handlesキーワードで指定されたイベント(Button1.Click, Form1.Load)を取得する方法ってありますか?

833 名前:デフォルトの名無しさん mailto:sage [04/09/11 14:47:06]
なんかイベントハンドラのコレクションを取得するメソッドだったかがあったような気がする。


834 名前:832 mailto:sage [04/09/11 15:13:50]
>>833
ありがとうございます。
一度調べてみます。

835 名前:デフォルトの名無しさん mailto:sage [04/09/11 16:03:51]
TCPでの送受信を勉強してるんだけど、チャットを作るとしたら
送信用と受信用を別Threadにして役割分担させるのが妥当なのかな?
普通にNetworkStreamを使うと、受信しようとしたとたん他のことができなくなっちゃうよね?


VB.NETで簡単なチャットを作ることを教えてるサイトないかな?勉強用に見たい。



836 名前:814 mailto:sage [04/09/11 20:44:06]
>>825 >>826 >>827
ん〜 結局できるのかできないのかさえわからん。
できないって言う人の方が多いな。

837 名前:デフォルトの名無しさん mailto:sage [04/09/11 20:58:25]
少なくとも、MemberwiseCloneなどを利用してとか単純な方法では出来ない。
>>822とかみたいに強引に実装したらできるかもしれない。


838 名前:デフォルトの名無しさん mailto:sage [04/09/11 21:36:58]
すみません。
コマンドでipconfig /releaseと/renewがあると思うのですが、VBで実行するには
どうしたらいいのでしょうか?結果まで出力出来れば嬉しいのですが。

ネット等で探したのですがコマンドの実行すら探しだせませんでした。

839 名前:814 mailto:sage [04/09/11 21:55:41]
>>837
ふむふむ。わかりました。
ありがとうございました。

840 名前:デフォルトの名無しさん mailto:sage [04/09/11 22:27:28]
>>838おまいが分からないのは、
・そもそもプロセスの起動方法
・起動するプロセスへのコマンドラインオプションの渡し方
・結果の取得の仕方
・ipconfigがなんかおまいに取って特殊で、ipconfigに関して分からない
どれだ?

841 名前:838 mailto:sage [04/09/12 00:06:40]
>>840
多分、コマンドラインオプションの渡し方と結果の取得が
分からないです。あとは大体分かるので。

842 名前:デフォルトの名無しさん mailto:sage [04/09/12 01:15:52]
>>841
こちょこちょと書かないで今どんな風にやってるのかとか書いて欲しいなあ。
※何が分からんのか分からないんだよね。
Processクラスで起動してるって事でいい?

コマンドラインオプションはメソッドでもろに指定できるやつがあるけど、
指定の仕方がわからない?

結果の取得(こっちは標準出力の取得とみなして…)等の細かい制御をするには、
ProcessStartInfoクラスを使う必要があったはずだと思う。

っていうか、ProcessStartInfoのヘルプ見たらほとんど分かるんじゃない?

843 名前:デフォルトの名無しさん mailto:sage [04/09/12 01:17:43]
>>841
っていうか、多分てなんだよ多分て…

844 名前:最凶VB厨房 mailto:sage [04/09/12 03:47:10]
>>835
見たか?非同期でどぞ。
www.microsoft.com/japan/msdn/library/?url=/japan/msdn/library/ja/cpguide/html/cpconSocketCodeExamples.asp?frame=true

845 名前:デフォルトの名無しさん mailto:sage [04/09/12 03:52:03]
textboxやrichtextbox内の文字の中から、特定の文字列だけの色を変える方法はどうやれば良いのでしょうか?
例えば、htmlソースのタグや、cソース内の予約語の色を変えたりです。

TextChanged内に記述する形で
タグや予約語を認識すると、その部分のみ色を変更という形をイメージしているのですが
具体的にどうやれば良いのかわからないので、どうかご教授お願いします。



846 名前:デフォルトの名無しさん mailto:sage [04/09/12 05:55:21]
他のアプリケーションがOSにスタンバイ要求を出したり、スタート
メニューから[終了オプション]-[スタンバイ]を選んだりした時に
それを検出して、本当にスタンバイしたいのかどうかを確認する
ダイアログを表示、スタンバイしたくなければそれを中止するモノ
を作りたいと思っているのですが、

AddHandler SystemEvents.PowerModeChanged, _
AddressOf SystemEvents_PowerModeChanged

すれば、スタンバイに入ろうとしていることを検出するところまでは
わかりました。この後、スタンバイを中止する方法がわかりません。
(ダイアログを表示したところでスタンバイに移行してしまいます)
どなたか教えていただけないでしょうか。

847 名前:デフォルトの名無しさん mailto:sage [04/09/12 06:20:27]
>>844
サンクス。がんがってくる

848 名前:デフォルトの名無しさん [04/09/12 12:45:35]
ピクチャーボックスを複数使ってビューアのようなものを作っているのですが、
PictureBox1.Image = New Bitmap(strPicture_File_Path)

PictureBox1.Image = Image.FromFile(strPicture_File_Path)
のように
画像ファイルを読み込むときに画像ファイルのサイズが大きい場合、かなり時間がかかるんです。一枚ならまだいいんですが、複数の画像を各々Imageに読み込みたいため、かなり遅く感じます。これを早くする方法はありますか?
回答をお待ちしております。お願いいたします。


849 名前:812 mailto:sage [04/09/14 16:41:22]
>>813
できました!
ありがとうございます。
起動したフォームだけじゃなくそこから開いた別のフォームでも
エラー処理をトラップすることができました。

850 名前:デフォルトの名無しさん mailto:sage [04/09/14 17:33:33]
>>848
メモリを増設

851 名前:デフォルトの名無しさん [04/09/14 18:08:08]
質問です。
フォームの中にテキストボックス等のコントロールが複数あるのですが、
実行時にフォームのサイズが変更された場合、コントロール間の距離を保ったまま
コントロールの大きさを変更させたいのですが、どうしたらよいですか?
Anchorの対象をフォームではなく他のコントロールにするみたいな感じです。


852 名前:デフォルトの名無しさん [04/09/14 20:54:23]
>>851
質問です。
試行錯誤してますか?そうは思えませんが。。
そんな質問をする自分を恥には思いませんか?

853 名前:デフォルトの名無しさん mailto:sage [04/09/14 21:08:24]
あ〜明日VBの試験だあ〜

854 名前:デフォルトの名無しさん mailto:sage [04/09/14 21:31:19]
まあそう言わず。
>>851
パネルかなんかにぶっこむのが楽でねぇ?

855 名前:デフォルトの名無しさん [04/09/14 22:04:10]
>>850
違うと思います。

何か違うやり方とか



856 名前:デフォルトの名無しさん mailto:sage [04/09/14 22:10:24]
>>855
俺も >>850 が正解かと思ったけど。
どれくらいのサイズの画像を何枚くらい読み込もうとしてるの?>>848
そもそもディスクが遅いっていうオチじゃ嫌よ。

857 名前:デフォルトの名無しさん [04/09/14 22:56:02]
>>856
読み込む画像は基本的に1MBくらいのJPGを5枚です。
マシンもPentium M(1GHz)、メモリも756MBだし。そこそこ最近のですよ。
普通にあるのフリーのビューアーだってストレスのない早さなのに
自作のプログラムが遅いのは不満です。
何かいい方法はありませんか?
例えば、ファイルを並行に読み込むとか??


858 名前:最凶VB厨房 mailto:sage [04/09/14 23:11:42]
www.microsoft.com/japan/msdn/library/?url=/japan/msdn/library/ja/cpguide/html/_gdiplus_Improving_Performance_by_Avoiding_Automatic_Scaling_usecsharp.asp?frame=true

859 名前:デフォルトの名無しさん [04/09/15 00:28:53]
>>858
ありがとうございます。
でも、このやり方でやっています。

そもそも
Dim image = New Bitmap("Texture.jpg")
の処理に時間がかかっているのです。


860 名前:デフォルトの名無しさん mailto:sage [04/09/15 00:50:28]
そこそこ精度の高いFAXTIFをImage.FromFileで読み込んだけど
そんなに遅くなかった気がする
512MB 1.1GHz

そのイメージをファックスドライバに送ってファックス送信した

861 名前:デフォルトの名無しさん mailto:sage [04/09/15 00:50:37]
すみません,>>845解る方いらっしゃらないでしょうか(´Д`)

862 名前:最凶VB厨房 mailto:sage [04/09/15 01:56:26]
www.microsoft.com/japan/msdn/library/?url=/japan/msdn/library/ja/cpref/html/frlrfSystemWindowsFormsRichTextBoxClassSelectionColorTopic.asp?frame=true
は?
textboxは部分文字列は色変更できないはず。

863 名前:デフォルトの名無しさん mailto:sage [04/09/15 01:58:27]
>>857
1MBのJPGを読み込めば、メモリ上では50〜100MBとかになる。
850のレスに対してはスワップの発生状況について言及すべき。

864 名前:845 mailto:sage [04/09/15 03:52:07]
>>862
助言ありがとうございます
RichTextBox.SelectionColorプロパティをどのように応用すれば>>845を実現できるかはまだわかりません(´・ω・`)
もうちょっと頑張ってみます。

>textboxは部分文字列は色変更できないはず。

なるほど、そうでしたか。失礼しました。

865 名前:851 mailto:sage [04/09/15 10:24:07]
なるほど、panelというものを使えば簡単にできるのですね。
ちょっと触ってみた感じ、いまいちどう使うのかわかりませんでしたがやってみます。
コントロール間の距離を測っておいてフォームのサイズを変えたときに各コントロールの位置と大きさを
再設定すればできるだろうか?とかそんなことばかり考えていました。(できなかったわけですが)
どうやら簡単にできることのようなので、こんな質問をしてしまって恥ずかしく思います。
まだまだ試行錯誤が足りなかったようです。
答えていただきありがとうございました。



866 名前:デフォルトの名無しさん mailto:sage [04/09/15 23:06:43]
本でわからないところがあります。

引用
---------------------------------
If x > 10 AndAlso y < 10 Then
z = x + y
MessageBox.Show(z.ToString)
End If

 上記の例では、最初に、前者の条件式「x > 10」を判定します。
条件式「x > 10」が不成立であるならば条件式全体に「False」を返し、
命令文「z = x + y」を実行します。条件式「x > 10」が不成立である
ならば、後者の条件式「y < 10」の判定を行ないます。
---------------------------------

文章後半、「命令文〜判定を行います。」
のあたりがよくわかりません。
最初の条件がFalseの時は命令文もつぎの条件判定も飛ばすんですよね?

867 名前:デフォルトの名無しさん mailto:sage [04/09/15 23:13:16]
>>866
明らかに誤植。
文章もひどい。「不成立であるならば」なんて直訳。

868 名前:デフォルトの名無しさん mailto:sage [04/09/15 23:20:36]
>>866
そんな命令があるの初めて知ったよ。
見てるだけでも勉強になるな。

参考に
ttp://www.atmarkit.co.jp/fdotnet/vb6tonet/vb6tonet06/vb6tonet06_01.html

869 名前:866 mailto:sage [04/09/15 23:25:19]
>>867
レスありがとうございます。

やっぱり誤植なのですか・・。 。・゚・(ノД`)・゚・。
誤植にしてはアレすぎるので何かひどい勘違いをしているものと
思っていました。

一応日本人の書いた本なのですが、
用語(?)自体が直訳風ということでしょうか?

870 名前:デフォルトの名無しさん mailto:sage [04/09/15 23:34:37]
>>868
おもしろいリンク先の紹介、ありがとうございます。
ver.6では変わった演算子があったんですね。

871 名前:デフォルトの名無しさん [04/09/16 06:59:50]
>>866
Basicの困った仕様を.NETで吸収するのに開発者は
苦労しただろうね。
ここまでして、「VB」にこだわる必要があるのか疑問に
なってしまう。
ただいまでも、ほとんど一緒でもBasicと名の付く方を
選択する人はかなりいるんだろうね。

872 名前:デフォルトの名無しさん mailto:sage [04/09/16 12:38:48]
>>869
こういうのは、だいたい英語のネタがあって、それのパクリかも。
誤植というか、2〜3行抜けてる感じ。
手書きならともかく、最初からパソコンで原稿書いてれば起きないはずなんだけど。
できるだけ原文に即して直すとしたら、こういう感じかな。(悪文だけど。)

 上記の例では、最初に、前者の条件式「x > 10」を判定します。
条件式「x > 10」が不成立であるならば条件式全体に「False」を返し、
条件式「x > 10」が成立であるならば、後者の条件式「y < 10」の判定を行ないます。
後者で、条件式「y < 10」が成立であるならば、命令文「z = x + y」と
「MessageBox.Show(z.ToString)」を実行します。

873 名前:デフォルトの名無しさん mailto:sage [04/09/16 12:42:56]
AndAlso と OrElse か。
VB6でも最適化コンパイル時にそういう処理をしてると思ってたんだけど。

.NET Frameworkで動くのに、わざわざ命令を追加するほどの意味があるのかな。

874 名前:デフォルトの名無しさん [04/09/16 13:07:25]
>>873
.NET Frameworkで動かすために追加せざるを得なかったんでしょ。

875 名前:デフォルトの名無しさん mailto:sage [04/09/16 14:31:54]
>>874
なるほど、C#にそろえるためか。



876 名前:デフォルトの名無しさん mailto:sage [04/09/16 16:19:38]
>>873
A, B が関数だとして、 A And B と A AndAlso B ではだいぶ意味が違ってくると思う。
AndAlso の使いどころは、例えば Not IsNothing(form1) AndAlso form1.Visible とか。

877 名前:VB.NET始めて2日目 [04/09/16 17:19:22]
研修の身分でVB.NETの課題を昨日から始めた初心者ですが、
早速テンパってしまったのでお聞きしたいです。

課題内容:エンターキーが押された際に順番通りにフォーカスを移動させる
フォーム内容:TextBoxが6個並んでいる

以上の内容となるのですが、どの様にすれば課題内容を網羅出来るものが出来るのでしょうか
出来れば、極力簡単な言葉でお教え頂けないでしょうか

878 名前:デフォルトの名無しさん mailto:sage [04/09/16 17:21:40]
自分でやらなければ研修の意味がない。
給料を払う価値もない。


以上

879 名前:デフォルトの名無しさん mailto:sage [04/09/16 17:29:32]
ワラタ

880 名前:デフォルトの名無しさん mailto:sage [04/09/16 17:50:42]
EnterKeyをTabKeyに入れ換える

内緒 Function 内緒(内緒) As 内緒
If 内緒 = 内緒 Then
内緒(内緒)
内緒(内緒)
内緒 = 内緒
End If
内緒 = 内緒
End Function

簡単だな
俺はEnterKeyでフォーカスを移動するのは嫌いだな

881 名前:デフォルトの名無しさん mailto:sage [04/09/16 17:54:16]
漏れは単純な数字を沢山入れるタイプのAPなら、
Enterでフォーカスが移動するのは悪くないと思う。
Excel もそうだけど気にならないし。

でもそーいう業務アプリ設計してると、他に「実行」キーが欲しくなるという罠

882 名前:デフォルトの名無しさん mailto:sage [04/09/16 17:56:23]
キーフ○○ヒ゛ュー

883 名前:VB.NET始めて2日目 [04/09/16 19:17:06]
解決致しました。
皆さんどうもありがとう御座いました。

884 名前:デフォルトの名無しさん [04/09/16 21:08:27]
179 名前: VB.NET始めて2日目 投稿日: 04/09/16 17:47:47
研修の身分でVB.NETの課題を昨日から始めた初心者ですが、
早速テンパってしまったのでお聞きしたいです。

課題内容:エンターキーが押された際に順番通りにフォーカスを移動させる
フォーム内容:TextBoxが6個並んでいる

以上の内容となるのですが、どの様にすれば課題内容を網羅出来るものが出来るのでしょうか
出来れば、極力簡単な言葉でお教え頂けないでしょうか

180 名前: VB.NET始めて2日目 投稿日: 04/09/16 19:16:11
自己解決しました。
お騒がせ致しました。

885 名前:デフォルトの名無しさん mailto:sage [04/09/16 21:27:23]
.NETでも所詮はブビ廚



886 名前:デフォルトの名無しさん mailto:sage [04/09/17 11:04:50]
VS2005Beta1を検証PCにインストールしたけどめちゃ重くて使えません。
CPUは2ギガです。とりあえず環境はMDIにしてプロパティのドッキング解除して・・・重っ!!
ほんとにみんなこんな開発環境で仕事してるんでしょうか?

WindowsXPでLUNAをやめてクラシックデザインにした時の様に
VS.NET自体の動作を軽くする環境設定ってありますか?
どなたかご存知でしたらレスをお願いします。

VS2005Standardって早く試してみたい・・・


887 名前:デフォルトの名無しさん [04/09/17 14:57:06]
PublicSub frmPrint(略)
TextBox1.text=Module.AAA
TextBox2.text=Module.BBB
TextBox3.text=Module.CCC
End sub

で呼び出す変数をまとめてモジュールを↓のようなModule.vbにしまってあるのですが、

Module DataModule
Public AAA As Integer
Public BBB As String
Public CCC As Decimal
End Module

これを、のAAA,BBB,CCCの内容を利用した後、ボタンを押す事で AAA = 0 BBB = ""
CCC = 0にしたいのですが、ボタンを押したときに全部の変数の初期値を書き込んでやると
方法しかないのでしょうか?

Module自体を初期化という命令を探しているのですが、なかなか見つからずに困っていま
す。

888 名前:デフォルトの名無しさん mailto:sage [04/09/17 15:22:35]
>Module自体を初期化という命令
そんなもんはねえ。
初期化用のメソッドを自分で作る。
※せめて使う側からそれぞれを初期化するのはやめれ

まあそれ以前にこんなグローバル変数の使い方はどうかと思うが。
せめてクラスにしてインスタンスをグローバルで持たせるか…
それならインスタンス作り直して変数を上書きすれば初期化もできるし。


889 名前:887 [04/09/17 15:44:22]
>>888
ありがとうございます。なにせ初めてプログラムを組んでいるので、かなり手探りで
作っています。Moduleに変数を入れるのをグローバル変数と呼び、あんまり推奨
されないというのも、いまGoogleで知りました。

大昔の行数ラベルの付いたHu−BASICしか触った事がないので、判らないことだ
らけで難渋しております。



890 名前:デフォルトの名無しさん mailto:sage [04/09/17 18:25:35]
はどそんべーしっく

891 名前:デフォルトの名無しさん mailto:sage [04/09/17 23:34:06]
ワロタw

892 名前:デフォルトの名無しさん [04/09/18 00:30:25]
.NETで開発している人に質問なんですが、
InputManってよく使いますか?
もしくは他の入力制御系のコントロール使ったりします?

893 名前:デフォルトの名無しさん [04/09/18 11:43:03]
Inheritsってなんて読むんですか?

894 名前:デフォルトの名無しさん [04/09/18 12:22:11]
.netのグラフィックではXOR描画がサポートされていないようだけど、
マウスドラッグで線を引く時に、一時的な線をマウスの動きに合わせて
表示消去を繰り返すような処理をどうすればできる?
ビットマップの切り替えとかで出来るのかなぁ。


895 名前:デフォルトの名無しさん mailto:sage [04/09/18 12:44:14]
愚レイプ指定は駄目駄目。



896 名前:デフォルトの名無しさん [04/09/18 14:34:42]
頭虫邸みたいだな

897 名前:デフォルトの名無しさん [04/09/18 17:55:40]
今日、VB.NETを購入してインストールしたんですけど
起動してみたところ、悪質なスクリプトを検出したと、ノートンが働いてしまいます
devenv.exeというプログラムなんですけど、許可してもいいんでしょうか?

898 名前:デフォルトの名無しさん [04/09/18 18:16:36]
学生じゃないけどアマゾンでアカデミックパック購入しようかな、と思ってます。
(店頭だと学生証表示しる、とか言われそうなので)

インストールとか登録時に変な確認ないよね・・??誰か教えて。

899 名前:デフォルトの名無しさん mailto:sage [04/09/18 19:54:57]
>>898
少し前までそういうスレがあったんだけどね。ソフト板に。

900 名前:デフォルトの名無しさん mailto:sage [04/09/18 20:16:52]
>>899
ありがとう。発見しますた。

901 名前:デフォルトの名無しさん [04/09/18 20:23:39]
Visual Stdio買わずにOutlookのCOMアドインを作りたいんだが、
.NET Framework SDKだけで作れますか?


902 名前:デフォルトの名無しさん mailto:sage [04/09/18 20:56:04]
コマンドラインでコンパイルすればOK
フリーの.NETツールもある

903 名前:デフォルトの名無しさん mailto:sage [04/09/18 21:33:16]
>>892
TextBox継承して作れば、必要なし。
つか、よくあんなもの金出して買うな。

904 名前:デフォルトの名無しさん mailto:sage [04/09/18 22:24:12]
>>902
ありがとうございます。

いろいろいじってみたんだが、必要なコマンドラインオプションがわかりません。
雛形とかを教えてもらえるとありがたいのですが。
-----
Option Explicit

Implements IDTExtensibility2
-----
C:\>vbc /t:library /r:addindesignerobjects.dll hoge.vb
では名前空間のステートメントが無効です、と言われるんですが。


905 名前:デフォルトの名無しさん mailto:sage [04/09/18 22:29:15]
>>904
sharpdevelop-jp.sourceforge.jp/index?FrontPage
これフリーで使える開発ツールだからこれ使ってみては?




906 名前:デフォルトの名無しさん mailto:sage [04/09/18 23:50:28]
>>905
なんとなくわかってきた。ありがとうございます。
動かないけどコンパイルは通るようになったみたい。
もうちっと探ってみまず。

907 名前:デフォルトの名無しさん mailto:sage [04/09/19 00:39:38]
コンパイルが通るけど動かないとは、これ如何に?

908 名前:デフォルトの名無しさん mailto:sage [04/09/19 01:59:21]
>>907
動くけどコンパイラが通らない

 っていうのよりはマシだと思う


909 名前:デフォルトの名無しさん mailto:sage [04/09/19 02:07:30]
>>908
あ り え な い

910 名前:デフォルトの名無しさん mailto:sage [04/09/19 02:16:45]
>>907
レジストリの登録が必要だったりするらしいので。

つうか、
Implements IDTExtensibility2
って書いたらコンパイルできなくなった。
BC30149: 'Class1' は、インターフェイス 'Extensibility.IDTExtensibility2' に対して 'Overridable Sub OnAddInsUpdate(ByRef custom As System.Array)' を実装しなければなりません。
どこのサンプルコードみてもOverridableなんて書いてないのに。。。


ろくにVBを知らないのにアドインつくろうなんて無謀なんだろうけど、
まだまだ先は長いな。

911 名前:デフォルトの名無しさん [04/09/19 12:25:18]
はじめまして。
VB.net (2002) でコンソールアプリを組んでいるのですが、
Ctrl+C のトラップ方法がわかりません。
コンソールプログラム実行中に Ctrl+C を押すと
Try Catch Finally で囲んでいても終了コードを実行
する間もなく強制終了してしまいます。
どなたかトラップの方法をご存知でしたら教えて
いただけないでしょうか。
宜しくお願いします。


912 名前:デフォルトの名無しさん mailto:sage [04/09/19 13:50:09]
>>909
いやいや、「ありえない」にもかかわらず「そうなった」と言うのだから
ひどい、「それよりはましだ」と言いたいのであろう。


913 名前:デフォルトの名無しさん [04/09/19 19:58:42]
質問です。
VB.NETからWindows SharePoint Services のリストの機能を使って、
リストの内容を取得しようとしているのですが、サンプル通りに記述しても動きません。
HTTP401エラーが発生しているようです。
IISの認証はクリア出来てそうなのですが、
(イベントログのセキュリティはログインしたことになっているようです)
IIS⇒ASP.NETの認証でエラーになっているのではないかと思います。

環境は以下です。
SharePointが乗っているサーバー
OS Windows 2003
IIS/ASP.NET

開発しているPC
OS Windows 2000

リモートからの取得自体が無理なんでしょうか。
それとも、どこかの設定で認証をクリアー出来るのか、ご教授下さい。

よろしくお願いします。

914 名前:デフォルトの名無しさん [04/09/19 22:22:23]
先生、質問です。

VB.NETから、VBScriptとかJScriptとか何でもいいんで、スクリプトって使えますか?
例えば、
Private Sub Hoge() As Long
 Hoge = 1
End Sub
って、テキストファイルに書いたのを、プログラム実行中に読み込んで、
実行することは可能ですか?

915 名前:デフォルトの名無しさん mailto:sage [04/09/19 22:23:30]
質問ばっか



916 名前:デフォルトの名無しさん mailto:sage [04/09/19 22:59:35]
>>915
質問スレだからな

917 名前:デフォルトの名無しさん mailto:sage [04/09/19 23:00:39]
>>914
VB.NET とは関係ないし、
簡単には無理

918 名前:デフォルトの名無しさん mailto:sage [04/09/19 23:04:59]
署名付きクラスライブラリ(VBで作成)を、任意の(C:\common_dll\下)に
配置しようと思っています。
web等を参考にしながら以下の方法で試して見たのですが、上手くいきません。
対応策を教えていただけないでしょうか?

1.keypairの作成
 dos>sn -k key.snk
2.クラスライブラリのAssemblyInfoに追加
assembly: System.Reflection.AssemblyKeyFile("./key.snk")
assembly: System.Reflection.AssemblyVersion("1.0.0.0")
assembly: System.Reflection.AssemblyCulture("neutral")

#ここまでで署名付きのクラスライブラリの作成には成功しています。
#GACへ登録しての起動も確認できました。



919 名前:つづきです mailto:sage [04/09/19 23:05:44]
3.キートークンの抽出
dos>sn -t key.snk
4.AP.exe.configの作成し、AP.exeとおなじフォルダに配置

<?xml〜>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="testdll"
publicKeyToken="32ab4ba45e0a69a1"←3.で抽出したトークン
culture="neutral" />
<codeBase version="1.0.0.0"
href="C:\common_dll\testdll.dll"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

どなたかお願いします。

920 名前:デフォルトの名無しさん mailto:sage [04/09/19 23:13:58]
hrefだからfile://とかのurlにしないといけないとかって落ちはない?


921 名前:918 mailto:sage [04/09/19 23:18:01]
ありがとうございます。
一応file://〜も確認してみたのですが駄目でした。
相対パスでもです。


922 名前:デフォルトの名無しさん mailto:sage [04/09/19 23:42:07]
サブクラス化について
SetWindowLongで
GWL_WNDPROC ウィンドウプロシージャのアドレスを書き換えます。
Windows NT/2000:この属性は、ウィンドウが関数を呼び出したスレッドと同じプロセスに属していないと変更できません。

とSDKに書いてあるんだけど、WndProcの書き換えはc++じゃないと出来ないのかな?
VB.NETでは他の方法でも無理でしょうか??

923 名前:デフォルトの名無しさん [04/09/20 00:05:12]
>>922
君みたいな人不思議でしょうがないんだけど、
なんで人に聞く前にMSDN当たらないわけ?頭不自由なの?寂しがりやなの?
ヤフオクでMSDNなしの「ボリュームライセンス」品を手に入れたの?
それにしたってwebのがあるよねえ。
www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemwindowsformscontrolclasswndproctopic.asp

924 名前:デフォルトの名無しさん mailto:sage [04/09/20 00:18:08]
というかそもそも、
>とSDKに書いてあるんだけど、WndProcの書き換えはc++じゃないと出来ないのかな?
>VB.NETでは他の方法でも無理でしょうか??
という判断を下した理屈が知りたい。


925 名前:デフォルトの名無しさん mailto:sage [04/09/20 00:27:47]
>>921
どううまくいかないのか詳細を書いてくれないか?



926 名前:デフォルトの名無しさん mailto:sage [04/09/20 00:35:13]
ありがとうございます。
DLLが見つからないということでexeが起動できません。

927 名前:デフォルトの名無しさん mailto:sage [04/09/20 00:37:26]
DLLが見つからなくて云々てのは初めから分かっとる。
エラー(例外)メッセージの詳細をかけって言ってるのが分からんかい?
アセンブリをロードするときのログが例外のメッセージに含まれてないか?

928 名前:デフォルトの名無しさん mailto:sage [04/09/20 00:43:45]
今その環境がなくて詳しいことはかけません。
ただconfigファイルを使わずにGACに登録していれば正常に起動はできていましたので、
configファイルの記述ミスではないだろうかと思っています。


929 名前:デフォルトの名無しさん mailto:sage [04/09/20 00:50:17]
アセンブリをロードしようとしてるときのログを見れば、
どんなパスからロードしようとして失敗したかがわかるはず。
確かロード関連で例外が出たときにはメッセージに含まれてたと思うが、
もし出てない場合はfusionlogってな名前のログを見ればいいんだったかな、たしか。


930 名前:デフォルトの名無しさん mailto:sage [04/09/20 01:05:43]
おおー参考になります
まずはどのパスを確認しにいってるのか、そのログで確認してみます。


931 名前:デフォルトの名無しさん mailto:sage [04/09/20 01:33:02]
>>923
スンマソ
一番大事な事書き忘れてました
”別スレット”゙のWndProc書き換えです

グローバルフックはVB.NETでは出来ないみたいですね



932 名前:デフォルトの名無しさん mailto:sage [04/09/20 03:24:47]
出来るから

933 名前:デフォルトの名無しさん mailto:sage [04/09/20 09:24:13]
ヘルプには出来ないって書いてるしなぁ
うーん

934 名前:デフォルトの名無しさん [04/09/20 11:16:26]
ていうか
>”別スレット”゙のWndProc書き換えです

コレ、何言いたいのかサッパリわかんないんだが俺だけか?

935 名前:デフォルトの名無しさん mailto:sage [04/09/20 12:56:54]
>>934
自前のアプリから、メモ帳とかに入力されたキーボード入力やマウスの動きを横取りしたいって事デス




936 名前:デフォルトの名無しさん mailto:sage [04/09/20 13:00:04]
スレッドとプロセスの区別がついとらん。

937 名前:デフォルトの名無しさん mailto:sage [04/09/20 14:27:24]
だめか。

938 名前:デフォルトの名無しさん mailto:sage [04/09/20 15:14:43]
>>935
helpにも書いてある通り.NETでは無理。VC++でDLL作成するなら可能

ttp://www.kumei.ne.jp/c_lang/sdk2/sdk_161.htm

939 名前:913 mailto:sage [04/09/20 17:00:22]
何でもいい、憶測でもいいから。
誰か答えてください。

940 名前:デフォルトの名無しさん mailto:sage [04/09/20 19:01:48]
よし、俺が答えてやろう

 まずは、色々と勉強してこい
 話はそれからだ

941 名前:デフォルトの名無しさん mailto:sage [04/09/20 19:34:50]
ListViewコントロールってユーザが編集できるのはTextだけ?
SubItemsの中身も編集できるようにしたいんだけど、無理ぽ?

942 名前:901 mailto:sage [04/09/21 13:47:08]
901です。教えてください。

MSDN Onlineのサンプルとか見ながらExtensibility2インターフェースの
OnAddInsUpdate、OnStartupComplete、OnBeginShutdown、OnConnection、OnDisconnection
の各メソッドを実装して、できたdllをCOM登録するところまではやったんだけど、
いざOutlookでCOMアドインを追加しようとすると
hogehoge.dllは有効なOfficeアドインではありません。
ってエラーになるんだけど、なんでかな。

ほかに何が必要ですか?

943 名前:デフォルトの名無しさん mailto:sage [04/09/21 21:33:53]
委託先企業・・・どこだろ

944 名前:デフォルトの名無しさん mailto:sage [04/09/21 21:35:11]
はげしく誤爆。スマソ

945 名前:デフォルトの名無しさん [04/09/22 00:11:22]
たとえばwavファイルをバイナリで開いて編集するのって、
いったいどうやるんですか??><



946 名前:デフォルトの名無しさん mailto:sage [04/09/22 01:42:45]
>>945
jpgをバイナリで開いて編集するよりむずかしい。

947 名前:デフォルトの名無しさん [04/09/22 02:09:57]
>>946
たとえが悪かったみたいです^^;
軽いファイルを、16進数でダンプ表示させたいんですけど、調べても調べても・・・
助言くださるととてもありがたいです><

948 名前:デフォルトの名無しさん mailto:sage [04/09/22 10:51:27]
>>947
簡単に見つかるはず。もっと探せ。

949 名前:デフォルトの名無しさん mailto:sage [04/09/22 10:52:10]
>>947
0から15を16進表示、というのは出来るのか?

950 名前:899 [04/09/22 12:35:14]
>>947
>調べても調べても・・・
絶対ウソだと思うこれ。そうでなければよほど…(自主規制

www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconstandardnumericformatstrings.asp

951 名前:デフォルトの名無しさん mailto:sage [04/09/22 14:17:19]
>947
www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/dnguinet/htm/drguinet09042001.asp
まさかな・・・

www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&q=vb%2Enet+%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB+%E3%83%80%E3%83%B3%E3%83%97
4つめ・・・

952 名前:デフォルトの名無しさん mailto:sage [04/09/23 00:59:14]
textboxの入力チェックにvalidatingイベントを使用しています
tabやボタンのクリック時にはちゃんとチェックできるのですが

formのkeypreview=trueでformのkeydownイベントで
If e.KeyCode = Keys.F1 Then
MessageBox.Show("f1")
End If

とすると、textboxのvalidatingイベントは素通りしてしまってチェックできません
何かいい知恵ないでしょうか?
別にチェックするルーチン作ってやるしかないのでしょうか?


953 名前:デフォルトの名無しさん mailto:sage [04/09/23 01:40:54]
素通りってあんたどのタイミングでチェックされるかわかっていってるか?

954 名前:デフォルトの名無しさん mailto:sage [04/09/23 02:06:21]
>>953
textboxのleaveイベントの直後にvalidating

素通りするのは仕様だから仕方ないですけど
上のコードのようにformでキー拾って更新ってありがちな処理ですけど
皆さんはどうやってデータチェックしてるのかなと

チェックする関数作ってvalidatingと更新前と呼び出ししたりしてるのかな?

955 名前:デフォルトの名無しさん mailto:sage [04/09/24 12:52:45]
ちょっと質問

www.microsoft.com/japan/msdn/scripting/default.asp
のScriptControlってVB.NETでも使えますか?
VB6.0の頃は使えてたんだけど、VB.NETでどうなのか知りたいです



956 名前:デフォルトの名無しさん mailto:sage [04/09/24 23:09:30]
NOTIFYICONDATAの構造体にhIconがあるんですが
あれは何で宣言すればいいのでしょうか?
As Iconで宣言すると
型 NOTIFYICONDATA のフィールド hIcon を集成できません : このフィールドの型の定義にレイアウト情報がありません。
というエラーが出るし、Icon以外で宣言しようとすると型が違うって
言われます。

分かる方よろしくお願いいたします。

957 名前:デフォルトの名無しさん mailto:sage [04/09/25 00:25:31]
>>956
IntPtr。Icon の Handle プロパティにある奴ね。

958 名前:デフォルトの名無しさん mailto:sage [04/09/25 04:22:57]
>>957

どうにかコンパイルは通りましたが、
実行中にエラーが出てしまいます。

Dim udtNotifyIconData As New NOTIFYICONDATA
Dim lngResult As Long

With udtNotifyIconData
.cbSize = Len(udtNotifyIconData)
.hwnd = Me.Handle
.uID = 0
.uFlags = NIF_MESSAGE Or NIF_ICON Or NIF_TIP
.uCallbackMessage = WM_MOUSEMOVE
.hIcon = Me.Icon.Handle
.szTip = "Title" & vbNullChar
Me.Visible = False
End With
lngResult = Shell_NotifyIcon(NIM_ADD, udtNotifyIconData)

こういった感じでタスクトレイに表示させる命令を書いているんですけど、
hIconの命令がうまくいきません。

書き方が間違っていると思うんですけどもうお手上げ状態です。

よろしければご教授よろしくお願いいたします。

では、

959 名前:デフォルトの名無しさん mailto:sage [04/09/25 11:56:33]
タスクトレイのアイコンならNotfiyIconコントロールを使えば簡単に表示できるのに・・・

960 名前:デフォルトの名無しさん mailto:sage [04/09/25 15:09:33]
958です。

>>959
うお、.Netってこんな便利なコントロールがあったんですか!
thxです。早速使ってみます。

961 名前:デフォルトの名無しさん mailto:sage [04/09/25 20:59:34]
.NETcompactFrameworkでシステムフォルダを取得するには?
System.EnvironmentもSystem.Windows.Forms.Applicationも役にたたんかった・・orz

962 名前:デフォルトの名無しさん mailto:sage [04/09/25 22:26:42]
part3-5の過去ログ持ってる方いたらどっかupしていただけないでしょうか?


963 名前:デフォルトの名無しさん [04/09/25 23:51:40]
VBでサービスが作れると聞き、早速、本を買い込んで試してみました。
本によれば、「Windowsサービス」プロジェクトを選択するはずなのですが、
うちにあるVisual Studio .NET2003では作れません。
なぜ?VBだけのを買ったから?
それとも、なにか別途インストールが必要なのか?
どなたかご教授下さい。
よろしくお願いします。



964 名前:最凶VB厨房 mailto:sage [04/09/26 00:02:27]
おそらくVBだけのを買ったからだろう。
が、まぁここでも
ja.gotdotnet.com/quickstart/howto/doc/SimpleService.aspx

965 名前:デフォルトの名無しさん [04/09/26 18:30:05]
Treeviewコントロールのノード部分にマウスカーソルをホバー
させたときに、マウスカーソルを手の形に変えたいと考えて
います。しかし、Treeviewコントロールの上にホバーしたとき、
というのはできるんですが、ノード部分のみ、という処理の
仕方が分かりません。ご教授のほど、よろしくお願いします。



966 名前:デフォルトの名無しさん mailto:sage [04/09/26 21:41:12]
odbcデータアダプタの新しい接続でoracleを選ぶとこのバージョンではアクセスと
SQLサーバが選べますみたいなメッセージ出るのだけど、これはVB.netスタンダード版
だからでしょうか(結局オラクルは選べないってことですか?)
オラクルは8iです

967 名前:デフォルトの名無しさん [04/09/28 03:24:01]
Visual Basic を手に入れたんですが、どうやったらゲームを作れるのでしょうか?
初心者というか何も知らない状態です。
いろんなスレやサイトを見たのですがさっぱりわかりません。

本などを見てみたのですがライブラリというのがなければつくれないんですか?
また、ライブラリを手に入れる方法、使い方を教えてください。



968 名前:デフォルトの名無しさん mailto:sage [04/09/28 03:42:26]
くぎと金槌を手に入れたんですが、どうやったら家が建てられるでしょうか
初心者(ry

969 名前:デフォルトの名無しさん mailto:sage [04/09/28 09:53:16]
ファイル読み込みのときに指定したレコードのデータを読みたいのですが
どうやって指定すればよいのでしょうか。
それとも、順番に読み込んでいく方法でしかできないのでしょうか?

970 名前:デフォルトの名無しさん mailto:sage [04/09/28 13:06:52]
どうしてもプリンタの用紙サイズとそのIDが必要なので、
(標準のサイズではcustomになるため不可)

<DllImport("winspool.drv", EntryPoint:="DeviceCapabilitiesA", _
CharSet:=CharSet.Ansi, ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)> _
Public Shared Function DeviceCapabilities(ByVal lpDeviceName As String, ByVal lpPort As String, ByVal iIndex As Integer, ByVal lpOutput As Integer, ByVal lpDevMode As Integer) As Integer
End Function
Private Const DC_PAPERS As Integer = 2
Private Function GetPaperInfo() as Integer
Dim ptr As New IntPtr()
Dim rc as Integer
rc = DeviceCapabilities(vstrDevName, vstrPortName, DC_PAPERS, ptr, 0)

とまではいくのですが、ここからコピーできません(涙)
WORDの配列が帰ってくるはずで、戻り値も悪くないのですが・・・


971 名前:デフォルトの名無しさん mailto:sage [04/09/28 18:22:39]
すみませんが、VB.NETで使用するSpreadに関する質問はここでよろしいでしょうか。

972 名前:971 mailto:sage [04/09/29 10:56:36]
駄目なようですね、すみませんでした。

973 名前:デフォルトの名無しさん mailto:sage [04/09/29 11:26:37]
ずいぶんと我慢の出来ない奴だな

974 名前:971 mailto:sage [04/09/29 11:50:36]
>>973
人が多そうな夜を挟んでも返答がなかったので、てっきり駄目かと……

975 名前:デフォルトの名無しさん mailto:sage [04/09/29 16:10:50]
>>974
ム板は平日昼間のほうが多い。



976 名前:教えてください。。。 [04/09/29 23:25:52]
リッチテキストボックスに表示されたhtmlのソースから
全てのfontタグを削除するコードを記述したいのですが、
fontタグを構成する文字列は固定されておらず、
"<font size=-1>"や、"<font color=#000000>"や、
"<font FACE="明朝">"など無数にあるために困っています。

"<font"とその直後に登場する">"との間の文字列を
""で置換すればよいと思うのですが、
一体どのようなコードを記述すればよいのでしょうか。

ご教示ください。

977 名前:デフォルトの名無しさん [04/09/29 23:44:03]
>>976
正規表現

978 名前:デフォルトの名無しさん mailto:sage [04/09/30 13:55:25]
Spreadの事で質問なんだけど、
TypeFloatSepCharとかTypeFloatDecimalPlacesとかのType〜って.NETだと何に置き換わってる?
ヘルプの相違点で調べたんだけど、載ってなかったから。
よろしくお願いします。

979 名前:デフォルトの名無しさん [04/09/30 14:10:44]
WindowsXPproでVisual Studio.Net2002のVB.NETを使っているのですが、
datagridの行と行の間の、各行の幅を調節するところでダブルクリックをすると、
------------------------------------------------------------------------------------------
'System.ArgumentOutOfRangeException' のハンドルされていない例外が mscorlib.dll で発生しました。

追加情報 : インデックスが範囲を超えています。負でない値で、コレクションのサイズよりも小さくなければなりません。
--------------------------------------------------------------------------------------------
というエラーが出てForm1の
Option Explicit On
Public Class Form1←ここで止まってしまいます。
しかも、すべてのdatagridでこのエラーが出るわけではなく、出るやつと出ないやつがあったりします。
ネットで調べたらttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=12359&forum=7&0に同じようなエラーの質問があったのですが、
ここで書かれているように設定段階でほぼまったく同じように設定したものでも、エラーになったりならなかったりします。
プログラムの中で調べようにもブレークポイントをどこに設定すればいいかもわからず、お手上げ状態です。
どうやればこのエラーを回避できるでしょうか?
よろしくおねがいします。

DBはaccess2000でoledbdataadapterをもちいてデータを受け取っています。

980 名前:デフォルトの名無しさん [04/09/30 18:59:11]
OS: Win2K Pro
VB .NET 2003を使ってるのですが、
作ったソフトを別PCで起動するとこんなエラーがでるのですがどうしたらいいんでしょうか?
(開発しているPCでは起動できる)

hp.vector.co.jp/authors/VA030428/ss/error.png

981 名前:デフォルトの名無しさん mailto:sage [04/09/30 19:51:45]
>>980
この辺一通り読んでみては?
www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconcodeaccesssecurity.asp

982 名前:デフォルトの名無しさん mailto:sage [04/09/30 20:31:34]
>>980
事故解決しました

つーか馬鹿でした。

983 名前:デフォルトの名無しさん mailto:sage [04/09/30 22:53:58]
スクリーンキャプチャーを撮る方法ってある??

984 名前:デフォルトの名無しさん [04/10/01 00:58:55]
>>983
通報しました

985 名前:デフォルトの名無しさん mailto:sage [04/10/01 01:04:17]
>>983
通報しましたー



986 名前:デフォルトの名無しさん mailto:sage [04/10/01 02:24:24]
>>983
Close()






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<296KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef