09/09/23 19:02:15
なんでそんな仕様にするの?って聞かれたから理由を言ったんだ。キリッ
じゃねーよw
332:デフォルトの名無しさん
09/09/23 19:15:52
システム部を持たない会社が「おい、おまえパソコン詳しいよな」みたいなノリで
社員に社内向けツールを作らせようとするとそんな要求仕様になりやすいな(経験者談)
333:デフォルトの名無しさん
09/09/23 19:20:12
まあ、率直にいってそういうことがしたいなら、
今はUSBドングル使ってシステムをロックする製品なんてのもあるみたいだから
そういうのを使った方が確実だろうね。
それ以前に、まあ普通は隠蔽したいものは何らかのデータなんだろうから、
そういうことなら暗号化すりゃいいだけだね。
しかし、そんな信頼できない奴がシステム管理者ってのがそもそも間違ってる気もしますが。
334:デフォルトの名無しさん
09/09/23 20:39:25
>>330
ごめんそっち勉強するよ。
>>331
いやそんなつもりはw
とりあえずできないのはわかったんでやめます。
ありがとうございました。
335:デフォルトの名無しさん
09/09/24 21:34:44
すいません 教えてください
マウスの移動で線を描画したいのですが pictureboxでdrawlineで書いていますが 太さを1以上にすると
汚い描画になります、VB6のときはこんなことはなかったのですが、どなたか教えてください
336:デフォルトの名無しさん
09/09/24 21:36:30
Graphics のプロパティをいろいろ調べてみれ。
337:デフォルトの名無しさん
09/09/24 22:57:22
>>336
SmoothingMode はいくつか試しましたが、だめでした。
太さを大きめにすると目立ちます
なぜだろう? もっと違うところ?
338:デフォルトの名無しさん
09/09/24 23:59:51
これ見てダメならあきらめろ。
URLリンク(dobon.net)
339:デフォルトの名無しさん
09/09/25 00:07:04
>>338
いっちゃ悪いけどそういうトンマな回答もどうかね。
「VB6のときはこんなことではなかった」と言っているから、
そういう問題ではないはずだ。
>>335
「汚い描画」なんていう抽象的な表現では誰にも問題が正確に伝わらない。
こういう場合は(というよりほとんどの場合そうあるべきだが)くどいぐらいに
具体的に君の問題を表現しなきゃダメだよ。
340:デフォルトの名無しさん
09/09/25 00:13:13
>>339
わからないならレスしないでください。
341:デフォルトの名無しさん
09/09/25 00:34:38
御託はいいからコードを出せ、ってことだな。
342:デフォルトの名無しさん
09/09/25 00:36:18
まず問題あるっていうコードを出すのがスジだな。
343:デフォルトの名無しさん
09/09/25 03:04:53
汚い描画してるからじゃね?
344:デフォルトの名無しさん
09/09/25 07:08:26
>341
Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
'position
Dim POS_X As Integer
Dim POS_Y As Integer
Dim g As Graphics
g = PictureBox1.CreateGraphics()
' Create a new Pen object.
Dim Pen As New Pen(Color.Green)
' Set the width to 10.
greenPen.Width = 10
If e.Button = Windows.Forms.MouseButtons.Left Then
g.DrawLine(Pen, POS_X, POS_Y, e.X, e.Y)
End If
POS_X = e.X
POS_Y = e.Y
' Dispose of the custom pen.
Pen.Dispose()
End Sub
345:デフォルトの名無しさん
09/09/25 07:10:04
>344 一部ミス
Public Class Form1
Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
'position
Dim POS_X As Integer
Dim POS_Y As Integer
Dim g As Graphics
g = PictureBox1.CreateGraphics()
' Create a new Pen object.
Dim Pen As New Pen(Color.Green)
' Set the width to 10.
Pen.Width = 10
If e.Button = Windows.Forms.MouseButtons.Left Then
g.DrawLine(Pen, POS_X, POS_Y, e.X, e.Y)
End If
POS_X = e.X
POS_Y = e.Y
' Dispose of the custom pen.
Pen.Dispose()
End Sub
End Class
346:デフォルトの名無しさん
09/09/25 09:50:06
ボリューム・シャドウ・コピーをVB.NETで行うには
どうやったらいいでしょうか?
347:デフォルトの名無しさん
09/09/25 17:58:49
Dim threads(n) As Threading.Thread
threads(0) = New Threading.Thread(AddressOf Foo)
threads(1) = New Threading.Thread(AddressOf Hoge)
・・・
For Each thread As Threading.Thread In threads
thread.IsBackground = True
thread.Start()
Next
でスレッドを作っています。
この後どれかのスレッドが終了するまで待って、その後全てのスレッドを終了させるにはどうしたらいいでしょうか?
(WIN32APIでいうところのWaitForMultipleObjectです)
348:デフォルトの名無しさん
09/09/26 01:22:31
TrackBarコントロールでマウスをクリックしたときに、
その座標が目盛りのいくつなのかを取得したいのですが、
方法を御存知の方、いらっしゃいましたら教えてください。
349:デフォルトの名無しさん
09/09/26 03:07:38
スレッド自体からはWaitHandle取れないみたいだから、
ManualResetEvent1個用意しといて
各スレッドは終了時にSet
かつ随時タイムアウトなしでWaitしてSetされてたら終了
呼び出し側は単にWait
でいいんじゃね?
まあ効率を気にするなら各スレッドでのチェックのために
終了フラグ一個追加した方がいいかも知れんが。
350:デフォルトの名無しさん
09/09/26 03:08:28
>かつ随時タイムアウトなしでWaitしてSetされてたら終了
タイムアウトなしじゃなくて0指定の間違い。
351:デフォルトの名無しさん
09/09/26 11:03:31
オレはそんなに沢山のスレッドを作って何がしたいのかが知りたい
352:デフォルトの名無しさん
09/09/26 12:33:25
そんな面倒なことしなくてもベタにやるだけだと思うけど・・・
全スレッドを終了するメソッドを用意して、各スレッド内の処理の最後で
それを呼び出すようにするだけじゃん。
悩むような問題かね。
353:デフォルトの名無しさん
09/09/26 15:31:50
MSChartでY軸を右側にしたいのでYAxisTypeをSecondaryに設定すると
AxisY2.MinimumとMaximumは自動でセットされないんだね。
Primaryなら自動でセットされるのに。
これって仕様?
なんか理由があるんだろうか?
354:デフォルトの名無しさん
09/09/26 16:02:16
>全スレッドを終了するメソッドを用意して、各スレッド内の処理の最後で
>それを呼び出すようにするだけじゃん。
そのコード書いてみな。
絶対問題ありのコードになるから。
355:デフォルトの名無しさん
09/09/26 16:26:19
>>354
そりゃトンマなお前さんが書けばそうなるんじゃないの。
俺に言わせりゃ、こんなので問題起こす奴の方がオカシイと言わざるを得ない程度の、
超初歩的な内容だと思うけど。
356:デフォルトの名無しさん
09/09/26 16:28:52
>>353
事故レスだけど
IsStartedFromZeroの設定でした^^;
357:デフォルトの名無しさん
09/09/26 16:30:29
>>355
だから書いてみてよ。
全部のスレッドを終了するメソッドを問題ないように書いてみなよ。
358:デフォルトの名無しさん
09/09/26 16:39:46
>>357
逆にチミが「問題」が発生するコードを書いてみれば?w
俺は馬鹿に説明するためにそれなりに長くならざるをえないサンプルコードを
書くなんてまっぴら御免だけど、ダメなコードのどこがダメでどう直せばいいかを
解説するぐらいの手間は払うよ。
359:デフォルトの名無しさん
09/09/26 16:44:20
あーつまり書けないのか?かけるんなら書けよ。
超初心者でも間違う方がおかしいコードなんだろ。
すぐ書けるだろ。
俺は>>349辺りでどうかなって書いたんだからさ。
まあ絶対書かないよな、お前そういう奴だよ。
>俺に言わせりゃ、こんなので問題起こす奴の方がオカシイと言わざるを得ない程度の、
>超初歩的な内容だと思うけど。
いきなりこういう反応をするやつで、自分からまともに何かを示すやつを見たことがない。
何を言ってもはぐらかすだけで、自分からは絶対に書かないんだよ、
360:デフォルトの名無しさん
09/09/26 16:46:53
単純に字義通りに取った場合、最初のスレッドの処理が終わったら
他のスレッドの処理が途中であっても終了するということになる。
それを指摘してるんだろ。
361:デフォルトの名無しさん
09/09/26 16:49:00
>>359
俺は「かけるんなら書くべき」なんていう妙な価値観を持ってない。
もちろん君がそういう価値観を持つのは勝手ではあるが、
その価値観を他人に振りかざして無理強いする前に、君自身が自分の価値観を
実践したらどうなのか。
362:デフォルトの名無しさん
09/09/26 16:50:28
>>360
誰に向かって何が言いたいの?
363:デフォルトの名無しさん
09/09/26 16:55:40
>>358
クソワロタ
どんなコードをイメージして簡単だと言ったのかなんて>>358以外分からん
364:デフォルトの名無しさん
09/09/26 16:56:30
>>362
>352に対して、言葉は正しく正確にと。
365:デフォルトの名無しさん
09/09/26 17:00:25
>>364
>>360がそんな偉そうなことが言えるような文章なのか。
366:デフォルトの名無しさん
09/09/26 17:06:15
まあ、汎用的な用途を考えるんじゃなくてスレッドの処理内容を全部自分で書くなら
全部のスレッドを強制終了させるようなコードでもまずまず問題はおこらならいだろうと期待はできるけど、
普通にスレッドを扱うようなプログラムを書くやつは、そもそもスレッドを強制終了させようなんて発想しないよね。
>>349みたいなやり方を発想するのがごく普通というか常識な感覚であって、
>>352みたいな発想は出てこない。
>>352みたいな発想はまともにマルチスレッドのプログラムを書いたことがないようなやつの
典型的な発想パターンだよね。
367:デフォルトの名無しさん
09/09/26 17:10:18
>>366
俺はスレッドをアボートする、なんて一言も書いてないが。
先に「問題」があるコードをまず提示しろ、って言ってるのはそのあたりの
微妙な問題もあるからなんだけどね。
368:デフォルトの名無しさん
09/09/26 17:12:21
アボートする以外にどうやって全部のスレッドを終了するメソッドを書くのか教えてくれ。
369:デフォルトの名無しさん
09/09/26 17:13:46
>>368
だから、そんなものはスレッド内の処理に依存する問題であって、
一意にこうだ、なんて言えない。
だから先に「問題」があるコードを提示しろと言ってる。
370:デフォルトの名無しさん
09/09/26 17:14:17
>>367
基地外だなこいつ。
>先に「問題」があるコードをまず提示しろ、って言ってるのはそのあたりの
>微妙な問題もあるからなんだけどね。
>俺に言わせりゃ、こんなので問題起こす奴の方がオカシイと言わざるを得ない程度の、
>超初歩的な内容だと思うけど。
おいw
371:デフォルトの名無しさん
09/09/26 17:16:16
>>370
意味がわからん。
372:デフォルトの名無しさん
09/09/26 17:19:06
>>369
だんだんこいつが何を言ってるのか分からなくなってきた
>そんな面倒なことしなくてもベタにやるだけだと思うけど・・・
>
>全スレッドを終了するメソッドを用意して、各スレッド内の処理の最後で
>それを呼び出すようにするだけじゃん。
>悩むような問題かね。
そのやり方を教えろってんだよ。
>>349に対して
>そんな面倒なことしなくてもベタにやるだけだと思うけど・・・
なんだったらもっとシンプルなべたな方法があるんだろ?
スレッドをアボートしない方法でそんな方法は思いつかないが。
373:デフォルトの名無しさん
09/09/26 17:22:34
>>372
スレッドをアボートするのとスレッドを終了させることはイコールじゃないよ。
こんなことから説明しなきゃならんのかよ。
例えばスレッドの中身が単純なwhileループなら、外からループ条件をfalseに
設定してやればスレッドは終了する。
っていうか、>>347の問題とスレッドの終了方法は直接関係がない。
374:デフォルトの名無しさん
09/09/26 17:26:42
だからそれってほとんど>>349だろ?
それよりもベタな簡単な方法が、
「全スレッドを終了させるメソッドを最後に呼ぶ」
なんだろ?
かつその方法はアボートしないんだろ?
じゃあどうすんの?
375:デフォルトの名無しさん
09/09/26 17:28:25
>>373
>>349見たら明らかだがどうみてもそんなこと分かってるっていうか最初からそう書いてる。
376:デフォルトの名無しさん
09/09/26 17:28:27
単純化して言えば、>>347の問題は>>352に書いたとおり、
各スレッドを終了させる方法(メソッド)が用意されていれば、
全てのスレッドに対応するそのメソッドを呼び出すメソッドを作って、
それを各スレッドの一番最後の処理から呼び出すようにするだけ。
もちろん、自分のスレッドの終了を待つような馬鹿なミスを犯して
デッドロックしないよう注意は必要だよ。
377:デフォルトの名無しさん
09/09/26 17:36:45
>単純化して言えば、>>347の問題は>>352に書いたとおり、
>各スレッドを終了させる方法(メソッド)が用意されていれば、
>>354
>各スレッドを終了させる方法(メソッド)が用意されていれば、
www
そのメソッドを示さないと悩むだろw
>悩むような問題かね?
ってんだからさ、悩まないようにしてやれよ。
>各スレッドを終了させる方法(メソッド)が用意されていれば、
>全てのスレッドに対応するそのメソッドを呼び出すメソッドを作って、
>それを各スレッドの一番最後の処理から呼び出すようにするだけ。
>
>もちろん、自分のスレッドの終了を待つような馬鹿なミスを犯して
>デッドロックしないよう注意は必要だよ。
これが、>>349に対して、
>そんな面倒なことしなくてもベタにやるだけだと思うけど・・・
の面倒なことしないベタなやり方なんだな。
378:デフォルトの名無しさん
09/09/26 17:38:19
一番笑えるのは全部後だしでヒントが出た瞬間に反応してくることだな。
379:デフォルトの名無しさん
09/09/26 17:39:50
メインスレッドで終了フラグ立ててサブスレッドは
そのフラグが立ってれば終了すればいいんじゃないの?
380:デフォルトの名無しさん
09/09/26 17:42:33
>>376
>もちろん、自分のスレッドの終了を待つような馬鹿なミスを犯して
>デッドロックしないよう注意は必要だよ。
デッドロックって言葉が思いついたのか?
この話の流れでは自分自身の終了を待つなんて状況自体が発生しないはずだけどな。
それとも>>376のどこかで終了を待つようなコードを書いてしまう可能性があるのかい?
どこで書くんだろうなそんなこと。
381:デフォルトの名無しさん
09/09/26 17:47:42
他所でやれ
382:デフォルトの名無しさん
09/09/26 17:47:54
>>379
メインからは分からないから終了フラグは立てられない。
だから、終了フラグみたいなのを立てるのはスレッド側になる。
>>349のようにイベントを使うか、
もしくはフラグだけにしてメインからは全スレッドにJoinするか、くらいだな。
まあイベントの方が普通なやり方だけど。
Joinだと結局全スレッドが終わるのを待つ感じになるからね。
383:デフォルトの名無しさん
09/09/26 17:56:39
どう見ても>>352が素人で病気
以上、終了
384:デフォルトの名無しさん
09/09/26 18:25:35
>>380
ダメグラマらしい意見だね。
全てのスレッドを終了させるメソッドは、それ自身が終了させようとする
スレッドの中の一つから呼ばれる。
スレッドの終了処理は、実際にターゲットのスレッドが終了したかどうかの
確証をするのが普通だから、例えばそれをベタにJoin()を使って行うとデッドロックする。
385:デフォルトの名無しさん
09/09/26 18:27:55
っていうか、結局起こりうる「問題」って何のことなのかね。
まったく意味がわからん。
386:デフォルトの名無しさん
09/09/26 18:33:59
普通じゃないし今回の話でも確証なんて意味がない。
止まらない可能性まで考慮するならそもそもJoinなんて使っちゃダメで
自分自身だからどうという話ではない。
まだ続ける気?
なら>>352の例を示してほしいんだがな。
387:デフォルトの名無しさん
09/09/26 19:07:39
>>385
>>349に対して>>352で面倒なことしなくてもって言ってるんだから
しかもスレッドを終了させるって言ってるんだから、
普通に考えればアボートすると言ってるとしか読み取れない。
本来そんな事しないでもすむのにスレッドをアボートするってだけで既に問題ありとされるのが普通。
スレッド使う上での常識としてね。
で、どっちにしても書き方からスレッドに関して素人なのが明らかだから、
コード書かせりゃそれ以外にもどっかに問題あるコードになる可能性が高いと思ってな。
まあ必要ないのにアボートする時点で常識的に問題ありとみなしていいレベルだが。
まさかフラグ立ててスレッド側で監視しつつ終了待機するメソッド作るのが>>349よりベタとは思わないし、
フラグ立てるだけなら普通スレッドを終了するメソッドとは言わないし
そもそもメソッドにするだけで面倒が増えてるだけ。
>>349ですら面倒で、よりベタとなるとアボートするくらいしかない。
ってのが>>354の意図。
ああ長い。
388:デフォルトの名無しさん
09/09/26 19:15:15
まあ正直いうと単に>>354みたいに書いたら
どっかでボロを出すかと思ったのも有るけどな。
>>352も微妙な問題があるって自分で言ってるんだから、
本人じゃないならあとは>>352に微妙な問題について聞いてくれよ。
389:デフォルトの名無しさん
09/09/26 19:18:48
>>387
なーんか2ch脳らしい強引な物の言い方だね。
何度も言うように
スレッドの終了 ≠ スレッドのアボート
君が両者をイコールだと思うのは完全に勝手だが、
「俺にスレッドの終了=スレッドのアボートだと思わせるのはお前のせい」
みたいな自己中心的な物言いをされても、「恥を知れ」以外に返す言葉がない。
まあ、>>352の発言が言葉が足りずミスリーディングなのは認めるけど、
要は、スレッドで実行したい処理をクラスでラップする「ベタ」な方法を取るべきであって、
>>349的なスパゲティーコードはよくないって事だよ。
390:デフォルトの名無しさん
09/09/26 19:31:52
お前>>349のやり方の意味分かってるのか?
かなりベタでスパゲッティとかいうようなやり方じゃないぞ。
だいたい>>349はプリミティブレベルの考え方に近いもので
クラス化するとかどう書くかは別にやりたきゃ好きにしろってレベルだぜ。
つかクラスでラップってまたいきなり初めて出てきたな。
>>352がそういう意図ってお前エスパーでも相手にしてるのか?
流石にそのベタなコードとやらを示してもらわないと分からない。
あっ余計な事言ったか、またループだな。
391:デフォルトの名無しさん
09/09/26 19:35:23
スレッドで実行したい処理をクラスでラップする、なんていうのは、
「ベタ」、つまり説明不要の定石だから説明しなかったまで。
っていうか、もういいわ別に。
一人かどうか知らんけど君みたいな馬鹿言い負かしても意味ないし。
392:デフォルトの名無しさん
09/09/26 19:38:21
こんな感じ?待っていれば他のスレッドも終了するという前提だけど。
Static testArr() As Boolean = New Boolean() {False}
SyncLock testArr
Dim testRes As Boolean = testArr(0)
testArr(0) = True
If testRes Then Exit Sub
End SyncLock
For Each thread In threads
If Not Object.ReferenceEquals(thread, thread.CurrentThread) Then
thread.Join()
End If
Next
testArr(0) = False
393:デフォルトの名無しさん
09/09/26 19:53:18
>>391
今回は元々やりたい処理がそれぞ別メソッドになってるけど、
それでも「処理」をクラスでラップするのが常識かな?
一般に処理をクラスでラップするのが常識なのは、
処理に必要なデータをクラス側で管理するためで
今回のはどちらかと言えばスレッドの制御をクラスの機能として実装し、
処理はデリゲートとしてスレッド制御のクラスに渡すってのが普通な気がする。
C#なら匿名メソッドやらラムダ式使えばすごいシンプルに出来るんだがな。
今のVBって複数行のラムダ式使えたっけ?
次のバージョンからだったかな?
394:351
09/09/26 20:17:09
だから~、沢山スレッド作っておいて一等賞を取ったスレッド以外を
終了させるなんていったい何がしたいんだ~?
395:デフォルトの名無しさん
09/09/26 21:13:59
>>391
>スレッドで実行したい処理をクラスでラップする、なんていうのは、
>「ベタ」、つまり説明不要の定石だから説明しなかったまで。
>>347のでどうやんだよこれ…?
396:347
09/09/26 21:22:45
盛りあがってますね
>>349の方法でやってみます。ありがとうございました。
>>351
最小で1つ、多くてもせいぜい3つぐらいなんですけどね>スレッド数
内容は禁則事項です♪
397:デフォルトの名無しさん
09/09/26 22:45:23
そんなスパゲッティで面倒な方法はだめだ。
>>352
>>376
>>389
>>391
を見てクラスでラップする「ベタ」な方法でやるんだ。
こんなの定石だから>>351はあえて教えてくれないぞ。
コードができたら問題点を指摘してくれるから見せてみるんだ。
398:デフォルトの名無しさん
09/09/26 22:49:50
言っとくがこんな超初歩なところで問題あるコードなんて書いたら
ちょっとオカシイってことだからな、超初歩以前に君がおかしくないかがためされるんだぞ。
心してかかるんだ。
399:デフォルトの名無しさん
09/09/26 22:54:17
そろそろウザイ。
400:デフォルトの名無しさん
09/09/26 23:16:42
テンプレ
Q. ~のやり方を教えてください
A. クラスにラップしてベタに書け
401:デフォルトの名無しさん
09/09/27 03:41:35
デリゲートでマルチスレッドし、AsyncCallbackでコールバック関数で残りすべてのスレッドを終了させればOK
402:デフォルトの名無しさん
09/09/27 09:27:16
>>401
BackgroundWorkerでよいのじゃないか
403:デフォルトの名無しさん
09/09/27 11:06:32
ダメとは言わないが向いてないね。
意味がない。
404:デフォルトの名無しさん
09/09/27 13:13:46
>>401
AsyncCallback関数の中をどうやって実装するのだろう?
なんか振り出しに戻る予感。。
405:デフォルトの名無しさん
09/09/27 13:49:39
BackgroundWorkerが一番楽だと思う。
WorkerCompleteあるし、CancelAsyncあるし。
>>401は、どうやってほかのスレッド終了させるんだろう。
406:デフォルトの名無しさん
09/09/27 13:50:11
結局大して変わらないよね。
407:デフォルトの名無しさん
09/09/27 13:52:23
>>405
どっちも大して変わらんて。
408:デフォルトの名無しさん
09/09/27 13:55:10
Environment.Exit()
409:デフォルトの名無しさん
09/09/27 13:56:59
VB2008の555だったかの究極?技?何とか言う本
立ち読みしてみたら酷かった。
この手の本はあんま進歩しないなあ。
ちゃんと理解してる内容だけ書けばいいのに。
.NET系って本に間違いが多すぎる気がする。
410:デフォルトの名無しさん
09/09/27 13:58:55
>>408
それだとプロセスが終了しちゃうじゃん。
411:デフォルトの名無しさん
09/09/27 13:59:05
>>347っぽいコードをそれぞれのやり方で書いてみれば
どれがやりやすいか、あまり差がないか
よく分かると思うぞ。
412:デフォルトの名無しさん
09/09/27 15:00:04
>>410
>>347は全てのスレッドを終了させると書いているので間違いではないな。
413:デフォルトの名無しさん
09/09/27 15:03:56
>>409
ドボンちゃんのサイト等があるのに今どきそんな本を買う人が居るのかね~?
414:デフォルトの名無しさん
09/09/28 16:08:22
詳しく
415:デフォルトの名無しさん
09/09/28 20:01:14
継承されるクラスを作成するときに
オーバーライドとイベント実装をどこで切り分けていますか?
416:デフォルトの名無しさん
09/09/28 20:02:24
>>414
ドボンを?
417:デフォルトの名無しさん
09/09/28 20:05:00
継承を前提にするんだったらイベントはいらん
継承しないで外からアクションを挿入するためにイベントを使うんだ
418:デフォルトの名無しさん
09/09/28 20:15:19
>>415,>>417
二人とも何を言ってるのか意味不明すぎる。
エスパー同士の会話なのかアーパー同士なのかどっちなんだ。
419:417
09/09/28 20:23:03
「継承されるクラスを作成」と書いてあるから,抽象クラスでも作ってるのかと思った
たぶん勘違い
Formの派生クラスを作ったときにFormのOnPaintをオーバーライドするべきかPaintイベントを使うべきか
というような話なら,一般的にはオーバーライドした方がいい(少なくともMSDNにはそう書いてある)
420:デフォルトの名無しさん
09/09/28 22:50:51
>>419
Formは必ず派生クラスで使うのにOnHogeとHogeイベントの両方があるのかって話し。
実行効率が良いのはOnHogeだけど使いやすいのはHogeイベントかなと。
だったらイベントだけで実装しても良いのではないかと思っただけです。
421:デフォルトの名無しさん
09/09/28 23:04:15
OnHogeはオーバーライドされるためだけにあるんじゃない。
派生クラスから基底クラスのOnHogeを呼ぶことでHogeイベントを発生させるためにも使われる。
.NETのガイドラインで決まってることだから黙って従え
422:デフォルトの名無しさん
09/09/28 23:15:33
>>420
まあ>>421みたいな教条主義もどうかと思うが、
自分で発生するイベントを自分で受信する、普通に考えれば間抜けチックなプログラミングを
「使いやすい」と感じるセンスには疑問を持った方がいいと思うよ。
それはおかしい。かなり変てこなセンスだ。
423:デフォルトの名無しさん
09/09/28 23:20:18
WPFになるとOnHogeを持たず派生クラスでもイベントハンドラを使うしかないイベントが多く出てくるよ。
まあWPFは設計が全然違ってて機構上そうなってるんであって
WinFormsではおとなしくOnHogeを使うべき。
424:420
09/09/28 23:25:16
オレの説明がとっても変だったか。。
仮想メソッドを使うかイベントデリゲートを使うかって話です。
便利と言うのはIDEがイベントを挿入してくれるから。
425:デフォルトの名無しさん
09/09/28 23:27:33
仮想じゃなくて抽象メソッドだった。
426:デフォルトの名無しさん
09/09/28 23:44:41
>>422
IDEとトータルで考えない方がセンスがないだろう。
全部イベントなのにフォームとコントロールでわざわざ使い分けるのがセンスがいいのか?
427:デフォルトの名無しさん
09/09/28 23:45:41
>>425
つまり、別の言い方をすればprotectedなイベントは有りかって話かな?
少なくとも.NETクラスライブラリの中にはあるね。
個人的はそういう方法を取りたい場面に当たったことがない。
428:デフォルトの名無しさん
09/09/29 11:14:14
>>424
継承と委譲の区別は出来てるか?
429:デフォルトの名無しさん
09/09/29 16:05:39
>>416
冗談w
430:デフォルトの名無しさん
09/09/29 20:06:10
>>428
抽象メソッドとデリゲートは結果的の同じだが。
431:デフォルトの名無しさん
09/09/29 21:44:31
イベントは引数の形式が決まってるだろ(従わないことも可能だが完璧なガイドライン違反)
テンプレートメソッド作る度にいちいちHogeEventArgsやHogeEventHandler用意すんの?
それに抽象メソッドなら派生クラスで実装することを強制できる
432:デフォルトの名無しさん
09/09/30 11:48:08
>>424
便利かなぁ…?
とりあえず overrides空白 まで入れればインテリセンスは利くわけだし。
>>430
つまり「よくわからない」ってことね。
そのフォームを他のフォームのインスタンスに含めるのであれば
いちいち派生させずともイベントを追加してやればいいし
常に派生させるんだぜ!というのなら Protected Overridable なメソッドを
用意してやればいい。
まあ両方用意しとくのが無難だし、>>422 には同意しとく。
>>431
>いちいちHogeEventArgsやHogeEventHandler用意すんの?
特に追加情報がなければ EventArgs をそのまま使えばいいし、
そーすっとデリゲートも
Public Event Hoge(ByVal sender As Object, ByVal e as System.EventArgs)
の一行で済む。
433:デフォルトの名無しさん
09/09/30 11:49:17
VB終了のお知らせ
URLリンク(gigazine.net)
434:デフォルトの名無しさん
09/09/30 19:09:43
なんでM$製のアンチウィルスソフツがVBに関係するのか、>>433には説明を求む。
文中検索掛けてもVBもVisualも引っかからなかったのだが。
435:デフォルトの名無しさん
09/09/30 19:18:59
古典的ネタにマジレスカコイイ
436:デフォルトの名無しさん
09/09/30 19:37:14
>>432
>とりあえず overrides空白 まで入れればインテリセンスは利くわけだし。
お~、そんなんが出来るんだ。
知らなかった。ありがと~ん。
437:デフォルトの名無しさん
09/09/30 19:38:10
ネタだったのかYO!
何かVB.NETの動作を阻害するものが入って動かなくなるのかと心配しちゃったじゃないかw
438:デフォルトの名無しさん
09/09/30 19:50:32
インテリセンスとGoogleが無いとプログラミングが出来ない身体になってしまった。
439:デフォルトの名無しさん
09/09/30 19:51:46
それでいいのだ
440:デフォルトの名無しさん
09/09/30 20:23:36
>>428
オブジェクト指向で言う委譲とデリゲートの委譲は別のものでしょ?
441:デフォルトの名無しさん
09/09/30 20:54:58
同じだ
オブジェクト指向でいう移譲を手軽に使えるようにするための仕組みがデリゲート
442:デフォルトの名無しさん
09/09/30 21:04:15
どこがどういうふうに手軽なの?
443:デフォルトの名無しさん
09/09/30 21:09:17
Javaやればありがたみがわかるよ
いちいちイベントハンドラごとに内部クラス作ってインターフェイス実装するんだぞ
やってることは本質的にデリゲートとまったく同じだけど糞面倒で可読性も悪い
444:デフォルトの名無しさん
09/09/30 21:19:01
別に内部クラスとかつくらなくても、クラス自身でインターフェース実装して、
addActionListener(this);
とかできるじゃん。
全然面倒くさくないし、簡潔明瞭じゃん。
445:デフォルトの名無しさん
09/09/30 21:25:55
同じ型のリスナを複数実装したいときは?
それに,直接実装するならpublicにしないといけないだろ?
イベントハンドラが全部publicで同じ名前(実際には無理だけど)ってどう思う?
446:デフォルトの名無しさん
09/09/30 21:37:32
引数で区別できなかったっけ? publicで何か不都合ある?
どうしても不都合なら、別に内部クラスとかつくるのもそれほど面倒とは思えんが。
447:デフォルトの名無しさん
09/09/30 21:44:33
>>446
443じゃないけど、面倒に決まってるでしょ。
だいいち、ただコールバックして欲しいだけなのに
本質的でないインターフェイスが必要になる点で鬱陶しすぎる。
448:デフォルトの名無しさん
09/09/30 21:48:43
>>446
Javaやってるとはとても思えないな
カプセル化ってわかってる?
コントロールを削除したらpublicメンバを削除して継承してるインターフェイス減らすの?
449:デフォルトの名無しさん
09/09/30 21:58:47
インターフェースが必要かデリゲートが必要かの違いだから面倒くささ度の観点からみれば対して変わらん。
インタフェースの方が実装の有無が他クラスから判断できるとか、使い回しができるとか、便利な面もある。
実際、AOPではインターフェースのそういった性質が多用されている。
同様にインターフェイス外すのも、デリケート外すのも俺的には面倒くささはいっしょ。特にC#とJavaでは。
VB.NETのは場合メソッド削除するだけだから幾分簡単に見えるが大した違いではない。あとIDEの自動化による
簡便性の違いは多少あると思う。
450:デフォルトの名無しさん
09/09/30 22:01:14
Javaは単一のactionPerformedで全部受けてifでイベントの発生源ごとに分岐するパターンが最悪
WndProcかよ
451:デフォルトの名無しさん
09/09/30 22:24:35
orz
452:デフォルトの名無しさん
09/09/30 23:49:19
>>449
デリゲートはあくまで委譲のための(処理をカプセル化するためといってもいい)しくみなんだし、
いわゆる一般的な意味でのインターフェイスに関して
インターフェイスかデリゲートかっていうものではないでしょ。
javaだってイベントは普通委譲モデルで、ほとんどデリゲートとおんなじことやってるだけだし。
この使い方においてはインターフェイスもデリゲートも大した違いはない。
まあ専用のしくみであるデリゲートの方がよっぽど分かりやすいと俺は思うが。
.NETの言語だって、本来の意味でのインターフェイスの代わりに
デリゲートを使うなんてことは普通はしない。
ただし、フォームのイベントなんかは、実質考え方自体がイベントなんだから、
自分自身のイベントもコントロールなんかと同じようにイベントハンドラでやっても
何らおかしいことはない。
453:デフォルトの名無しさん
09/09/30 23:59:22
問題はIDEとの相性の悪さ
JavaでIDEにイベントリスナを自動生成させたりするとものすごーく分かりづらいコードが出来上がる
454:デフォルトの名無しさん
09/10/02 10:13:13
DataBindingしてるソースの方を変更したとき、コントロールに同期させるには
どうすればいいでしょうか?
IPropertyChangedを実装する方法はわかったのですが、そういった準備なしに
どこかのメソッドを呼び出す形で同期することはできないでしょうか?
455:デフォルトの名無しさん
09/10/02 23:58:40
ResetBindings
456:デフォルトの名無しさん
09/10/04 09:56:55
Form2からForm1のTextBox1.Textを設定できネーよなんとかしろ
457:デフォルトの名無しさん
09/10/04 11:07:58
>>456
するな、そんな阿呆なこと。
Form1 に、TextBox1.Text を取得/設定する
Public なプロパティを定義するのが常套。
458:デフォルトの名無しさん
09/10/04 11:09:59
むしろVBだからこそ、そんな阿呆なことができるべき
459:デフォルトの名無しさん
09/10/04 11:11:00
VBだからどうでもいいよw
Form1のデフォルトインスタンス使えばおk
コントロールのアクセスレベルはデフォルトでinternalだからそのままアクセスできる
460:デフォルトの名無しさん
09/10/04 11:34:49
>>459
>デフォルトでinternalだから
Friend じゃなくて?
461:デフォルトの名無しさん
09/10/04 11:40:35
ああC#とごっちゃになってた
462:デフォルトの名無しさん
09/10/04 11:52:15
>>458
規定のアクセスレベルがFriendなので同じプロジェクト内からは
出来てしまうアフォな仕様ですよ。
気に入らぬのでPrivateに変えてます。
C#だとPrivateなんだけどな。
463:デフォルトの名無しさん
09/10/04 12:24:08
規定
ガイテイってよむの?
464:デフォルトの名無しさん
09/10/04 12:45:39
URLリンク(dictionary.goo.ne.jp)
ほれ
465:デフォルトの名無しさん
09/10/04 12:50:24
>>463
のりさだ (人名) です。
466:デフォルトの名無しさん
09/10/04 14:13:36
>>463
既定と間違うのはよくあること。
時々“規定クラス”と変換してしまうのは個人的によくあること。
467:デフォルトの名無しさん
09/10/04 19:12:43
>>463
ガイテイ
概定ってかくの?
468:デフォルトの名無しさん
09/10/05 00:53:43
オマエらどんな餌にでも食いつくんだなw
469:デフォルトの名無しさん
09/10/06 14:35:51
失礼します
Convert.ToStringで、数値を16進数にし、さらに1桁の場合は頭に0をつけて文字数を揃えるのを一括して行う方法はあるのでしょうか?
現在は16進数の文字列にしたあと、文字数をチェックして1桁なら0をつけているのですが、書き方が汚くなってしまうので・・・。
すいませんがよろしくお願いします。
470:デフォルトの名無しさん
09/10/06 15:02:32
>>469
Convert.ToString(Int32, IFormatProvider)
IFormatProviderとしてNumberFormatInfoを使う。
なんて面倒なことしないで、
string.Format("{0:X04}", 100)
じゃ駄目?
471:デフォルトの名無しさん
09/10/06 15:11:02
>>470
できました、ありがとうございます
472:デフォルトの名無しさん
09/10/06 16:50:49
むしろ100.ToStringで
473:デフォルトの名無しさん
09/10/06 20:14:58
("{0:X04}", 100)
{0:X04}と100のイミは?
474:デフォルトの名無しさん
09/10/06 21:22:52
前後をある文字で埋めるだけなら、String.PadLeftやPadRightもあるね。
>>473 複合書式指定文字列と書式設定するObject
475:デフォルトの名無しさん
09/10/07 00:39:12
うーむ・・
476:デフォルトの名無しさん
09/10/07 01:55:32
もとの質問は2ケタでいいらしいぞ
大昔のBASICちっくに
Right$("0" & Hex$(数字),2)とかどうだ
477:デフォルトの名無しさん
09/10/08 17:19:21
データグリッドビューでデータを表示させたとき
上の方をクリックすると勝手に列ごとにソートしてくれますが
そのときのイベントを取得することってできますか?
どうしたらよいかおしえてください
478:デフォルトの名無しさん
09/10/08 17:26:43
Sortedイベントとかあるけど
479:デフォルトの名無しさん
09/10/08 19:29:40
>>469
i.ToString("X02")
480:デフォルトの名無しさん
09/10/08 22:42:50
タイマの使い方がわかりません。以下のソースで試してみましたが、
Threading.Timerは時間通りに実行されず、他の2つは実行もされません。
Timers.TimerとWindows.Forms.Timerはデザイナの方で定義し、パラメータはデフォルトです。
イベントハンドラはすべてtimeout=trueとしているだけです。
どなたか教えてください。よろしくお願いします。
Dim timeout As Boolean
Private Sub Button1_Click(略) Handles Button1.Click
timeout = False
Dim ThreadingTimer As Timer = New Timer( _
New TimerCallback(AddressOf ThreadingTimer_Tick), Nothing, 0, 1000)
While timeout = False
End While
ThreadingTimer.Dispose()
timeout = False
TimersTimer.Interval = 3000
TimersTimer.AutoReset = False
TimersTimer.Enabled = True
While timeout = False
End While
TimersTimer.Dispose()
timeout = False
FormsTimer.Interval = 2000
FormsTimer.Enabled = True
While timeout = False
End While
FormsTimer.Dispose()
End Sub
481:デフォルトの名無しさん
09/10/08 22:51:51
無限ループやめろ
482:デフォルトの名無しさん
09/10/08 23:19:11
直接は関係ないけどDisposeの書き方が悪い
Try-FinallyのFinallyの中でDisposeするか,Using文を使ってDisposeは書かない
483:デフォルトの名無しさん
09/10/08 23:23:45
まあ普通はタイマを一つのメソッド内でDisposeするなんてないだろうけどな
484:デフォルトの名無しさん
09/10/08 23:25:12
CPU目いっぱい使ってループしてんだから、
1コアだとかなり反応悪いだろうな。
2コア以上ならそれなりに動くかも知れないが。
で、デザイナではっつけてる方はそもそもUIスレッドでイベントが発生するしくみになってるから
これじゃ動くわけがない。
485:デフォルトの名無しさん
09/10/08 23:30:18
何でModule使ったら駄目なんですか?便利なのに
Myとか最高
486:デフォルトの名無しさん
09/10/08 23:32:08
どこで何やってるかわからなくなるからだよ。
こんなこと言っても解らないだろうけど,クラスを使うのは余計なことを考えなくて済むようにするため。
487:デフォルトの名無しさん
09/10/08 23:43:04
どういう文脈か知らんが、
Module使ったらダメってのは
Moduleを自分で作るな
ってことじゃないのか?
488:デフォルトの名無しさん
09/10/09 00:18:08
>>481-484
ありがとうございます。
原因がわかったのでなんとかできました。
タイムアウト付きの処理を行いたかったのですが、
Thread.Joinで希望する処理ができました。
489:デフォルトの名無しさん
09/10/09 10:26:07
>>485
便利なのは作った本人だけ
490:デフォルトの名無しさん
09/10/09 10:49:02
すべてのクラスはnewして使うべき
491:デフォルトの名無しさん
09/10/09 11:13:39
はあ?
492:デフォルトの名無しさん
09/10/09 11:25:50
ふぅ
493:デフォルトの名無しさん
09/10/09 14:27:10
4次元ベクトルを作ろうと
Public Class Vector4D(Of T)
をつくり、この中で加算を定義するために T型 の変数同士の加算を使ったら定義されていないというエラーになりました。
このクラスはベクトルなので T型 の集合は加減乗除やべき乗に閉じていなければならないのですが、そのような制限をつけるために Of T 「As
...」 などで対応し、結果として T型 の変数同士の加算がエラーにならないようにすることはできますか?
(練習用なのでこの方向で解決できるのかどうかをまず知りたいです。4次元固定のベクトルクラスが .NET Framework
に存在するならば、さらにそれを教えていただけるとありがたいです。)
494:デフォルトの名無しさん
09/10/09 14:39:59
演算部分はデリゲートなりインターフェイスなりに委譲するようにする
495:デフォルトの名無しさん
09/10/09 17:35:50
>>493
演算子 オーバーロード でぐぐれ
496:デフォルトの名無しさん
09/10/09 17:38:28
演算子オーバーロードはジェネリックには使えないよー
497:デフォルトの名無しさん
09/10/09 18:14:03
Of T
ってどんなイミが
498:デフォルトの名無しさん
09/10/09 18:46:21
>>496
2008で実験してみたが
ジェネリックに使えなくはないけど、型ごとにオーバーロードしないとだめっぽい
Public Shared Operator +(ByVal a As Vector4D(Of Integer), ByVal b As Vector4D(Of T)) As Vector4D(Of Integer)を定義
Public Shared Operator +(ByVal a As Vector4D(Of Double), ByVal b As Vector4D(Of T)) As Vector4D(Of Double)を定義
...以下延々と必要な型に対して定義していく
使う方は楽かもしれんが、定義する方はジェネリックの利点がなくなるなぁ
499:デフォルトの名無しさん
09/10/09 18:58:13
使う方にもデメリットがあるよ
オーバーロードされていない型のVector4Dをまともに使うことができなくなる
Vector4Dの外部から演算子オーバーロードを定義はできないから
500:デフォルトの名無しさん
09/10/09 19:42:46
そもそもベクトルをジェネリックにする意義がよくわかりません。
どういう意図なんだろ。よーわからん。
501:デフォルトの名無しさん
09/10/09 20:16:14
そこは疑問もつとこじゃないだろ。
あと今回問題なのは、Vector4Dの実装側で、
Tに対して算術演算が出来ないことなんだから、
演算子のオーバーロードは何の役にも立たん。
502:デフォルトの名無しさん
09/10/09 20:28:44
>>501
時々君みたいなこという人がいるけど、
そもそも必要性が疑わしいものの実現可能性を考えてなんの意味があるの?
ベクトルをジェリックにして何の意味があるんだよ。
意味ないでしょ。
503:デフォルトの名無しさん
09/10/09 20:51:47
System.Linq.ExpressionとかDynamicMethodとか使えばできなくはないよ
算術演算を行うメソッドを動的に生成してしまえばいい
504:デフォルトの名無しさん
09/10/09 21:03:29
float,double,decimal,固定小数点数型辺りで使い回したいとか?
505:デフォルトの名無しさん
09/10/09 21:06:19
C++ではたいていベクトルはテンプレートになってるけど
実際doubleやfloat以外に使われてるのを見たことがない
506:493
09/10/09 22:23:58
皆さん、レスありがとうございます。最初に DynamicMethod を勉強して >>503 を試してみることにしました。
>>494
もう少し具体的に書いていただけると助かります。
>>504
主な目的はその通りです。
507:デフォルトの名無しさん
09/10/09 22:28:27
DynamicMethodは無謀すぎる
インラインアセンブラみたいなことするんだぞ
自分は.NETオタだと自負できるようになってから出直せ
508:デフォルトの名無しさん
09/10/09 22:56:46
命令口調クンって馬鹿だな、まで読んだ。
509:デフォルトの名無しさん
09/10/09 23:05:40
やっぱりそもそもの発想がおかしいと思うけどねえ。
パフォーマンスが重要でないなら一番「大きな」型だけで演算を定義して
あとの型はその型との相互の変換だけ考えればいいし、パフォーマンスが重要なら・・・
そもそも演算誤差の扱いっていう泥臭い問題の存在を忘れてないか
510:デフォルトの名無しさん
09/10/09 23:43:06
テンプレートみたいな何でもできるものをイメージしてたら、
Vectorをジェネリックに定義するのは何もおかしくない。
別に数値要素だけでしか使わないものではない。
511:デフォルトの名無しさん
09/10/10 12:07:29
ジェネリックデリゲート使って演算定義から取り出すやり方も出来ないことはないぜ。
そこまでする価値があるかは別問題として。
DynamicMethodよりは楽だけど。
512:デフォルトの名無しさん
09/10/10 12:08:17
あとどっちにしてもパフォーマンスは若干悪くなるな。
513:デフォルトの名無しさん
09/10/10 18:48:11
>>511
Int32等のCLI組み込み型については演算子がオーバーロードされてるわけじゃないから無理
DynamicMethodを使わないのであれば,
Int32とInt32の足し算,Int32とByteの足し算,…みたいにすべてのケースに対する演算処理を
定義しておくしかない
514:デフォルトの名無しさん
09/10/10 20:50:23
ExpressionTreeを使えばこういう事も可能だが
URLリンク(ufcpp.net)
515:デフォルトの名無しさん
09/10/10 20:52:22
それDynamicMethodで実装されてるんだけどな
516:デフォルトの名無しさん
09/10/11 00:52:44
サイトのソースデータをString変数に入れたら&という文字が&に置き換わっているのですが
これを一括して元に戻すにはどのような方法で戻したら良いでしょうか?
他にも置き換わっているものがあると思うので&に限定したReplaceではない方法が
あれば教えていただきたいです。
517:デフォルトの名無しさん
09/10/11 00:54:09
↑
なんか消えてしまったみたいです。
&が& になってしまいます。(本当は半角)
518:493
09/10/11 00:55:17
DynamicMethod を使う方法と並行して、>>514 を試しています。
URLリンク(ufcpp.net) より、C# のコード
public static readonly Func<T, T, T> Add = Lambda(Expression.Add);
を VB にすると
Public Shared Add As New Func(Of T, T, T)(AddressOf
まではわかったのですが、この右に何をつければよいでしょうか?
519:デフォルトの名無しさん
09/10/11 00:57:25
>>517
HtmlEncode/HtmlDecode
520:493
09/10/11 00:58:02
>>516
HTMLの実体参照ですね。頻出のものは
& ←→ &
> ←→ >
< ←→ <
ですが URLリンク(www.ne.jp) などで一覧を見ることができます。
521:デフォルトの名無しさん
09/10/11 01:03:25
>>519-520
ありがとうございます。
おかげさまで無事対処できそうです。
522:デフォルトの名無しさん
09/10/11 02:24:22
特殊な文字があるutf-8のwebページのソースをファイルに保存したいのですが
WebClientでutf-8を指定してダウンロードしてStreamWriterで、書き込み時にutf-8を指定して
書き込んでいるのですが、保存されたテキストを見るとその文字が?になってしまっています。
teraPadというエンコードを指定できるテキストエディタでutf-8を指定して確認しているのですが
元の文字は消えてしまっているようです。
WebClientでダウンロードした直後にString変数に入れて、デバッグを一時停止して
カーソルを当てるとその特殊文字は正常に表示できているのですが、
そのままConsole.WriteLineに出力すると?になってしまっています。
ブラウザのソース表示から直接TeraPadでソースを開いても?になってしまいます。
これはどのようにして保存したら正しく保存できるでしょうか?
ちなみに文字は~という文字の波を上下に反転したような形の文字です。
よろしくおねがいします。
523:デフォルトの名無しさん
09/10/11 04:19:54
文字の確認はバイナリエディタでやった方が良い
DownloadFileすればプログラム上でエンコーディング悩む必要もないけど?
524:デフォルトの名無しさん
09/10/11 05:27:02
コンソールとかエディタが使ってるフォントがその文字表示できないってオチじゃないだろうな
525:デフォルトの名無しさん
09/10/11 10:25:50
>>522
全角チルダの上下反転表示とくれば、
FullWidthTilda(U+FF5E) と WaveDash(U+301C) の変換問題だな。
TeraPadは内部コードがShift_JISらしいので、
WaveDashが化けてしまっているんじゃないかな。
一度、WikipediaのUnicodeの所を読んでみると良いよ。
526:デフォルトの名無しさん
09/10/11 11:02:18
>>518
Public Shared ReadOnly Add As Func(Of T, T, T) = Lambda(AddressOf Expression.Add)
Public Shared Function Lambda(ByVal op As Binary)
Return Expression.Lambda(Of Func(Of T, T))(op.Invoke(x)).Compile()
End Function
試してないけどだいたいあってるはず
Imports Binary = Func(Of ParameterExpression, ParameterExpression, BinaryExpression)
を忘れずに
527:526
09/10/11 11:05:56
訂正
Return Expression.Lambda(Of Func(Of T, T, T))(op.Invoke(x)).Compile()
528:デフォルトの名無しさん
09/10/11 11:43:33
内部SJISのエディタでutf8開くなんて無謀すぎだ。
529:デフォルトの名無しさん
09/10/11 11:54:46
どちらかというと、今時内部SJISのエディタの存在自体が無謀な気もw
530:デフォルトの名無しさん
09/10/11 14:29:59
>>522
chcp 65001
hoge.exe >file
531:522
09/10/11 22:12:39
レスありがとうございます。
素直にメモ帳で開いたら正しく表示できました。
正しく保存できているのにteraPadで表示しようとあれこれやっていたんですね;
助かりました。
532:デフォルトの名無しさん
09/10/12 04:13:45
comboboxで選択された内容を配列に格納すんのってどうやんの?
簡単におせーて
533:デフォルトの名無しさん
09/10/12 08:08:19
SelectedItem
534:デフォルトの名無しさん
09/10/12 10:50:40
>>532
一つしか選択できないのに何故ゆえに配列?
535:デフォルトの名無しさん
09/10/12 17:01:01
なにゆえゆえ?
536:デフォルトの名無しさん
09/10/12 17:45:30
>>534
細けーこたぁいいんだ
>>533
こいつをどうにかすればいいんだな?
537:デフォルトの名無しさん
09/10/12 19:00:52
いやまず君自身の頭の悪さをどうにかしないとダメだよ
538:デフォルトの名無しさん
09/10/12 19:56:07
無茶ゆうな
539:デフォルトの名無しさん
09/10/12 20:37:04
掲示板とかのメッセージみたいなツリー構造のデータをファイルに保存するのに良い方法があったら教えて
540:デフォルトの名無しさん
09/10/12 20:41:01
2ちゃんみたいに、フラットにしちゃうのが楽。
541:デフォルトの名無しさん
09/10/12 21:11:49
>>539
JSON
542:デフォルトの名無しさん
09/10/12 21:23:05
>>539
尻洗いズ
543:デフォルトの名無しさん
09/10/12 21:24:34
>>537
オレもそう思う。
544:デフォルトの名無しさん
09/10/12 23:25:45
羽山博いきてる?
545:デフォルトの名無しさん
09/10/13 14:41:09
すいません、
コンボボックスのドロップダウンをEnableをFalseにせずに
出ないようにしたいんですが、これってvb.netじゃできないもんでしょうか?
546:デフォルトの名無しさん
09/10/13 19:20:06
For I = 1 To 1000
System.Threading.Thread.Sleep(1)
Application.DoEvent
Next
これで約1秒待機しているのですが以前は大体1秒、2秒だったのですが
最近はすごい長くなってきました。
10000でも10秒位だったのですが、1分近くかかるようになりました。
これはどういう部分に原因がありそうでしょうか?
そういえばパソコンの動作も鈍い感じがします。
CPUやメモリには全然余裕がある状態でも同じです。
547:デフォルトの名無しさん
09/10/13 20:00:29
そういうコードを書かない、でいいじゃないか
548:デフォルトの名無しさん
09/10/13 20:27:24
>>546
お前はあほか
549:526
09/10/13 20:28:24
UIスレッドでSleepはご法度
550:デフォルトの名無しさん
09/10/13 20:49:55
>>547
どう書けばいいですか?
551:デフォルトの名無しさん
09/10/13 20:51:33
タイマを使う
552:デフォルトの名無しさん
09/10/13 20:52:52
待機が必要になるような処理をUIスレッドでやらない
553:デフォルトの名無しさん
09/10/13 20:53:40
API剥き出しw
554:デフォルトの名無しさん
09/10/13 21:10:41
必死な馬鹿が一人紛れてるな
555:デフォルトの名無しさん
09/10/13 21:52:55
作り方はともかく、Sleepは最小の待機時間しか保証しないからな。
その何倍も経過した後で戻ってきても何の不思議も無い。
Do-LoopとStopwatchクラスで1秒経過するまで待てばそれなりに動かせるけど、
設計自体見直したほうがいいだろうな。
556:デフォルトの名無しさん
09/10/13 21:57:18
DoEventsで時間食ってるんだろ
557:デフォルトの名無しさん
09/10/13 23:39:55
今無職なのでVBで食っていこうかなって思ってます。オスッ
558:デフォルトの名無しさん
09/10/14 10:43:08
ぼくも無職ですがVB覚えたい
昨日駅前のパソコンスクールに言って
「VBありますか?」
って聞いたら無いって言われました
やはり独学しかないのか
559:デフォルトの名無しさん
09/10/14 12:33:00
スクールなんぞ金の無駄でしかない。
560:デフォルトの名無しさん
09/10/14 17:34:42
じゃ、本で独学がいちばん?
561:デフォルトの名無しさん
09/10/14 20:18:58
わざわざ始めるならJavaにしとけよ
562:デフォルトの名無しさん
09/10/14 21:59:49
>>546
キミのその糞なコーディングにパソコンが嫌気がさして来たからだと思う。
563:デフォルトの名無しさん
09/10/15 01:54:10
メディアプレイヤを起動してみるんだ
564:デフォルトの名無しさん
09/10/15 09:28:09
>>562
終わった話に後から煽るだけ、ってのやめれ。
頭悪そうにしか見えない。
565:デフォルトの名無しさん
09/10/15 09:56:30
>>560
今からなら C# いいよ
566:デフォルトの名無しさん
09/10/15 20:47:26
JavaとC#を同時にやるのがいいと思う
VBはC#ができれば自動的にできるからあえてやる必要はない
567:デフォルトの名無しさん
09/10/15 20:56:44
なにゆえ同時に
568:デフォルトの名無しさん
09/10/15 22:12:58
Dim Arr As New ArrayList
Dim R As New Regex("hoge.+?")
Dim M As MatchCollection
M = R.Maches(hogeString)
上のような正規表現のMachesでマッチした結果を
ArrayListに入れたいのですが
どのように書いたら良いでしょうか?
569:デフォルトの名無しさん
09/10/16 00:07:41
>>568
あっどれんぢ
570:デフォルトの名無しさん
09/10/16 10:08:57
じゃあC#解説のおすすめのサイトと本教えてよ
571:デフォルトの名無しさん
09/10/16 11:21:47
■@IT:連載 改訂版 C#入門
URLリンク(www.atmarkit.co.jp)
入門とは書いてあるけど、これ全部理解できればまず困る事はないと思う
このサイトには他にもカテゴリが山ほどあって
目的の情報を探すのが大変かもしれないけど
凄く役に立つサイトですよ
もっと簡単そうなサイト?あったら俺も知りたい^^
572:デフォルトの名無しさん
09/10/16 13:11:26
VBってそういう言語面からきちんと解説してるサイトや書籍が少ないよな
変数,演算子,制御構造終わったらあとはコピペ用Tipsばっか
573:デフォルトの名無しさん
09/10/16 13:17:09
動けばいいから
574:デフォルトの名無しさん
09/10/16 19:21:06
>>569
すみません具体的にどう書いたら良いですか?
Arr = AddRange(~~~)
ここがわかりません。
575:デフォルトの名無しさん
09/10/16 20:02:47
お前のコンパイラはエラーが発生すると爆発でもするのか?少しは試せよ。
576:デフォルトの名無しさん
09/10/16 21:23:28
色々試しすぎて爆発したから質問してみた
577:デフォルトの名無しさん
09/10/16 21:50:04
すこしはググれよ
578:デフォルトの名無しさん
09/10/16 22:02:27
もうググり杉って出た
はやく教えて
579:デフォルトの名無しさん
09/10/16 22:10:39
ヘルプ嫁
580:デフォルトの名無しさん
09/10/16 22:27:02
もういい聞かない
もったいぶりすぎ質問スレじゃなかったのかよ
581:デフォルトの名無しさん
09/10/17 00:53:48
>>580
質問スレだが回答スレではない。
582:デフォルトの名無しさん
09/10/17 00:55:37
>>574
× Arr = AddRange(~~~)
○ Arr.AddRange(~~~)
583:デフォルトの名無しさん
09/10/17 03:27:23
800*600のjpgを640*480にしてpngなどで保存するにはどんなコードを書けば
584:デフォルトの名無しさん
09/10/17 08:48:35
BitmapクラスとGraphics.FromImage
585:デフォルトの名無しさん
09/10/17 08:56:31
VBでChar.IsDigit("66t"),Char.IsDigit("3E5")がTrueになりますが、普通に10進数の数字だけで判断することはできませんか?
586:デフォルトの名無しさん
09/10/17 09:08:59
普通に10進数の数字だけで判断してるけどな、Char.IsDigit
なぜそれでTrueを返すかはヘルプ見ろ
Int32.TryParseとかで変換しちまえばいいんじゃね
587:デフォルトの名無しさん
09/10/17 13:12:05
それで実現できました。ありがとうございました。
588:デフォルトの名無しさん
09/10/17 17:18:21
テキストボックスを、選択・コピーできるテキスト表示領域として使おうとしています。
したいこと
①キャレット非表示
②方向キーでのキャレット移動無効化
③SHIFTでの選択無効化
①はAPIのHideCaretで出来たのですが、他がさっぱりわかりません。
TextBoxBaseの該当メソッドをオーバーロードすればいいのでしょうか?
そうだとして、そのメソッドはどれでしょうか?
589:デフォルトの名無しさん
09/10/17 17:45:22
キャレットを非表示にしてどうやって選択すんの?
590:デフォルトの名無しさん
09/10/17 18:07:31
>>589
表示されて無いだけで選択は出来ます。
つまり、マウスだけで選択できる状態にしたいのです。
591:デフォルトの名無しさん
09/10/17 18:12:22
Shift キーと方向キーを殺せばいいんじゃね?
592:デフォルトの名無しさん
09/10/17 18:16:32
おすすめの
有料追加コントロール
無料追加コントロール
紹介して
593:デフォルトの名無しさん
09/10/17 19:29:54
>>591
方向キーでスクロールをしているので、それが出来ないんですよね……
594:デフォルトの名無しさん
09/10/17 19:58:11
なーんかユーザビリティを毀損するとしか思えない妙な俺様仕様に
こだわる人って時々いるけど、正直理解できんな。
明らかに便利で合理的な仕様であれば実現に向けて努力するのもわかりもするんだが。
595:デフォルトの名無しさん
09/10/17 19:59:28
>>593
殺した上でスクロールスりゃいいだろハゲ
そんな Windows の流儀にそわない動きしたいなら、少しは自分で工夫しろよ。
596:デフォルトの名無しさん
09/10/17 20:10:34
WebBlawserもどきを作りたいって言ったほうがよかったかな。
597:デフォルトの名無しさん
09/10/17 20:11:23
WebBlawser・・・
598:デフォルトの名無しさん
09/10/17 20:21:15
Browser....
599:デフォルトの名無しさん
09/10/17 20:56:59
Brassiere...
600:デフォルトの名無しさん
09/10/17 21:08:29
Brothers...
601:デフォルトの名無しさん
09/10/17 22:31:21
>>596
ブラウザは普通シフトキーは受け付けるでしょ。
だから単に→←キーだけ握りつぶせばいいだけじゃないの?
ま、別にカーソルキーで範囲選択ができても何も困らないと思うが・・・
602:デフォルトの名無しさん
09/10/17 23:48:11
>>595
出来たよ。
みんなありがとね。
603:デフォルトの名無しさん
09/10/18 01:20:18
ウソつかなくてok
604:493
09/10/18 02:07:29
T型の変数どうしの演算を行うことは >>514 の方法でできました。
次に内部メソッドとして「要素の平均」を実装しようと試みています。
作業用のT型の変数に 0 をそのまま代入したり特定の数値で割るとエラーになりますが、これも同様の方法で回避できるものでしょうか?
605:デフォルトの名無しさん
09/10/18 12:46:21
0の代わりにNothingを代入する。
特定の数値で割るのは当然Expression Treeで生成したコードを使えばいいだろ。
606:デフォルトの名無しさん
09/10/18 12:56:03
策士策に溺れる、っていうのはこういう人のことを言うんだろうなたぶん。
607:デフォルトの名無しさん
09/10/18 12:59:12
確かに手段が目的になっている気がする。
608:605
09/10/18 13:03:30
あー最後に要素数で割るのが難しいな
public static readonly Func<T, int, T> DivideByInt32;
static Operator()
{
var left = Expression.Parameter(typeof(T), "left");
var right = Expression.Parameter(typeof(int), "right");
DivideByInt32 = Expression.Lambda<Func<T, int, T>>(
Expression.Divide(left, Expression.Convert(right, typeof(T))), left, right).Compile();
}
これ使えばいけるはず
でも平均値だったらLINQ使ってitems.Average()でいいと思う(itemsがジェネリック型の場合は不可)
609:デフォルトの名無しさん
09/10/18 13:04:57
Timer_Tickイベント実行中はTimer1.EnabledをFalseにしますか?
Falseにしない場合、Timer_Tickプロシージャ内の処理が多くて次のTickとダブってしまうこともありますか?
610:デフォルトの名無しさん
09/10/18 13:10:48
Falseにする必要はありません。
Timer.TickはUIスレッドで実行されるので次のTickとダブることはありえません。
611:デフォルトの名無しさん
09/10/18 13:12:51
ありがとうございます。了解です。
612:デフォルトの名無しさん
09/10/18 13:58:27
.NET 一般のことかもしれませんが、String.Format の逆、C の scanf のようなメソッドや関数はありますか?
こんな感じで使えればいいなイメージ:
Dim s As String ' フォーマットを表す文字列
Dim inputString As String = getInput() ' たとえば s のフォーマットでファイルに保存してあるものを読み込んだ結果
Dim i As Integer
Dim l As Long
Dim d As Double
inputString.hoge(s, i, l, d) ' i, l, d に値が入る
Dim o As String = String.Format(s, i, l, d) ' o = s となる
613:デフォルトの名無しさん
09/10/18 14:03:01
正規表現でキャプチャしてInt32.Parseとか使ってパース
614:デフォルトの名無しさん
09/10/18 16:47:54
■最近VBAを勉強し始めました、初心者です。よろしくお願いします。
VB.NETというのをしりました。
wiki等には、VBと違いNET関係の機能が追加された、とかいてありました。
いったいこの.NETではなにができるのですか?
VBのことも詳しく知りませんが、
わかりやすく.NETのすごさを教えてください。
例えば、、、こんなことができるよ。、、、みたいな感じで。
そのすごさや有用性のようなものを簡単に教えてください。
すみませんが、よろしくお願いします。
615:デフォルトの名無しさん
09/10/18 17:09:36
こんなことができるよ、以前に、すでに VB はなくなりました。
あとは、.NET 上で動く VB (いわゆる、VB.NET) しかありません。
616:デフォルトの名無しさん
09/10/18 17:40:34
ぶっちゃけ似た構文を採用しただけで殆ど別物。
JavaScriptとJava位の違いはある。
617:デフォルトの名無しさん
09/10/18 17:54:43
何が出来るってまた難しいことを。
大抵のことは出来るw
618:デフォルトの名無しさん
09/10/18 18:18:06
>>615
”すでに VB はなくなりました”
→ .NETでもVBみたいなことはできるんですよね??
>>617
■例えば、自動で発動するようにして、
あるサイトに自動ログインして文章をコピーして
エクセルシートに貼り付ける。この作業を1時間おきにしたいんですけど可能?
つーかこのくらいはVBAでもできちゃうのかな??
わからんので教えてください。
619:デフォルトの名無しさん
09/10/18 18:22:16
できる。
620:デフォルトの名無しさん
09/10/18 18:24:12
自動ログイン~~~はVBAでもできちゃう??
621:デフォルトの名無しさん
09/10/18 18:25:32
VBA だろうと、XmlHttpRequest() すればいいだけ。
622:デフォルトの名無しさん
09/10/18 19:11:07
自動ログインはちょっと難しい
623:デフォルトの名無しさん
09/10/18 19:20:47
>>622
ちょいむずい、、、はVBAだと?
.NETならできちゃう?かな?
624:デフォルトの名無しさん
09/10/18 21:54:18
TextBoxをMultiLineにしてあるのですが、AppendTextで100行に達したら上から消していきたいのですが
どんな関数を使えばスマートにできるでしょうか?ヒントください。
625:デフォルトの名無しさん
09/10/18 21:59:10
>>610
Application.DoEventsとかやってると割り込まれるが。。。
626:デフォルトの名無しさん
09/10/18 22:39:35
>>623
どっちでもたいして変わらんよ。
627:デフォルトの名無しさん
09/10/18 23:10:37
>>624
正規表現でも使うか。
っていうか素直にListBox使えば?
628:デフォルトの名無しさん
09/10/19 11:29:38
特に何かした覚えが無いのに何故かデバッグの時にbinに作るのとbin\debugに
作るのがあるけどどこで設定するんでしたっけ
629:デフォルトの名無しさん
09/10/19 23:21:58
vb5で作ったソース(frmファイル)があって、
使えるとこは使いまわしていきたいと思ってます。
が、vb.netだと、frmファイル読めないですね。
何か変換するいい方法ありますか?
630:629
09/10/19 23:28:18
vbpを開くと普通にアップグレードしてくれるね
とりあえずやってみる。
631:デフォルトの名無しさん
09/10/19 23:32:52
動かないけどね
VB.NETはVBと見た目が似てるだけと考えた方がいい
632:デフォルトの名無しさん
09/10/19 23:37:13
質問させてください
Visual Studio2008を使っているのですが、動画をプログラム内で表示させたい場合はどうしたらよいのでしょうか?
たとえばmpeg2形式の動画をVBで作ったプログラム内で再生させたいのです。
633:デフォルトの名無しさん
09/10/19 23:46:10
ほれ
URLリンク(www.google.co.jp)
634:デフォルトの名無しさん
09/10/20 00:01:16
ありがとうございます
動画だとパソコン側でデコードしてくれるから上記の通りでいいと思うのですが
LANや同軸などで繋ぐライブカメラなどの映像をVBで作ったソフトウェア内に埋め込みたい場合はどうしたらよいのでしょうか?
LAN、同軸などの映像をデコードしてくれる専用のハードウェアがいるということなんでしょうか?
そもそも基本的にぜんぜん分かっていないのですが、こういった関連を調べたい場合は何と調べたらよいのでしょうか?
635:デフォルトの名無しさん
09/10/20 00:09:55
「ソフトウェア内に埋め込む」って何?
636:デフォルトの名無しさん
09/10/20 00:13:10
VBで作ったソフト上に映像を表示したいということでした。
637:デフォルトの名無しさん
09/10/20 00:35:02
DirectShowを使うのが一般的だけど
DirectShow自体の知識とDirectShowをVBで使うための知識と両方必要だし大変よ
> そもそも基本的にぜんぜん分かっていないのですが、こういった関連を調べたい場合は何と調べたらよいのでしょうか?
オレ用語を排除して一般的な単語で検索すりゃ大体引っかかるもんだ
「VB.NET WEBカメラ 再生」とか
638:デフォルトの名無しさん
09/10/20 00:37:42
抽象的過ぎて、考えるだけ時間の無駄だな。
とりあえず市販のライブカメラを片っ端から調べればいいんじゃね?
VBでどうするかなんてずっと後の話だ。
639:デフォルトの名無しさん
09/10/20 07:17:09
OpenCVが一番簡単だよ
640:デフォルトの名無しさん
09/10/20 10:01:49
VB.NETというより.NETアプリのことなんですが
ネットワーク上の他のPCの共有フォルダに置いた.NETアプリの実行ファイルを
ローカルにコピーせずに、共有フォルダ上で直接実行しようとする場合
.NETの設定ツールでセキュリティの設定をしていないと
Security.SecurityExceptionが発生して実行できませんが
セキュリティの設定等の専門的な操作をせずにこれを回避してアプリを実行する方法は無いのでしょうか?
641:デフォルトの名無しさん
09/10/20 10:03:42
著名すればいいんじゃない?
642:デフォルトの名無しさん
09/10/20 10:06:36
署名www
643:デフォルトの名無しさん
09/10/20 19:15:52
3.5 SP1にしてしまえ。
644:629
09/10/20 22:41:06
>>631
VB5から、vb.netへの移行企んでみましたが、
全然だめですね。VB6入れろだの、エラーでとまりすぎ。
フォーム生かす以外にアップグレードの使い道無いですね
645:デフォルトの名無しさん
09/10/20 22:46:25
フォームだけでも変換できる事が驚き
646:デフォルトの名無しさん
09/10/20 22:53:39
VB6から変えすぎたせいで、VB7が大コケしたからな…。
647:デフォルトの名無しさん
09/10/20 22:56:14
変えたっていうか一応バージョン番号が続いてるだけで全くの別物だから
648:デフォルトの名無しさん
09/10/20 23:22:05
別物のクセに名前だけは引き継いだから尚更悪いって話かね
649:デフォルトの名無しさん
09/10/20 23:37:31
ちゃんとVB.NETって別の名前にしてたよ!
650:デフォルトの名無しさん
09/10/20 23:39:55
まあ、VB厨の皆様が言うほど変っちゃいないんだけどね。
「大コケ」してるのはVB7以降じゃなくてVB厨の方だろ、っていうw
また例のわんくまの人のブログの記事貼っといた方がいいのかな。
651:デフォルトの名無しさん
09/10/21 00:07:06
.NETの最新機能はC#に任せてVBはVB6互換でよかったのにな
652:デフォルトの名無しさん
09/10/21 01:03:44
>>640
Win32Apiとか使ってるからでしょ?
653:デフォルトの名無しさん
09/10/21 08:04:40
VB2008です
壁紙をレジストリいじって変更するプログラムを組んでいます。
それでWallpaperstyleキーを2にすれば拡大できるというのはわかったのですが
これは縦横の比を無視して画面を埋めてしまいます。
エクスプローラの右クリのような、縦・横どちらかにあわせるようにするにはどうしたらいいのでしょうか。
654:デフォルトの名無しさん
09/10/21 09:35:41
エクスプローラで設定してみてどうなってるのか確認したら?
655:デフォルトの名無しさん
09/10/21 18:04:17
人に配布する時ってobjの中のファイル?それともbin?
656:デフォルトの名無しさん
09/10/21 18:22:20
セットアッププロジェクト使うがな
657:655
09/10/21 18:30:39
セットアップは使わない予定です
658:デフォルトの名無しさん
09/10/21 18:44:33
objもbinの中も同じ気がするんだがwww
どっちでもいいんじゃね?
659:デフォルトの名無しさん
09/10/21 19:48:16
うちの環境でみたら、objの方はTempPEとかいうフォルダが作られてた
たぶん配布するのにこんなフォルダは不要だと思うので
binフォルダに1票
660:デフォルトの名無しさん
09/10/21 20:00:54
そういうの除いて配布するもんじゃないの?
binの方にもxmlとかpdbとかあるじゃん
661:デフォルトの名無しさん
09/10/21 20:03:56
発行使えよ。
662:デフォルトの名無しさん
09/10/21 21:03:23
Visual Studio 2008 Express Edition で次のソフトを作るにはどうしたらいいでしょうか。
Windows のエクスプローラーを開いて開いたフォルダ内に下記のようなファイルがあるとします。
1234★日本語の全て.doc
1235★韓国語の全て.doc
1236★英語の全て.doc
1237★フランス語の全て.doc
ファイル名は頭に半角数字4桁の後に★がつくように付けてるのですがこれを
日本語の全て 1234★日本語の全て.doc
韓国語の全て 1235★韓国語の全て.doc
英語の全て 1236★英語の全て.doc
フランス語の全て 1237★フランス語の全て.doc
左側は半角数字4桁と★と拡張子を抜いて、右側には取得したファイル名を、
その間は上は半角スペースで書きましたがタブ文字で区切ったファイルを作りソフト
自体には表示させなくてもいいので結果をクリップボードへ貼り付けるソフトを作れ
ないかと思ってます。
今まではエディタを開いて dir でテキストを取得し編集してましたがこれができると
かなり便利です。
なにか具体的な例やアドバイスがあればよろしくお願いします。
663:デフォルトの名無しさん
09/10/21 21:26:14
プログラミングの素養があれば簡単にできますがそうでなければ遠い道のりです
基礎から勉強する気がないなら作ってくれと丸投げした方がマシだと思います
664:デフォルトの名無しさん
09/10/21 21:29:05
>>663
ちなみにこの手のを格安で作ってくれるとこはどのようにして見つけるのでしょうか。
ソフトウェア屋さんのホームページとか見ると大がかりなのしか作ってないみたいで。
665:デフォルトの名無しさん
09/10/21 21:29:54
>>663
正直に言えば、このソフトに限ってはすぐに欲しいです。勉強はそれから
取り組みたいので。
666:デフォルトの名無しさん
09/10/21 22:04:42
作った
アップするからちょっと待って
667:デフォルトの名無しさん
09/10/21 22:09:24
標準入出力経由のWSHで十分な気がしないでもない。
668:デフォルトの名無しさん
09/10/21 22:17:46
URLリンク(www.dotup.org)
はい
669:662
09/10/21 22:54:59
>>666
>>668
ありがとうございます。結果を見てみたのですが
日本語の全て 1234 ★ 日本語の全て.doc
韓国語の全て 1235 ★ 韓国語の全て.doc
英語の全て 1236 ★ 英語の全て.doc
フランス語の全て 1237 ★ フランス語の全て.doc
(区切りはタブ)になってます。下記のように
日本語の全て 1234★日本語の全て.doc
韓国語の全て 1235★韓国語の全て.doc
英語の全て 1236★英語の全て.doc
フランス語の全て 1237★フランス語の全て.doc
みたいに(区切りはタブ)になれば嬉しいのですが。CS ファイルというのは VB ではなく
C 言語か何かのファイルでしょうか。
670:662
09/10/21 22:57:47
>>667
WSH を検索してみたのですが Visual Studio 2008 Express Edition より
取っつきやすいのでしょうか。
671:デフォルトの名無しさん
09/10/21 23:06:53
>>669
それただの表示の問題
余計なスペース入れたりすると扱いづらくなる
>>670
WSHは回りくどい。VB(6)の経験がある人には分かりやすいだけ。
PythonとかRubyとかPerlとか有名な他のスクリプト言語の方がいいと思う。
672:662
09/10/21 23:16:11
>>671
ここにはタブが表示できないので上手く表現出来ないようです。テキストファイルに
アップしました。
URLリンク(www.dotup.org)
673:668
09/10/21 23:34:03
URLリンク(www.dotup.org)
見間違えてた。修正した。ついでに必要に応じてファイルに出力できるようにコンソールにも結果を出力するようにした。
VBの環境が今手元にないのでC#を使ってる。C#はVBの兄弟みたいなもんで見た目が違うだけでほとんど同じ。
674:662
09/10/21 23:46:35
>>673
ダウンロードして確認しました。ありがとうございます。まさに求めていたプログラムです。
ちなみに数字の桁数が変わった場合とか数字の後の★が別の名前になった場合を
ソースプログラムを見て自分で修正したいのですが、cs ファイルはどのようにして実行
ファイルの exe にするのでしょうか。Windows Vista の HomeBasic を使ってます。
今回は Visual Studio 2008 Express Edition の中から VisualBasic を入れましたが
ホームページで説明ページを見たりしても見比べとか大変そうなのでやはり書籍を
購入する必要があると感じました。
675:662
09/10/21 23:48:21
>>673
すみません、修正版にはソースファイルがないようなので合わせて頂けないでしょうか。
676:668
09/10/21 23:59:37
URLリンク(www.dotup.org)(ソースコードのみ)
あとはVBに読み替えるなりVisual C# 2008 Express Edition入れるなり好きにしてくれ
VBがC#がどうとかいうより正規表現がポイントなんで改造するならまず正規表現を勉強してね
677:662
09/10/22 00:10:44
>>676
ありがとうございます。今は中を見てもほとんどわからないですが、このようなツールが作れると
とても便利だと思いました。楽しみになりました。
678:デフォルトの名無しさん
09/10/22 01:29:12
優しすぎだろ…
679:523
09/10/22 02:35:37
プロセスのリターンコードの返却方法について教えてください。
プロセスで返却値を設定して終了する場合、メインスレッドから「Return 結果コード」、
「Environment.Exit(結果コード)」等で呼び元へのリターンコードを返却することができました。
しかし、プロセスのメインスレッド実行中、別に発生するイベント内で異常が起きた場合に、プロセスを
終了し、結果を呼び元に返却する機能が必要になりました。
異常が発生したイベント処理内で「Environment.Exit(結果コード)」としたところ、プロセスは終了したの
ですが、プロセスの呼び元にはゼロが返却されてしまいました。
メインスレッド外からプロセスを終了して返却値を戻すためにはどうすればよいのでしょうか。
680:デフォルトの名無しさん
09/10/22 06:00:25
いったんメインスレッドに戻せばいいんじゃね?
681:デフォルトの名無しさん
09/10/22 10:27:48
2日考えてわからなかったので質問させてください。
フォーム上でツリーとグリッドを左右に並べて
ツリーの展開などの動きとグリッドのデータを連動させたい
のですが上手くいきません。。
グリッドのデータは
ノードID,親ノードID,レベル,展開FLG,コード・・・
といった感じです。
よろしくお願いします。
682:デフォルトの名無しさん
09/10/22 10:35:36
スレッドのExit(結果コード)で終了してるな。
imports System.Threading
module Program
sub Main()
dim th = new Thread(addressof Run)
th.Start()
Console.ReadLine()
Environment.Exit(1)
end sub
sub Run()
Thread.Sleep(5000)
Console.WriteLine("Exit 9")
Environment.Exit(9)
end sub
end module
683:デフォルトの名無しさん
09/10/22 15:58:58
>>681
何使ってるか知らないけど
DataGridViewなら
FirstDisplayedCell
FirstDisplayedScrollRowIndex
DisplayedRowCount
とか組み合わせたら出来ないかな?
スペルは間違ってる可能性あるけど こんな雰囲気のやつだっ気がする
684:683
09/10/22 16:00:57
>>681
骨髄反射でレスして読み返して気づいた・・・
見当違いのことしゃべってるわ
というかノード作るところまでは出来ててその状態をグリッドに表示させたいだけ?
685:デフォルトの名無しさん
09/10/22 16:48:08
>>684
そうです!
開閉に合わせてグリッドも変わるみたいな
感じです。
686:デフォルトの名無しさん
09/10/22 16:53:04
>>685
それはクリックしたノードの情報使えばいけると思うけど・・・
自分でノード作ってるんなら最初にTAGにでも内容をカンマ区切りとかで入れとくとか
ちゃんとやるなら 選択ノードからParentとかその他のプロパティ使って辿ってくんじゃないかな?
具体的なコードをお求めで?
687:デフォルトの名無しさん
09/10/22 18:42:24
1ビットだけでいいのですが外部のハードウエアの出力を監視したいのですが、
何か簡単な方法(ハードウエア込みで)は有りませんでしょうか?
まともにやるならUSB接続の拡張ポートとかを使うのだと思うのですが、
1ビットだけのために買うのもどうかなと思いまして、、、
688:デフォルトの名無しさん
09/10/22 18:48:47
キーボードのキーを一個外してその接点にでも繋げば?w
689:デフォルトの名無しさん
09/10/22 19:12:50
>>687
USBとかでいけるんじゃないかな?
どんな外部接点か知らないけどDIOとかでやるとか?
690:デフォルトの名無しさん
09/10/22 19:24:10
>>687
Arduinoがいい
691:687
09/10/22 22:23:53
おお~、いろいろ即レスありがとうございます。
>>688
おもしろいっすね。
キーボードだと信号そのままじゃなくてリレーみたいなので繋げばいい?
ONしたままだとまずいかな。
>>689
基本はこれですね。
安いのが有ればいいのですが。
>>690
ああ、PCWatchとかで紹介されてましたね。
3000円位で買えそうですね。
これで行こうかと思います。
PICとかでもUSBドライバ付きで安いのって有るのかな?
692:デフォルトの名無しさん
09/10/22 22:46:56
マウス1個潰してclickdownイベントでやると\500程度
トラ技付録のTinyマイコンで、もう売ってないか
外には出てないけどマザーにはレガシなパラレルポートが自縛霊として生き残ってるハズこいつを叩け
693:デフォルトの名無しさん
09/10/22 22:50:38
>>691
そのHWの「外部のハードウエアの出力」がOC出力なら
232CのDTRとDSRのを使えば追加ハードなしで出来ると思うよ。
安物マザーじゃなきゃまだCOMポートって標準で付いてくるんじゃないのかな。
694:691
09/10/22 23:04:05
皆さん、いろいろとご存知でw
>>692
USBマウスとかキーボードって複数繋いだらどうなるのでしょう。
>>693
なるほど。232C-USB変換ケーブルでも使えるってことですね。
えーとDTRとかDSRってどうやって読めばいいのしょうか。
695:デフォルトの名無しさん
09/10/22 23:15:49
>>694
>えーとDTRとかDSRってどうやって読めばいいのしょうか。
Data Terminal ReadyとData Set Readyだったかな?
まああんまり深い意味がある頭辞語じゃないと思うからそこにこだわってもね。
そのラインの操作法はMSDNのSerialPortクラスにも載ってるはず。
ただ、232Cを使う方法はお手軽だけど、既に書いたようにOC出力か12V出力でしか使えない。
696:デフォルトの名無しさん
09/10/23 23:24:19
VBでイーサネットを使った通信を行いたい場合、何を勉強したらよいのでしょうか?
シリアル通信はコンポーネントが用意されているので分かりやすいのですがイーサについてはまったく・・・
TCP/IP??ソケット通信?
697:デフォルトの名無しさん
09/10/23 23:29:06
socket
698:デフォルトの名無しさん
09/10/23 23:32:19
OSI参照モデルとかの基礎をまずかじるぐらいはするべきじゃないか?
699:デフォルトの名無しさん
09/10/24 13:33:38
VB2008 Express バージョンに下記の C# のソースをネットの変換のページに入れて
貼ってもエラーが出ます。気をつけないといけないのはどのへんでしょうか。
URLリンク(www.dotup.org)
700:デフォルトの名無しさん
09/10/24 13:44:14
>ネットの変換のページ
ってなんだ?そこの管理人に文句を言ったらいいんでない。
701:デフォルトの名無しさん
09/10/24 19:57:49
C#3.0に対応してないんだろ
702:デフォルトの名無しさん
09/10/24 21:58:46
>>696
URLリンク(itpro.nikkeibp.co.jp)
703:デフォルトの名無しさん
09/10/24 22:08:59
フォームAを継承したフォームBを作ろうと思っています。
フォームAには引数付きのコンストラクタのみがあります。
フォームBのコンストラクタで,フォームAのコンストラクタを呼び出して初期化しています。
ここまでは大丈夫だと思うのですが,フォームBのデザイナ画面を出そうとすると
「データが失なわれる可能性を防ぐため、デザイナの読み込み前に以下のエラーを解決する必要があります。
型"フォームA"にコンストラクタが見つかりませんでした。」
となってしまいます。
引数付きのコンストラクタがあるフォームは継承できないのでしょうか?
704:デフォルトの名無しさん
09/10/24 22:10:55
フォームの継承自体やらない方がいい
共通部分があるならユーザーコントロール使えばいい
705:703
09/10/24 22:12:43
>>704
了解しました
ユーザーコントロールはまだ知らないので
今から勉強したいと思います
706:デフォルトの名無しさん
09/10/24 23:14:27
フォルダ内のファイルを一つずつ調べるループなのですが
どちらの方が速いでしょうか?
Dim filename As String
filename = Dir("c:\hogehoge\")
Do While filename <> ""
Console.WriteLine(filename)
filename = Dir()
Loop
Dim filename2 As String()
Dim str As String
filename2 = IO.Directory.GetFiles("c:\hogehoge")
For Each str In filename2
Console.WriteLine(str)
Next
707:デフォルトの名無しさん
09/10/24 23:22:37
どう考えても後者の圧勝
708:デフォルトの名無しさん
09/10/24 23:27:39
やってみればいいじゃん。
709:デフォルトの名無しさん
09/10/24 23:35:56
試すまでもないだろ
結局DirもPathクラスを使って実装されてるわけで,前者の方が無駄な処理が多いだけ
710:デフォルトの名無しさん
09/10/25 03:30:27
>>703
継承できるけど、デザイナで表示できない(対応していない)だけ。
711:デフォルトの名無しさん
09/10/25 09:25:21
>>703
フォームAに引数付きと無しのコンストラクタを用意しとけば良いんでないか?
デザイナが引数無しのコンストラクタを使って画面を描画してるので無しは駄目なんでしょ。
712:デフォルトの名無しさん
09/10/25 09:33:38
あ、引数なしのがデザイナから呼ばれると引数を使って追加のロジックを
入れているところがエラーになるのでDesignMode プロパティ で回避する必要があるかも
713:デフォルトの名無しさん
09/10/25 11:54:39
VB2008の引数を三つ取るIf文なんですけど
これは戻り値を受け取らないと使えないの?
714:デフォルトの名無しさん
09/10/25 11:56:31
副作用があるようなのを三項演算するな
715:デフォルトの名無しさん
09/10/25 12:53:16
>>713
そのIfは演算子。戻り値じゃないから無理だな
IIfは関数だから、戻り値は無視できる
というか、値がいらないならIf Then Else でいいと思うんだが
716:デフォルトの名無しさん
09/10/25 12:56:39
>>714
「副作用」が何を意味するかは関数型言語を知らないVB厨には理解できないと思う。
717:デフォルトの名無しさん
09/10/25 12:58:55
別に副作用は関数型言語に限った話じゃないけどな。
718:デフォルトの名無しさん
09/10/25 13:01:35
そんなことより、新型ウィルスワクチンの副作用が心配
719:デフォルトの名無しさん
09/10/25 13:42:17
>>718
死人が出るだろうね~
ま、オレの所までには配給来ないだろうから関係ない。
720:デフォルトの名無しさん
09/10/25 14:14:53
Ifは括弧付けないといけないのが嫌だな
ショートサーキットに見えない
721:デフォルトの名無しさん
09/10/25 15:23:38
Form1にBottan1を貼り付け
Form2にtextbox1を貼り付け
Form1のBottan1を押すと
dim frm2 as Form2
frm2.textbox1.text="abc"
が動作させたいのはなぜどうするばいいのや
722:デフォルトの名無しさん
09/10/25 15:31:05
Form2.Show()
Form2.textbox1.Text = "abc"
VB以外でこんなことやったら死刑だけどね
723:デフォルトの名無しさん
09/10/25 15:49:26
ふーん
724:デフォルトの名無しさん
09/10/25 15:52:47
bottantって猪料理か何かかね
725:デフォルトの名無しさん
09/10/25 18:13:15
>>722
そんなもんで死刑になるか~
日本で死刑になるのは殺人罪か国家反逆罪だけだ。
726:デフォルトの名無しさん
09/10/25 19:28:38
>>724
古代ラテン語らしいよ。
日本語もかなり微妙だし、過去から飛ばされて来たのかね?
727:デフォルトの名無しさん
09/10/25 22:36:01
インターネット上のファイルをダウンロードする際にファイルがあるかないか分からない状態の場合
無いファイルをダウンロードしようとした時の処理がしやすいダウンロード手順はどんな方法でやれば良いでしょうか
無い場合はできるだけ手早くないことを認識して次の処理へ進みたいです。
728:デフォルトの名無しさん
09/10/25 22:37:25
なかったら 404 が出るだろ普通。
なので、どの方法を使っても大差ない。
729:デフォルトの名無しさん
09/10/25 22:51:14
>>727
それだけの内容で答えられるヤツは居ない。
>>728はきっとエスパー。
730:デフォルトの名無しさん
09/10/25 23:08:06
ただのダウソ厨の誤爆かと思った。
確かに>>728はエスパー。
731:デフォルトの名無しさん
09/10/26 13:25:15
フォームを常に最前面に設定してあるのですが、他のアプリ(フルウインドウ)
を起動すると裏にいってしまいます。
どのようにすれば常に最前面にくるようにできますか?
732:デフォルトの名無しさん
09/10/26 19:53:41
MCI命令で無圧縮waveファイルを開いても、音量調節が出来ないのですが出来るように出来ますか?
また、一部のVBRなMP3ファイルが再生されません。
733:デフォルトの名無しさん
09/10/27 00:09:58
systemIOでtxtに書き出した"500"というデータが
readしたときには先頭のみが文字コードとして認識されてしまいます。
500という数値として読み込みたいのですがどうすれば
734:デフォルトの名無しさん
09/10/27 00:21:25
>>733
質問は日本語でお書き下さい。
735:733
09/10/27 00:30:58
事故解決しました、
736:デフォルトの名無しさん
09/10/27 01:37:49
プログラムの中からBIOSに触ることは出来ないよね?
737:デフォルトの名無しさん
09/10/27 07:09:36
>>736
BIOS情報の取得くらいはできるよ。
738:デフォルトの名無しさん
09/10/27 09:31:59
>>737
RTCAlarm触ってオンタイマーに出来ないかなと
昔ThinkPadでWindows上からBIOS設定出来るのがあったけど
あれは例外だよね
739:デフォルトの名無しさん
09/10/27 13:50:15
mp3タグの編集をしたいのですが
shell32の機能でタイトルなどを取得する事はできました
編集は出来ないでしょうか?
参考にしたのはこのサイトです
URLリンク(dzone.sakura.ne.jp)
よろしくお願いします
740:デフォルトの名無しさん
09/10/27 17:31:13
ゼロから学ぶ! 最新Visual Basic
こだか かおる著, 日経ソフトウエア編
URLリンク(ec.nikkeibp.co.jp)
■A4変型判,204ページ+付録DVD-ROM
■定価 2520円(税込)
■発行 日経BP社
■発売 日経BP出版センター
■ISBN978-4-8222-2845-3
初級編
その2 MP3ファイルを解析して楽曲データを編集する
URLリンク(itpro.nikkeibp.co.jp)
741:デフォルトの名無しさん
09/10/27 20:06:57
>>740
ありがとうございます
参考にしてみます!
742:デフォルトの名無しさん
09/10/27 21:19:58
↑こういう人は掛け声だけは威勢がいいが
参考にするとは言わない。みますと云って逃げに走る
決して最後まで完結させない。きっとそうだ。そうに違いない。
743:デフォルトの名無しさん
09/10/27 22:33:11
HAHAHA
744:デフォルトの名無しさん
09/10/27 23:01:56
Webカメラの映像を映すソフトをVBでプログラミングしたい場合はどうしたらよいのでしょうか?
745:デフォルトの名無しさん
09/10/27 23:05:17
USBカメラ プログラミング とかでググれば腐るほど出てくるだろ
もちろんVBは見つからないかもしれないが,最低でもC++だろうとC#だろうと読める程度のレベルでないとどうせ無理だ
746:デフォルトの名無しさん
09/10/27 23:08:46
>>744
OpenCV
747:デフォルトの名無しさん
09/10/27 23:45:43
またお前か
748:デフォルトの名無しさん
09/10/28 00:01:16
.NET2008でEthanetを使った通信を行いたい場合
Winsock以外に方法はありますか?
749:デフォルトの名無しさん
09/10/28 00:06:08
はい。
750:デフォルトの名無しさん
09/10/28 00:07:23
それはなんですか?
751:デフォルトの名無しさん
09/10/28 00:08:52
あ、未完成なWinInetは除いてです。
752:デフォルトの名無しさん
09/10/28 08:25:33
普通に.NETの標準ライブラリでできるだろ
753:デフォルトの名無しさん
09/10/28 10:09:03
System.Net.Sockets.Socket クラスでいいじゃないの。
Rawソケットもサポートしてるから、大抵のことはできる。
あれも内部的には Winsock のスタック使ってるから嫌だ、っつー話なら
そりゃー無茶だと答えるしかないが。
754:デフォルトの名無しさん
09/10/28 16:29:13
はじめまして
質問させてください。
Windows7でタッチパネル操作をハンドリングしたいのですが
VB.netで実装する場合は
マウスクリックやマウスオーバーで画面操作を取得できるのでしょうか?
現在、開発要件で確認を求められている状態です。
どこにも情報がない有識者の方助けてノдT
755:デフォルトの名無しさん
09/10/28 16:31:56
普通のはそれでいい。マルチタッチは知らん。
756:デフォルトの名無しさん
09/10/28 16:33:46
Visual Studio 2010を待て
757:デフォルトの名無しさん
09/10/28 16:34:22
>>755
マルチタッチはいらんので問題なすです。
ありがとうございます
非常にたすかりました。
758:デフォルトの名無しさん
09/10/28 16:37:07
む・・・まとめると以下でFA?
1、タッチパネル式マウスと同じ動きで乳首を攻めるエロゲ開発
通常のマウスと同じ
2、マルチタッチで乳首つかむエロゲ開発
Visual Studio 2010を待て
759:デフォルトの名無しさん
09/10/28 18:08:55
画面を指でタッチするとソフトが反応するプログラムはVB.NETでどう書けば。
760:デフォルトの名無しさん
09/10/28 18:09:36
まずタッチパネルを用意します
761:デフォルトの名無しさん
09/10/28 21:33:12
>>662
どなたか 662 を実現できるソフトを C# で頂きましたが VB2008 で中をいじれるように
ソースで頂けないでしょうか。