VB.NET質問スレ(Part31)
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2009/08/22(土) 17:44:56VB.NET質問スレ(Part30)
http://pc12.2ch.net/test/read.cgi/tech/1242522019/l50
テンプレは>>2〜
0002デフォルトの名無しさん
2009/08/22(土) 17:46:03http://msdn.microsoft.com/ja-jp/library/ms229284.aspx
どぼん!のVB道のトップページとTipsページ
http://dobon.net/vb/
http://dobon.net/vb/dotnet/index.html
Insider.NET
http://www.atmarkit.co.jp/fdotnet/index.html
宇宙仮面の C# プログラミング
http://uchukamen.com/
.NET TIPS
http://www.atmarkit.co.jp/fdotnet/dotnettips/index/index.html
緑のバイク ★ 初めてのC# プログラム全般
http://homepage3.nifty.com/midori_no_bike/CS/
VB.NETとC#でデザインパターン
http://hccweb1.bai.ne.jp/tsune-1/
匣の向こう側
http://www.ne.jp/asahi/nami/mei/index.html
WisdomSoft
http://wisdom.sakura.ne.jp/
じゃんぬねっと
http://jeanne.wankuma.com/
どっとねっとふぁん - C# Tips And Samples -
http://homepage3.nifty.com/dotnetfan/index.html
http://dotnetfan.org/
C#プログラミングTips
http://www.atmarkit.co.jp/fdotnet/csharptips/index/csharptips_index.html
0003デフォルトの名無しさん
2009/08/22(土) 17:46:43http://www.codeproject.com/vb/net/
the GotDotNet Home Page
http://www.gotdotnet.com/
KEN's .NET
http://www5b.biglobe.ne.jp/~yone-ken/VBNET/index.html
Cetus Links: 19,498 Links on Objects and Components / .NET
http://www.cetus-links.org/oo_dotnet.html
HIRO's.NET
http://vbdotnet.fc2web.com/index.html
@IT:特集 .NET開発者のためのオンライン・リソース・ガイド
http://www.atmarkit.co.jp/fdotnet/special/onlineres/onlineres_01.html
.NETでいきまっしょい!
http://santamartadotnet.hp.infoseek.co.jp/
これがほしかった!厳選サンプルツール集
http://anetm.com/dev/tools/vbdotnet.htm
ぬーやんのdotNET講座
http://www.geocities.jp/nuu_yan/dotNET/index.html
PINVOKE.NET
http://www.pinvoke.net/
WinAPI Database for VB Programmer
http://www.winapi-database.com/
0004デフォルトの名無しさん
2009/08/22(土) 17:47:37http://custom.programming-in.net/
CodeZine
http://codezine.jp/
ConvertCSharp2VB
http://www.kamalpatel.net/ConvertCSharp2VB.aspx
@IT:.NET Tools
http://www.atmarkit.co.jp/fdotnet/tools/index/index.html
SharpLibrary Redirector
http://www.sharplibrary.com/
MSDN アカデミック アライアンス 技術資料
http://www.microsoft.com/japan/msdn/academic/articles/
「300 秒でズバリ !!」&「10 行でズバリ !!」シリーズ
(VS2005) http://www.microsoft.com/japan/msdn/thisweek/300x10/
(VS.NET 2003) http://www.microsoft.com/japan/msdn/thisweek/wednesday/
PAPA'n VB
http://papanvb.i-love-vb.net/
(旧コンテンツ) http://www.mitene.or.jp/~sugisita/index_old.html
VB レスキュー花ちゃん
http://www.bcap.co.jp/hanafusa/dotnet/index.html
VB中学校
http://homepage1.nifty.com/rucio/main/main.htm
初心者から中級者のためのVB
http://www7b.biglobe.ne.jp/~vb_beginner2008/
テンプレここまで
0005デフォルトの名無しさん
2009/08/22(土) 19:38:310006デフォルトの名無しさん
2009/08/22(土) 21:02:000007デフォルトの名無しさん
2009/08/22(土) 22:44:39For I = 1 To 10
[email protected] = ???
Next
というコードで@の部分にfor~nextの I を入れたいのですがどうすれば入れられるでしょうか
おねがいします
0008デフォルトの名無しさん
2009/08/22(土) 22:50:070009デフォルトの名無しさん
2009/08/22(土) 23:26:15DirectCast(Me.GetType().GetField("PictureBox" & CStr(I)).GetValue(Me), PictureBox).Image = ???
0010デフォルトの名無しさん
2009/08/22(土) 23:33:230011デフォルトの名無しさん
2009/08/22(土) 23:33:4101-02-03-04-05-1A-1B-1C-1D-1E-1F
これをバイト配列に入れたいのですがどうしたら良いでしょうか。
Dim b() As Byte
b = Split(TextBox1.Text, "-")
これだとStringはByteから派生していない為配列に変換できないというエラーになってしまいます。
お願いいたします。
0013デフォルトの名無しさん
2009/08/23(日) 00:09:10いったん String 型の配列にとって、ループで Byte に変換しながら突っ込んでいけばいいじゃん。
0014デフォルトの名無しさん
2009/08/23(日) 00:12:37CByte(Val("&H" & str)) 'VB的な書き方
Convert.ToByte(str, 8) '.NET的な書き方
お好きな方をどうぞ。
一行に押し込めるならこんな感じか。
Dim b = TextBox1.Text.Split("-"c).Select(Function(arg) Convert.ToByte(arg, 8)).ToArray()
001514
2009/08/23(日) 00:27:510016デフォルトの名無しさん
2009/08/23(日) 00:41:14両方の方法を試してみたいと思います。
どうもありがとうございます。
001714
2009/08/23(日) 01:22:09すまないが、Convert.ToByte(str, 8)の8は16に直しておいてくれ。
0018デフォルトの名無しさん
2009/08/23(日) 09:19:49ToStringの逆も面倒見ろよ。
CByteのValっていらなくない。
0019デフォルトの名無しさん
2009/08/23(日) 10:23:21だけどドキュメントにはその明確な記述が見つからない……
定数宣言の際に使える表記である以上、
VB関連の関数では当然扱える、と解釈すべきなんだろうか。
0020デフォルトの名無しさん
2009/08/23(日) 10:58:49CByteの実体は、
Microsoft.VisualBasic.CompilerServicesのConversions.ToByte メソッド で
これにはObjectとStringのオーバーロードがある
IDEでは、CByte(Object As Expression) As Byte とポップアップが出るけど
Expression型って何やねんw
0021デフォルトの名無しさん
2009/08/23(日) 13:08:38VB厨呼ばわりされたくなかったら、CByteは論外として
Converter使うより型(この話の場合はByte)のParseメソッドを
使ったほうがいいと思うよ。
>>18
BitConverterの存在理由を考えればそれはないんじゃないの。
0022デフォルトの名無しさん
2009/08/23(日) 13:29:45本物のVBプログラマは ToString() は使わないで CStr() を使う。
何故ならばVB IDEで色が変わるからだ。
それのほうがソースが見やすい。
0023デフォルトの名無しさん
2009/08/23(日) 13:36:43CByte("&H" & str)
Convert.ToByte(str, 16)
Byte.Parse(str)
VBのコーディングとして下になるほど str(16進文字) をバイト型に
変換しているのが直感的に分かりにくくなると思うがどうかな?
0024デフォルトの名無しさん
2009/08/23(日) 13:38:470025デフォルトの名無しさん
2009/08/23(日) 13:39:310026デフォルトの名無しさん
2009/08/23(日) 13:51:14>Dim b = TextBox1.Text.Split("-"c).Select(Function(arg) Convert.ToByte(arg, 8)).ToArray()
目からウロコ。
1バイトずつList(Of Byte)に入れてからToArray()してたよ orz
0027デフォルトの名無しさん
2009/08/23(日) 13:54:13俺には理解できな発想だ。
普通に考えれば、Byte.Parseは直感的どころか明示的(ズバリそのまま)なわけで、
これ以上の分かりやすさはないと思うが。
0028デフォルトの名無しさん
2009/08/23(日) 13:59:09そんなネタみたいなコードにひょっとして本気で関心してるの?
悔い改めた方がいいよそういう発想。
VBerに限らず、ダメなプログラマっていうのは行数が短いことに価値がある、
という妄信に取り付かれている。
で、数ヵ月後自分で書いたコードが自分で理解できなくて困ってやがるw
プログラムっていうのは、コンパクトさよりも可読性をより優先しなくちゃダメ。
0029デフォルトの名無しさん
2009/08/23(日) 14:04:40こういうトリッキーなのもあるのだと関心していただけですよ〜
実際のコーディングに使ったらかなり鬼畜です。
0030デフォルトの名無しさん
2009/08/23(日) 14:07:50CByte("&H" & str) なんて.NET的にはお馬鹿なコーディングだけど
VB厨には分かり易いんじゃないですか?
0031デフォルトの名無しさん
2009/08/23(日) 14:09:44どうもそうらしいね。
俺には理解できんけど。
0032デフォルトの名無しさん
2009/08/23(日) 14:18:11○ = ★ : ● = ◎ : ▼ = "あばばばば"
とか
○ = × : ● = □ : ▼ = "くぁwせdrftgyふじこlp;"
みたいにして一行に12,30文字ぐらい普通に詰めてしまう俺でごめんなさい
短めな所で改行された方が縦に長くなって見づらいんです
0033デフォルトの名無しさん
2009/08/23(日) 14:23:08Java屋さんですか?
.NET(特にVB.Net)はJavaと違って「ぬるい」ところがあるのが好きですw
VB.Netだとフォームのコントロールの規定値がFriendだったりします。
よそから丸見え〜w (C#.NetだとPrivate)
あまり堅苦しいこと言っちゃぁVBなんてつつけません。
0034デフォルトの名無しさん
2009/08/23(日) 14:31:41If ○ = ● Then ◎ = ★ : Dim □ = ▲ : △ = "うあああ"
くらいやってください。
0035デフォルトの名無しさん
2009/08/23(日) 14:32:18言語は関係ないよ。
何も教条主義的なことを言ってるわけじゃない。
VB6から.NETに移行した人でも「CByte("&H" & str) 」式の書き方をする人と
しない人がいる。
前者の人は、要するにあたらしい事を覚えることを拒否してるだけ。
言い換えれば、例えばちゃんと.NET Frameworkについて少しは勉強して
Byte.Paraseメソッドを知ってる人であえてCByteを使う人はまずいない。
0036デフォルトの名無しさん
2009/08/23(日) 14:41:23>Byte.Paraseメソッドを知ってる人であえてCByteを使う人はまずいない。
知っていてあえてCByteを使う人だって居ますよ。
新しいことを覚える事を拒否すると .NET Frameworkなんてものは使えません。
そういう人たちはVB6.0に留まってますし未だVB6.0のゴミのような保守の仕事もある。
0037デフォルトの名無しさん
2009/08/23(日) 14:48:04いやいるかもしれんが、そういう人は(そういうメソッドが存在することを)「知っている」
だけに過ぎず、ちゃんと理解してはいないんだろ。
0038デフォルトの名無しさん
2009/08/23(日) 14:48:19VB6 からの移行モノとかで、周りが Choge() ばっかり使ってるなら、
CByte() でもなんもおかしくないし。
知らないから使えない、以外にも、知ってるけどわざと使わない、って選択肢もあるんだよ。
0039デフォルトの名無しさん
2009/08/23(日) 15:01:23VB厨てきな書き方だけど &H があるので str が16進数だと言うのはすぐにわかる。
>Convert.ToByte(str, 16)
これもToByteで16があるのでstrは16進数かなと思う
>Byte.Parse(str)
Byte.Parse メソッド (String)
数値の文字列形式を、それと等価の Byte に変換します。
パラメータ
s: 変換する数値を格納する文字列。文字列は、Integer スタイルを使用して解釈されます。
戻り値: s に指定されている数値と等価の Byte 値。
Integer スタイルって何やねん? ってことになってInteger スタイルを調べると
NumberStyles 列挙体にたどりつくと
数値基本型クラスの Parse メソッドに渡される数値文字列引数で使用できるスタイルを決定します。
この列挙体には、メンバ値のビットごとの組み合わせを可能にする FlagsAttribute 属性が含まれています。
ますます何やねん?でいまだにstrが16進数なのかどうかわからず。
こんなことになるのであえて CByte("&H" & str) を使うと。。
0040デフォルトの名無しさん
2009/08/23(日) 15:15:05いけない発想だと、無理に押さえ込む必要はないと思うけど。
0041デフォルトの名無しさん
2009/08/23(日) 15:17:240042デフォルトの名無しさん
2009/08/23(日) 15:20:040043デフォルトの名無しさん
2009/08/23(日) 15:23:05If 〜 Then の後に代入式三つは横スクロール必要になる事が多そうだなー
i = 1 : s = "a" : c = "."c
レベルの短さでコメント不要そうな内容なら考えるかも知れん
0044デフォルトの名無しさん
2009/08/23(日) 15:25:430045デフォルトの名無しさん
2009/08/23(日) 15:25:56- 感覚じゃない?(肯定しつつ同意を求める)
この使い分けができない人が増えたよね。
0046デフォルトの名無しさん
2009/08/23(日) 15:30:42マルチステートメントはCase文でしか使わないな〜
Select Case hoge
Case 1 : a = 2
Case 2 : a = 3
End Select
0047デフォルトの名無しさん
2009/08/23(日) 15:32:17それはoption strict onだとcastしないといけないからキライ
0048デフォルトの名無しさん
2009/08/23(日) 15:35:14???だらけのソースだけど他のをみてもそうなので仕方なく
それに合わせる小心者なオレがいる。
0049デフォルトの名無しさん
2009/08/23(日) 15:37:570050デフォルトの名無しさん
2009/08/23(日) 15:43:13なるほど、関心(感心?)した。
0051デフォルトの名無しさん
2009/08/23(日) 15:45:090052デフォルトの名無しさん
2009/08/23(日) 15:48:040053デフォルトの名無しさん
2009/08/23(日) 15:50:360054デフォルトの名無しさん
2009/08/23(日) 15:54:49ヒント:
もぉ、おかけで仕事が増えちゃったじゃない。
0055デフォルトの名無しさん
2009/08/23(日) 16:07:05働いたことないの?言語選ぶなよ
マジレスだぞ☆
0056デフォルトの名無しさん
2009/08/23(日) 16:17:010057デフォルトの名無しさん
2009/08/23(日) 16:20:400058デフォルトの名無しさん
2009/08/23(日) 20:43:17誰も突っ込みを入れないので
Byte.Parse(str) は、10進数の変換で
Byte.Parse(str, Globalization.NumberStyles.AllowHexSpecifier) としないと16進数変換になりません。
ついでに速度も測ってみた (結構いいかげんな測定なのであまり信用できないが)
(1) Dictionary(Of String, Byte)
(2) Convert.ToByte(str, 16)
(3) Byte.Parse(str, Globalization.NumberStyles.AllowHexSpecifier)
(4) CByte("&h" & str)
(1)はジェネリックなハッシュテーブルに00〜FFをセットしてテーブル引きする方法でこれが最速
(1)を基準にすると速度は
(1) 1.0
(2) 1.8
(3) 2.8
(4)20.0
CByte("&h" & str) が予想外に遅い。
文字連結の "&" が遅いのかと思って連結をやめてもたいして変わらない。
0059デフォルトの名無しさん
2009/08/23(日) 23:45:46***.prnファイルになったファイルを
VBでプリンタ(LPT1)に出力したいのですがどのようにしたら出来るでしょうか?
006059
2009/08/24(月) 00:24:30USBにつないだ通常使うプリンタに設定したプリンタです。
0061デフォルトの名無しさん
2009/08/24(月) 01:02:170062デフォルトの名無しさん
2009/08/24(月) 02:08:28マジか。CByteとかのChangeType系は
パフォーマンスが稼げるってMSDNに載ってたが、
一体、何と比較したんだろうなMS。
ParseがConvertより遅いのも意外だな。
Parseのが厳密に文字列表現を見るから、
速いかと思い込んでた。
0063デフォルトの名無しさん
2009/08/24(月) 03:12:58CTypeのテストをする時に、
shareのエロ動画DLが始まったんだろ。
0064デフォルトの名無しさん
2009/08/24(月) 04:39:43俺も信じられなかったんで検証してみた
たしかにCByte(str)はConvert.ToByte(str, 16) より10倍程度遅かった
Val(str)はConvert.ToByte(str, 16)より早かった
Valの戻りはDoubleらしいのでバイト型に(暗黙の変換で)代入した
そしてここで驚くべき結果
CByte(Val(str))はConvert.ToByte(str, 16)より速い
Val(str))より若干遅いだけ
Cxx関数のヘルプ見ると、インラインコンパイルされるのでパフォーマンスが向上するときもあります、とw
CByte(string)は遅いがCByte(Double)はかなり早い
CByteに文字列渡したときにいったいどんなコードにコンパイルされてるんだろうねぇ
0065デフォルトの名無しさん
2009/08/24(月) 06:11:070066デフォルトの名無しさん
2009/08/24(月) 19:49:06そういうもんにはDL専用のPCがあるw
>>64
Valなんて前世紀の遺物くらいに思っていたがやるもんだな〜
>CByte(string)は遅いがCByte(Double)はかなり早い
それは、.NETのボックス化、アンボックス化が絡んでいると思う。
参照型と値型の相互変換が遅いってやつ。
0067デフォルトの名無しさん
2009/08/24(月) 20:00:25どう考えてもそんなもの無関係
0068デフォルトの名無しさん
2009/08/24(月) 20:05:42CByte(Val(str))とVal(str)は同じコードが生成されているので速さの違いは測定誤差だと思う。
>>67
では何が関係しているのでしょう?
0069デフォルトの名無しさん
2009/08/24(月) 20:14:03gettext で 例えば aa の間に bを挿入したいんですが、
これやると aab になっちゃんです。
対処法お願いします。
0070デフォルトの名無しさん
2009/08/24(月) 20:14:05>CByteに文字列渡したときにいったいどんなコードにコンパイルされてるんだろうねぇ
CByte(str) ⇒ Conversions.ToByte(str)
CByte(Val(str)) ⇒ CByte(Math.Round(Conversion.Val(str)))
全然違うものになってる w
0071デフォルトの名無しさん
2009/08/24(月) 20:31:24皮肉にもVB厨な構文の勝利に終わったわけだなwww
0072デフォルトの名無しさん
2009/08/24(月) 20:34:54それが速さの原因
0073デフォルトの名無しさん
2009/08/24(月) 23:00:14VB9からIf演算子が追加されたよーC系の?:演算子と同等の記述ができるよー
0074デフォルトの名無しさん
2009/08/25(火) 23:11:34>では何が関係しているのでしょう?
いくらなんでもボックス化は関係ないわ
0075デフォルトの名無しさん
2009/08/25(火) 23:21:01なんで?
0076デフォルトの名無しさん
2009/08/25(火) 23:26:38厨なオレに分かるように説明してください。
0077デフォルトの名無しさん
2009/08/25(火) 23:27:480078デフォルトの名無しさん
2009/08/26(水) 00:05:11LabelからTextBoxに値を入れること。
Label同士、TextBox同士の値の代入は速いが相互にやると遅い。
ComboBoxとTextBoxの間では速度低下はない。
0079デフォルトの名無しさん
2009/08/26(水) 00:13:04とByValで渡しているのにhogeの中身が書き換えられるのは何故なんでしょう?
Sub aaa()の中でhogeが書き換えられなくするにはどうしたらいいの?
0080デフォルトの名無しさん
2009/08/26(水) 00:19:55hogeClassが参照型だから
> Sub aaa()の中でhogeが書き換えられなくするにはどうしたらいいの?
ディープコピー作るとか構造体にするとかあるけど
まあ普通気にしないでいいよ
0081デフォルトの名無しさん
2009/08/26(水) 00:33:14変数hogeの中に入っている「値」とは、hogeClassのインスタンスの
メモリ上の位置を表す「値」だから、とでも考えるよろし。
書き換えられたくないのなら、インスタンスのクローンを作ってそれを渡す、とか
ReadOnlyプロパティだけを並べたインターフェイスをhogeClassに実装させて
aaaはそのインターフェイスを引数に取るようにする、などの工夫が必要。
参照型と値型の違いとそれぞれの意味は、最初にちゃんと理解しとかないとマズいね。
0082デフォルトの名無しさん
2009/08/26(水) 00:48:07>ReadOnlyプロパティだけを並べたインターフェイスをhogeClassに実装させて
元のメンバーをPrivateにして新しくPublic ReadOnlyのを作るわけですか?
0083デフォルトの名無しさん
2009/08/26(水) 00:50:400084デフォルトの名無しさん
2009/08/26(水) 03:20:320085デフォルトの名無しさん
2009/08/26(水) 07:05:39ttp://www.s-cradle.com/developer/sophiaframework/tutorial/Cpp/const.html
0086デフォルトの名無しさん
2009/08/26(水) 07:54:52半分くらいわかった。
0087デフォルトの名無しさん
2009/08/26(水) 07:59:42ループを使いたいと思っています
for i = 0 to 10
DataGridView1.Rows(i).Cells(1).Value = 0
next
↑ではエラーが出てお手上げ状態です
お願いします
0088デフォルトの名無しさん
2009/08/26(水) 10:51:020089デフォルトの名無しさん
2009/08/26(水) 14:37:21やりたい事をもっと正確に書けよ
0090デフォルトの名無しさん
2009/08/26(水) 14:41:41009187
2009/08/26(水) 20:23:07別のDataGridView(DataGridView2とします)の行数をRowCountでiに行数を入れており
DataGridView2と同じ行数で内容は入っていないDataGridView1が出来ています
iが3だとするとDataGridView1のRows(0)からRows(2)までに0を入れたいと考えています
そこでループで行けるかと思い>>87のコードでやってみたところRowsの()の中は変数は使えないみたいでした
再度よろしくお願いします・・・
0092デフォルトの名無しさん
2009/08/26(水) 20:28:090093デフォルトの名無しさん
2009/08/26(水) 20:29:550094デフォルトの名無しさん
2009/08/26(水) 20:34:11イミディエイト ウィンドウ
'System.ArgumentOutOfRangeException' の初回例外が mscorlib.dll で発生しました。
例外ヘルパ
インデックスが範囲を超えています。負でない値で、コレクションのサイズよりも小さくなければなりません。 パラメータ名: index
ArgumentOutOfRangeException
i = DataGridView2.RowCount
が問題でしょうか?
0095デフォルトの名無しさん
2009/08/26(水) 20:42:58>>90 の言うとおりだな。
0096デフォルトの名無しさん
2009/08/26(水) 20:44:07009787
2009/08/26(水) 20:45:060098デフォルトの名無しさん
2009/08/26(水) 22:56:440099デフォルトの名無しさん
2009/08/26(水) 22:59:36VB だと Class か Structure かで分かる
0100デフォルトの名無しさん
2009/08/26(水) 23:06:41参照型ですね。
でも他の参照型と違う動きをしますよね。(謎
0101デフォルトの名無しさん
2009/08/26(水) 23:07:03とりあえず動いた。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'列の設定
Me.DataGridView1.ColumnCount = 1
Me.DataGridView2.ColumnCount = 1
'グリッド1に3行追加
Me.DataGridView1.Rows.Add("hoge1")
Me.DataGridView1.Rows.Add("hoge2")
Me.DataGridView1.Rows.Add("hoge3")
'グリッド2にグリッド1の行数を追加
Dim Count As Integer = Me.DataGridView1.Rows.Count
Me.DataGridView2.Rows.Add(Count)
'グリッド2に値を代入
For i As Integer = 0 To Count - 1
Me.DataGridView2.Rows(i).Cells(0).Value = "hoge" & (i + 1).ToString
Next
End Sub
0102デフォルトの名無しさん
2009/08/26(水) 23:45:19不変クラスとかimutable classで調べてみると分かる。
0103デフォルトの名無しさん
2009/08/27(木) 00:07:15ぐぐったらJavaのばかり出てきました。
上のほうで出てきてるシャローコピーとかディープコピーとかもJavaですね。
0104デフォルトの名無しさん
2009/08/27(木) 00:11:220105デフォルトの名無しさん
2009/08/27(木) 00:19:380106デフォルトの名無しさん
2009/08/27(木) 00:23:18でも不変参照型というのが分かってないと
なんでStringBuilderが必要なのか理解できない。
0107デフォルトの名無しさん
2009/08/27(木) 00:40:22それは参照型のString型を値型と同等に扱える仕組みと言うことで理解してOK?
0108デフォルトの名無しさん
2009/08/27(木) 00:43:200109デフォルトの名無しさん
2009/08/27(木) 00:45:30Orz
0110デフォルトの名無しさん
2009/08/27(木) 00:50:420111デフォルトの名無しさん
2009/08/27(木) 00:58:55標準ライブラリでぱっと思いつくのはSystem.Drawing.Font
0112デフォルトの名無しさん
2009/08/27(木) 07:37:08有難うございます。
System.Drawing.Font 見たけど不変参照型みたいな事は書いてないですね。
不変参照型って自分でも作れるんですかね。。
教えてくんになってしまっているので自分で勉強して出直してきます orz
0113デフォルトの名無しさん
2009/08/27(木) 10:34:53どういう違いがあるのでしょうか
ストラクチャ名だけでインスタンスを作るとグローバルな感じで、
入れ子にすると[クラス名].[ストラクチャ名]でインスタンスを作れるから、
どの目的のための構造体なのかがわかりやすい、というだけ?
あと、構造体のインスタンスは
Dim Hote As [ストラクチャ名]
これで暗黙的にNewされてインスタンスが作られている、
という理解で間違いないですか?
0114113
2009/08/27(木) 10:36:49Dim Hoge As [ストラクチャ名]
Dim Hoge As [ストラクチャ名] = New [ストラクチャ名]
この2つは同義で、どっちを使ってもおkということですか?
0115デフォルトの名無しさん
2009/08/27(木) 11:01:04ネストされた型の大きなメリットはアクセス制御をPrivateやProtectedにできること
内部の型から外部の型のPrivateメンバにアクセスできること
> 入れ子にすると[クラス名].[ストラクチャ名]でインスタンスを作れるから、
> どの目的のための構造体なのかがわかりやすい
名前空間と型名だけで表現できてなかったらすでに命名がまずい
> この2つは同義で、どっちを使ってもおkということですか?
IL レベルで違いはあるがまあ同じと考えて良い
0117デフォルトの名無しさん
2009/08/27(木) 18:19:23真面目に回答してた奴は、
質問者が拗ねてしまって、
危険な流れとばかりにスルー。
煽った奴は、相手がスレからつまはじき者にされて
自分の煽りの影響力にご満悦。
>>101のようにスレのルールに忠実な結果報告だけが
残る。2chって無責任な場所ですよね。
10年前から知ってましたが。
0118デフォルトの名無しさん
2009/08/27(木) 18:36:430119デフォルトの名無しさん
2009/08/27(木) 20:11:54でないと、こんな青臭いレスなんてできないよな。
0120デフォルトの名無しさん
2009/08/27(木) 20:57:56こういうのに限って「スイーツ(笑)」とかやってたりするんだよねw
0121デフォルトの名無しさん
2009/08/28(金) 02:38:250122デフォルトの名無しさん
2009/08/28(金) 03:48:15「青臭い」って・・・実際、他人に使ってみたことある?
きっと、言われた方は、喜ぶと思うよ。
0123デフォルトの名無しさん
2009/08/28(金) 07:57:520124デフォルトの名無しさん
2009/08/28(金) 08:02:290125デフォルトの名無しさん
2009/08/28(金) 10:51:05ある画像を表示する為に、APIのStretchDIBitsを使用しています。
ピクチャーボックスのPaintイベントで画像を描画する為、
引数のe.GraphicsからHDCを取得して使っています。
このHDCですが、なぜかLabelなどbノ一度値を出力bオないと、画像bェ描画されないbナすが、
似たような経験された方はいらっしゃらないでしょうか?
0126デフォルトの名無しさん
2009/08/28(金) 19:26:52画像のパスを設定するとか
外部の設定によって描画内容(描画ロジック)に変更ある?
変更あるなら変更のタイミングで描画命令を発行
変更ないならロジック晒すべし
0127デフォルトの名無しさん
2009/08/28(金) 19:27:02初め表示される時には、画像が無かったってオチかなあ。
XPと違ってVista以降はあまり再描画が発生しないし。
偶々そのLabelの変更がきっかけになっている、とか。
ウィンドウ表示後に画像が用意されるのなら、
ピクチャーボックスを明示的にInvalidateなりしないと。
0128デフォルトの名無しさん
2009/08/29(土) 05:45:41Paintイベントのヘルプみると
>コントロールが再描画されると発生します。
ってあるんだが、これは
コントロールが再線画されようとしたら発生
コントロールの再線画が完了したら発生
のどっち?
日本語を素直にとらえると後者なんだが、
例とかみてると前者じゃないとおかしな動作しそうだし
0129デフォルトの名無しさん
2009/08/29(土) 11:17:18コマンドボタンのような見た目で、押した時に凹んだままになり、
もう一度押すと元に戻るボタンをなんというのでしょうか?
0130デフォルトの名無しさん
2009/08/29(土) 11:23:17トグルボタンかな
0131デフォルトの名無しさん
2009/08/29(土) 11:24:01トグルできるButton風のコントロールはCheckBoxで扱う
0132129
2009/08/29(土) 11:25:31もうコマンドボタンっていわないんですね、失礼しました
ありがとうございました
0133デフォルトの名無しさん
2009/08/29(土) 12:50:01コントロールが<コントロール自身によって>再描画されると
0134デフォルトの名無しさん
2009/08/29(土) 15:17:36コントロールの描画は、OnPaintメソッドで行われるらしいので、
このメソッドの中でPaintイベントを発生させてるってこと?
そうなると、描画が完了してからイベント起きるか、完了まえにイベント起きるかは
そのコントロールの実装次第、ってことになるのかな?
0135デフォルトの名無しさん
2009/08/29(土) 16:08:57『コントロールが<コントロール自身によって>再描画されると』
これを描画前に呼ばれる可能性もありうると読み取るようなら、
日本語のセンスがちょっとヤバいんじゃないかと思うけど。
0136デフォルトの名無しさん
2009/08/30(日) 01:35:35Control.OnPaintのサンプルだと頭で呼び出しているけど。
0137デフォルトの名無しさん
2009/08/30(日) 02:09:36ではなく、MSの中の人が実装したコードについて「こうなってます」っていう
解説書だから、そういう物言いはナンセンス以外の何物でもない。
当たり前のことだと思うんだけどね。
0138名無しさん@そうだ選挙に行こう
2009/08/30(日) 04:00:29コントロールが再描画された後、追加の描画をユーザーに提供する目的で発生します。
一部のコントロールではこのイベントが発生しないこともあります。
こんな感じ?
0139名無しさん@そうだ選挙に行こう
2009/08/30(日) 04:26:41正確に読み取りたければ英語のを読め。
0140デフォルトの名無しさん
2009/08/30(日) 21:16:21Paintイベントはコントロールが再描画されようとしたときに発生するから。
なので、コントロール自身の再描画処理は、MyBase.Paint()で行う。
このMyBase.paint()を呼ばなければ、コントロール自身の再描画は行われない。
0141デフォルトの名無しさん
2009/08/30(日) 21:31:09コントロールの描画処理はOnPaintというメソッドの中に書かれている。
描画が終わった後,最後に基底クラス(Controlクラス)のOnPaintを呼ぶ。(呼ばなくてもいい)
ControlクラスのOnPaintメソッドの中にはPaintイベントを発生させる処理だけが書かれており,
Paintイベントが発生する。
だから,派生クラスを作ってOnPaintをオーバーライドしてその中に描画処理を書けば
基底クラスの描画処理は行われない。
0142140
2009/08/30(日) 22:17:53あと、一番最後の「コントロール自身の再描画は行われない。」は「基底クラスの描画処理が行われない。」
の間違い。
いいたかったことは、>>141と同じこと。
0143デフォルトの名無しさん
2009/08/31(月) 04:22:17>描画が終わった後,最後に基底クラス(Controlクラス)のOnPaintを呼ぶ
これなんだが、MSDNの例だと最初に呼んでる
最後に呼ぶと線画完了後にイベント起きることになる
俺がMSDNで調べた限りでは、
まず、最初にMyBase.OnPaint(e)を呼び出し、Paintイベントを発行させて、
その引数eをもとにレンダリングするのが正しい作法じゃないかな
したがって、
Paintイベントは再描画される前に発生し、そのイベントの引数により描画内容を変更することができる
が正解だと思う
実際すべてのコントロールがそのように実装されてるかどうかはしらね
0144デフォルトの名無しさん
2009/08/31(月) 09:42:22通例,On○○をオーバーライドするときには基底クラスのOn○○を先に呼ぶことが多いんだけど
OnPaintの場合は後で呼ばないとPaintイベントで描画した内容が見えなくなるだろ
0145144
2009/08/31(月) 10:03:26コントロールがControlクラスから直接派生している場合は,OnPaintには何の描画処理も書かれておらず,
ただPaintイベントを発生させる処理だけが書かれているので,後で呼ぶことができる。
こうしておけば,コントロールのユーザがPaintイベントを使うことによって描画を上書きできる。
でも,Buttonなど既にOnPaintに描画処理が書かれているコントロールから派生する場合は話が違ってくる。
そのようなサンプルで先にOnPaintを呼んでるのは,まず基底クラスに描画させてその上に描画するため。
その場合,その自作コントロールのPaintイベントは描画が行われる前に呼び出されてしまうので使えなくなる。
(そのコントロールのユーザがPaintイベントで描画してもOnPaintでの描画に上書きされてしまうから)
0146デフォルトの名無しさん
2009/08/31(月) 19:58:56当たり前のことじゃないか?
少なくとも俺はそうだったが・・・
0147デフォルトの名無しさん
2009/08/31(月) 22:20:05Paintイベントのヘルプだけ見てもここまでわからないだろ
まあ、関連しそうなところ全部読んで理解すればわかるんだろうが
MSDN全部読んで調べろっていうなら、質問スレの質問ほとんどがそれで済む
すくなくともここは初心者お断りじゃないだろう
0148デフォルトの名無しさん
2009/08/31(月) 22:44:300149デフォルトの名無しさん
2009/08/31(月) 23:14:45くだすれ作れよってことなら立てるだけなら誰でもできるが、果たして質問に答える方の人材はどうだろうかとも。
0150デフォルトの名無しさん
2009/08/31(月) 23:29:310151デフォルトの名無しさん
2009/09/01(火) 12:04:31標準のクラスがどうやってるかは Reflector で調べるのが確実。
0152デフォルトの名無しさん
2009/09/01(火) 14:31:02VB6で書いたコードをVB2008で読み込んで自動でコードを
変換させました。
CommonDialog1.CancelError = True
VB2008のCommonDialogクラスにはCancelErrorなんてプロ
パティは無いそうで、変換できないといわれました。
VB2008のコモンダイアログでCancelボタンを押したときの
値ってどこで取得したらよろしいんでしょう?
なにとぞよろしこ
0153デフォルトの名無しさん
2009/09/01(火) 14:35:360154デフォルトの名無しさん
2009/09/01(火) 14:43:330155152
2009/09/01(火) 14:45:29分かりました。へっぽこですんません。ありが�d
0156デフォルトの名無しさん
2009/09/01(火) 23:27:330157デフォルトの名無しさん
2009/09/01(火) 23:32:08.NETのオープンソースはほとんど全てC#
0158デフォルトの名無しさん
2009/09/02(水) 09:17:150159デフォルトの名無しさん
2009/09/02(水) 09:43:430160デフォルトの名無しさん
2009/09/02(水) 09:48:120161デフォルトの名無しさん
2009/09/02(水) 10:02:09C#とは比べ物にならないので,そういうの漁るならC#は必須
ほとんど一緒だから慣れたら脳内翻訳できる
0162デフォルトの名無しさん
2009/09/02(水) 10:09:32あるクラスから Form が呼び出されている場合、その Form で自分の呼び出し元クラスを取得する方法はありますでしょうか?
呼び出し元クラスの他のメソッドを実行したいのです。
現在は下記のように書いていますが、もっとスマートな方法はありますでしょうか?
フォーム frmX でクラス HOGE を New してっていうのが違和感があります。
HOGE.A() で f.Tag = Me とすれば frmX で
Call Ctype(Me.Tag, HOGE).B()
としてもいけそうですが、これもスマートではない気がします。
それとも、呼び出し元クラスのメソッドを実行する設計自体が問題あるのでしょうか?
Public Class HOGE
Public Sub A()
Dim f as New frmX
f.Show()
End Sub
Public Sub B()
MessageBox.Show("Hello!")
End Sub
End Class
Public Class frmX
Private Sub Button1_Click(Byval sender as System.Object, Byval e as System.Eventargs) Hanles Button1.Click
Dim H As New Hoge
Call H.B()
End Sub
End Class
0163デフォルトの名無しさん
2009/09/02(水) 10:12:28一般に,呼び出し元に依存するような設計は良くないんだけどVBならどうでもいいよ
0164162
2009/09/02(水) 10:25:14ありがとうございます。
なるほど!です。
frmX で
Private _Caller As HOGE
Public Sub New(Caller As HOGE)
InitializeComponent()
_Caller = Caller
End Sub
Private Sub Button1_Click(〜
Call _Caller.B()
End Sub
とすることでできました。
Form の既定のプロパティに呼び出し元を取得できるものでもあれば、と思っていたのですが
見つけることはできませんでした。
呼び出し元に依存するような設計の良くないと言われるのはどういった点でしょうか?
今後の参考にさせていただきたいので、お教えいただければと思います。
0165デフォルトの名無しさん
2009/09/02(水) 10:29:37HOGEの中身によるけど,あんまりその場に依存した具体的なクラスだとfrmXが使い回しできなくなる
0166162
2009/09/02(水) 10:44:48で、それぞれの機能をクラスに分けようと思っています。
もっと言うと別Dllにしてしまおうと考えています。
各機能で固有の機能や画面は各クラスで実装するつもりで、メインプログラムから
例えば処理HOGEを行う場合は、クラスHOGEのインスタンスを作成し、そのクラスの
メソッドを実行しようとしています。
frmX を他のクラスから使いまわすということはないです。
複数のクラスから使いまわす予定のものは呼び出し元クラスに依存しないような設計に
すれば問題ないですか?
0167デフォルトの名無しさん
2009/09/02(水) 11:41:21共通機能として別クラスに作るだけでいいんじゃないの?
0168デフォルトの名無しさん
2009/09/02(水) 12:10:05「呼び出し元」て…
frmX にイベントを追加するのが一般的じゃね?
Class HOGE
Public Sub ...
Dim f As New frmX
AddHandler f.押された, AddressOf B ' ←─ ここでハンドラ追加
f.Show()
End Sub
:
Public Sub B(ByVal self As Object, ByVal e As EventArgs)
MessageBox.Show("Hello!")
End Sub
End Class
Class frmX
:
Public Event 押された(ByVal self As Object, ByVal e As EventArgs)
:
Private Sub Button1_Click(...
RaiseEvent 押された(Me, New EventArgs)
End Sub
End Class
0169デフォルトの名無しさん
2009/09/02(水) 12:15:110170デフォルトの名無しさん
2009/09/02(水) 12:17:27>>166を読む限り,frmXの処理は密接にHOGEに結びついてるみたいだから
無理にイベントを使っても強くHOGEを意識する形になると思われるのであまり意味がない
本当に分離するなら,frmXで触るデータを保持するクラスをHOGEとは別に作る
0171デフォルトの名無しさん
2009/09/02(水) 14:07:34関数の処理時間を計ろうと以下のクラスを作成しました。
Public Class ProcTime
Private dtDiff As DateTime
Public Sub New()
dtDiff = DateTime.Now
End Sub
Protected Overrides Sub Finalize()
Debug.Print(DateTime.Now.Subtract(dtDiff).Milliseconds.ToString())
End Sub
End Class
'時間を計る関数に
Private Sub Test()
Dim pt As New ProcTime
'〜処理〜
End Sub
とした場合、正しく計れないのですが間違っていますか?
0172デフォルトの名無しさん
2009/09/02(水) 14:11:06そういうパフォーマンス計測にはSystem.Diagnostics.Stopwatchという専用のクラスがあるからそれを使う。
0173171
2009/09/02(水) 14:22:34時間を計測したい関数の最初と最後に Start、Stop を配置して
計測するんですね、分りました。
0174デフォルトの名無しさん
2009/09/02(水) 16:54:24>int Foo(void **param) 実際はparamが複数ある
>ダブルポインタを渡してオブジェクトのポインタ値を取得する。NULL値も許容する。
VB.net2003での宣言を以下のようにしたらNothingを渡してもNULL(0)になりませんでした。
>Declare Ansi Function Foo Lib "hoge.dll" (ByRef param As IntPtr) As Int32
VBからポインタ値の先を直接参照するわけではなく、ハンドル的な使い方をしたいのです。
NULL値も渡せるようにするにはどうしたらいいのでしょうか?
0175174
2009/09/02(水) 16:56:48C++のDLLはネイティブ(アンマネージド)DLLです。
0176デフォルトの名無しさん
2009/09/02(水) 17:02:170177デフォルトの名無しさん
2009/09/02(水) 17:13:360178デフォルトの名無しさん
2009/09/02(水) 17:20:35Declare Ansi Function Foo Lib "hoge.dll" (ByVal param As IntPtr()) As Int32
としたところ「型 'System.IntPtr' の値を 'System.IntPtr の 1 次元配列' に変換できません。」とエラーになってしまいました。
呼び出し側も何か書き方があるのでしょうか?
>Dim param As IntPtr
>Dim b = Foo(param, Nothing) '引数が2個の場合
0179デフォルトの名無しさん
2009/09/02(水) 17:25:030180デフォルトの名無しさん
2009/09/02(水) 17:38:14ぽいのができてしまいました。setup.exeを実行すればなんとなくインスト
ールされて立ち上がります。しかし、インストールされた実行ファイル等は
programfilesのフォルダには影も形もありません。
そもそもVB6の時のように、インストール不要のexeファイルを作りたいの
ですが、VB.Netではできないのでしょうか?
0181デフォルトの名無しさん
2009/09/02(水) 17:43:440183デフォルトの名無しさん
2009/09/02(水) 18:19:140184デフォルトの名無しさん
2009/09/05(土) 04:06:17vb2005、vb2008はどちらかというと個人向けとwikiに書かれていました。
vb.net 2003が良いのでしょうか?
ご教授願います。
0185デフォルトの名無しさん
2009/09/05(土) 04:50:09特に事情がなければ新しいのを使えよ
0186デフォルトの名無しさん
2009/09/05(土) 04:53:040188デフォルトの名無しさん
2009/09/05(土) 09:36:56いまどき2003は無いよ。IDEボロだし。
WPFとか最新機能を使わないのなら2005でOK
2008でも良いけどIDEが劇重い
0189デフォルトの名無しさん
2009/09/05(土) 09:40:19まともなPCなら2008の方が体感速度は速い気がする
0190デフォルトの名無しさん
2009/09/05(土) 09:44:530191デフォルトの名無しさん
2009/09/05(土) 09:48:360192デフォルトの名無しさん
2009/09/05(土) 09:49:160193デフォルトの名無しさん
2009/09/05(土) 09:53:080194デフォルトの名無しさん
2009/09/05(土) 10:09:390195デフォルトの名無しさん
2009/09/05(土) 10:19:140196デフォルトの名無しさん
2009/09/05(土) 10:24:35インテリセンス超速いし,徹底的に洗練されてる感じ
ゴテゴテのEclipseとは対照的
0197デフォルトの名無しさん
2009/09/05(土) 10:56:540198デフォルトの名無しさん
2009/09/05(土) 11:49:02・スコープを考慮した変数名の一括置換が出来ないなど各種リファクタリング機能が無い叉は貧弱。
・編集ウィンドウのタブに閉じる「×」が無いため閉じるのが面倒。また全てを一度に閉じる機能も無い。
・プライベート変数からプロパティを自動生成する機能が無い。
・プラグインが作り難い。
・Javaで書かれたEclipseよりもなぜか重く感じる。
0199デフォルトの名無しさん
2009/09/05(土) 11:52:070200デフォルトの名無しさん
2009/09/05(土) 11:53:45初心者が誤解するので、Express しか使ったことがないなら
そう書いて欲しいもんだ。
0201デフォルトの名無しさん
2009/09/05(土) 11:54:430202デフォルトの名無しさん
2009/09/05(土) 12:01:260203デフォルトの名無しさん
2009/09/05(土) 19:40:47全てのドキュメントを閉じる、は付いてる。
プロパティはコードスニペットを使う。
いつからEclipseがVBに対応したのか知らないけど。
0204デフォルトの名無しさん
2009/09/05(土) 20:08:08あんま使わないから覚えてないけど。
既にあるプライベート変数から、プロパティ作るのと
prop->のコードスニペットは別の動作だと思う。
0205デフォルトの名無しさん
2009/09/05(土) 20:51:580206デフォルトの名無しさん
2009/09/05(土) 20:54:570207デフォルトの名無しさん
2009/09/05(土) 21:19:24まあ、俺はテキストエディタ素人だから、JavaはNetBeans、.NET系はVisualStudio使うけど。
0208デフォルトの名無しさん
2009/09/05(土) 21:55:18でも今時になってもリアルで「エディタにこだわる俺はお前らとは違うんだ」っていう
痛い奴がいたりするからあまり笑えないかも。
0209デフォルトの名無しさん
2009/09/06(日) 02:09:57だがここはVB.NETスレだからEclipseとかいらん
0210デフォルトの名無しさん
2009/09/06(日) 03:14:440211デフォルトの名無しさん
2009/09/06(日) 03:25:340212デフォルトの名無しさん
2009/09/06(日) 03:35:27VS2010ベータ試してフィードバックに投げた方がよほど建設的なの
0213デフォルトの名無しさん
2009/09/06(日) 03:54:20ツールがあったはず。
C#と同等のリファクタリング機能とか謳ってた記憶があるが名前忘れた。
少なくともメソッドの抽出は出来たはず。
'どうせウチの環境じゃ入れてもらえないけど…
0214デフォルトの名無しさん
2009/09/06(日) 08:04:210215デフォルトの名無しさん
2009/09/06(日) 16:12:39Dim items As Object()
〜
If type Is GetType(String) then items = new String() {}
〜
return items
End Function
Dim names() As String = GetItems(GetType(String))
とすると「InvalidCastException」になりました。
CTypeやDirectCastも試してみましたが同じ結果でした。
要素を1つずつコピーすれば出来ると思うのですが、もっと単純な方法はありませんか?
0216デフォルトの名無しさん
2009/09/06(日) 16:17:170217デフォルトの名無しさん
2009/09/06(日) 16:19:540218デフォルトの名無しさん
2009/09/06(日) 16:29:30普通はジェネリック使うべきだけど
0219デフォルトの名無しさん
2009/09/06(日) 16:32:56何がしたいのか意味が全然わからないが、
呼び出し側でString()を常に期待する(>>215のコードを見る限り、そう取れる)
のなら、GetItems()の返り値の型をString()にすれがいいんじゃないの?
Typeオブジェクトで指定した型の配列を返すようにしたいってこと?
それはできないから、どうしてもというならObject(Object()ではない)を
返すようにして、呼び出し側でキャストするしかない。
0220デフォルトの名無しさん
2009/09/06(日) 16:41:48If type Is GetType(Integer) then items = new Integer() {}
If type Is GetType(Double) then items = new Double() {}
みたいなことをやりたいんじゃないの?
0221デフォルトの名無しさん
2009/09/06(日) 17:04:54Function CreateArray(Of T)(ByVal size As Integer) As T()
Return New T(size){}
End Function
0222デフォルトの名無しさん
2009/09/06(日) 17:15:100223デフォルトの名無しさん
2009/09/06(日) 17:31:590224デフォルトの名無しさん
2009/09/06(日) 17:37:53やりたいこととしては>>220に近い感じです。
〜Collectionとかの要素をオブジェクトの配列として参照したり文字列の配列として参照したりしたかったのです。
ジェネリックは2005から使えるみたいなので私の使っている2003では使えませんね。
Object()ではなくObjectにすればキャスト出来るみたいなので試してみます。
0225デフォルトの名無しさん
2009/09/06(日) 18:38:150226デフォルトの名無しさん
2009/09/06(日) 18:40:530227デフォルトの名無しさん
2009/09/06(日) 21:26:59すべて共通のコードで扱える
0228デフォルトの名無しさん
2009/09/06(日) 21:36:45DataGridで特定の行に色設定し、さらに行選択もできるようにしたいんです。
DataGridで特定の行に色設定することは、
DataGridTextBoxColumnを継承してクラスを作成し、
Paintメソッドをオーバーライドすることで出来ました。
行選択もHandles DataGrid1.Paintしたメソッドに
DataGrid1.Select(DataGrid1.CurrentRowIndex)
を書けばできました。
でも両方をいっぺんにやる方法が分かりません。><
たぶん、オーバーライドしたPaintクラスから
DataGrid1.Selectが出来れば良いんだと思いますが、
やり方が分かりません。
どなたか教えてくださいませんか?
0229デフォルトの名無しさん
2009/09/07(月) 08:06:28上記SQLでセレクトしたテーブルをリストボックスに入れて
DisplayMemberpを jp.id などにすると、なぜかそのような列が見つからないようで、表示に反映されません。
なぜだか分かる方いませんか(;´Д`)
0230デフォルトの名無しさん
2009/09/07(月) 08:20:00としてhogeにしてみたら?
0231デフォルトの名無しさん
2009/09/07(月) 08:54:12積年の恨みが一瞬で解決した
痔は治らないが
0232デフォルトの名無しさん
2009/09/07(月) 11:30:190233デフォルトの名無しさん
2009/09/07(月) 19:10:56と思うぜ?
0234デフォルトの名無しさん
2009/09/08(火) 14:00:12…
まあ最近見ない表現だから解らんのも無理はない。<「〜だぜ?」
0235デフォルトの名無しさん
2009/09/08(火) 15:55:32無理だぜ?
と言っても
見ないんだぜ?
解らんだぜ?
とは言わなんだぜ?
0236デフォルトの名無しさん
2009/09/08(火) 23:24:19ウインドウ左上のアイコンを変更するにはどうすればいいでしょうか?
ちなみにアイコンそのものは変更してみましたが変わりませんでした
0237デフォルトの名無しさん
2009/09/08(火) 23:45:020238デフォルトの名無しさん
2009/09/09(水) 00:13:38アイコンの変更は試しましたがウインドウの左上の絵がかわりませんでした
0239デフォルトの名無しさん
2009/09/09(水) 00:27:29どっちの?
0240デフォルトの名無しさん
2009/09/09(水) 00:46:36どっち?
0241デフォルトの名無しさん
2009/09/09(水) 03:08:40このキーに新しいキーを追加してメニューから自作アプリを起動たいのですが
レジストリキーの既定のところに
c:\test.exe
と書いても起動しないのですが他にどんな設定をしたら良いでしょうか?
0242デフォルトの名無しさん
2009/09/09(水) 08:10:190243デフォルトの名無しさん
2009/09/09(水) 15:15:400244デフォルトの名無しさん
2009/09/09(水) 17:30:28今まで独学でvb.net+mdbのデータベースを勉強しているのですが、サンプルに使っているSQL文がそのままだとJETに使えないため、いっそMySqlに乗り換えようと試みています。
いろんなサイトでMySqlのデータベースを作成することはできたのですが、なぜかそのファイルが生成されていないみたいです。
「ファイル+vb.netで作ったアプリケーション」を人に渡して使ってもらうようにしたいので、どうしてもファイルが必要です。
また、渡した相手のローカルコンピュータにはMySqlは基本的にありません。
もしくはvb.netのソースコード側でMySqlのデータベースファイルを生成する方法でもあるのでしょうか?
よろしければ教えてください。
0245デフォルトの名無しさん
2009/09/09(水) 18:51:000246デフォルトの名無しさん
2009/09/09(水) 19:01:26これですね、ちょっとやってみます。
中の文面を流し読みした感じ、SQLiteの特徴として「単一のファイルでデータベース管理できるので簡単」とありましたが
つまり普通のデータベースではそういう管理をしないということなのですね
0247デフォルトの名無しさん
2009/09/09(水) 19:21:020248デフォルトの名無しさん
2009/09/09(水) 20:31:030249デフォルトの名無しさん
2009/09/09(水) 21:08:080250デフォルトの名無しさん
2009/09/09(水) 23:59:08ありがとう。他のアプリの設定を見たら全部スクリプトになってました。
0251デフォルトの名無しさん
2009/09/10(木) 14:15:24結局何がしたかったかっていうと、勉強がてら、某ゲームのデータベースを作ってたんです。
が、そのSQL文がSQLiteには通りませんでした(;´Д`)
やむを得ずMySqlに変えてSQL発行してみると普通に通ってしまいました。
http://www.l2jdp.com/svn/trunk/datapack_development/sql/raidboss_spawnlist.sql
↑SQLのソースはこれです。
あ、今回は特に質問ではないですが事後報告ということで。
お答えくださった方、ありがとうございました。
0252デフォルトの名無しさん
2009/09/10(木) 16:51:08MySQL と PostgreSQL 以外にこの構文受け付けるやつってあったっけ?
0253デフォルトの名無しさん
2009/09/11(金) 03:55:27【国際】 中国 「IT製品、ソースコード開示せよ。情報漏洩はないから」…日本側が撤回求めるも、予定通り実施へ
★5http://s01.megalodon.jp/2009-0910-2351-20/tsushima.2ch.net/test/read.cgi/newsplus/1252552869/
★4http://s04.megalodon.jp/2009-0910-1154-15/tsushima.2ch.net/test/read.cgi/newsplus/1252535413/
★3http://s04.megalodon.jp/2009-0910-0825-37/tsushima.2ch.net/test/read.cgi/newsplus/1252516744/
★2http://s03.megalodon.jp/2009-0910-0347-50/tsushima.2ch.net/test/read.cgi/newsplus/1252499899/
★1http://s02.megalodon.jp/2009-0910-0347-12/tsushima.2ch.net/test/read.cgi/newsplus/1252487422/
0254デフォルトの名無しさん
2009/09/11(金) 08:38:04乗り換えるメリットある?
0255デフォルトの名無しさん
2009/09/11(金) 09:54:21・.NET3.0&.NET3.5(WPF,WCF等)
・.NET2.0の部分は変更なし
WPFとか使わないならそんなに変わらない
どうせWinFormsはVS2010以降も放置だろうけどな
0256デフォルトの名無しさん
2009/09/12(土) 23:24:55VB6でwinsock使ってやってたのですが、
VB2008やらVB.netでも同様にできるのでしょうか?
0257デフォルトの名無しさん
2009/09/12(土) 23:40:13ググればその手の情報はいっぱい出てくるじゃん。
0258デフォルトの名無しさん
2009/09/13(日) 00:36:190259デフォルトの名無しさん
2009/09/13(日) 00:39:10そりゃぁ、回線を首に巻いて首吊って回線切れてんだから
ぐぐっても出ねぇよw
0260デフォルトの名無しさん
2009/09/13(日) 00:49:11このソースのこの部分がよく分りません。そこでこういうふうにしてみましたが、
こういうエラーが出てうまく行きません。このエラーはこういう意味みたいなので、
ここをこうしてみましたが同じエラーがでます。他にエラーの原因として考えられる
ことはあるでしょうか?
...みたいな努力のあとは欲しいわな。いくらゆとりとはいえ。
0261デフォルトの名無しさん
2009/09/13(日) 00:55:58「VB.NETでWinsockを使う」って考えで調べるからダメなんじゃないだろうか、この手の人
0262デフォルトの名無しさん
2009/09/13(日) 00:57:47winsockってwinsock.ocxの事かな?
であればvb.netでもocxは使えるので同じように作れるけど。
0263デフォルトの名無しさん
2009/09/13(日) 02:54:390264デフォルトの名無しさん
2009/09/13(日) 03:50:190265デフォルトの名無しさん
2009/09/13(日) 07:57:050266デフォルトの名無しさん
2009/09/13(日) 08:12:300267デフォルトの名無しさん
2009/09/13(日) 09:53:34ocxじゃ無くなったんですか。
vb.netでもCOMなdll呼べるし、Dllimportでwinsock APIも呼べるし
ソケットプログラムには不自由しませんね。
0268デフォルトの名無しさん
2009/09/13(日) 10:01:470269デフォルトの名無しさん
2009/09/13(日) 10:22:240270デフォルトの名無しさん
2009/09/13(日) 14:20:51それじゃ全然オプションないだろ
使い物にならなくね?
UNIXみたいに自由にできん
0271デフォルトの名無しさん
2009/09/13(日) 14:37:14System.Net.Sockets.Socket クラス使えばOK
0272デフォルトの名無しさん
2009/09/15(火) 00:45:00UNIX波に
0273デフォルトの名無しさん
2009/09/15(火) 04:10:50数年前発売されたVisualStudio6.0を持っているのですが
マイクロソフトから提供されているフリーの.NETをインストールするか悩んでいます。
.NET開発環境ではマウス操作だけで出来ることをVC6.0ではシコシココードを書かなければいけないというふうな
違いがあるのであればVC6.0で勉強するだけ無駄になりますし。
0274デフォルトの名無しさん
2009/09/15(火) 05:50:39とりあえず.NET以前のVBとVB.NETは別物と思った方がいいぐらい違う
0275デフォルトの名無しさん
2009/09/15(火) 05:54:08今まで
pos = Arrary( x, y)
のような表記だったのをそのままビルドしようとすると
>エラー 1 'Array' は型です。有効な式ではありません。
と前回ビルドに成功したものが実行されます。
左辺値は別アプリ(Photoshop)のオブジェクトライブラリのメンバで、As Variant, unit value(?)以外の詳細が分かりません。。
これを、
dim ops as Object
ops = New Object(){x, y}
pos = ops
とやると、実行時に最後の行でCOMエラーが起きます。どのように修正すべきなのでしょうか・・・。
まだ切り替えたばかりで調べつつなので、書くべき情報が少なかったらすいません。必要あれば追記します。
0276デフォルトの名無しさん
2009/09/15(火) 10:02:47MSDNくらい参照したら?
0277デフォルトの名無しさん
2009/09/15(火) 12:46:49> 左辺値は別アプリ(Photoshop)のオブジェクトライブラリのメンバで、As Variant, unit value(?)以外の詳細が分かりません。。
じゃあ誰も分からん
.NETでのCOMとの相互運用はVB6みたいな「よくわからないけどなんとなく使える」じゃ通じない
0278275
2009/09/15(火) 22:41:14277さんありがとうございます。
COM自体あまり良く理解してないと思うので、大人しくこのツールはVB6現行のまま作ろうと思います。
Photoshopのスクリプティングガイド等にもそこまで詳しい情報は載ってませんでした。orz
0279デフォルトの名無しさん
2009/09/15(火) 22:52:52つーか詳細が分かりませんって、スクリプティングガイドあるんだからちょっとは調べろー
0280275
2009/09/15(火) 23:20:15型宣言を書き換えたらエラー無し。 .NET以前の問題で申し訳ありません。。orz...
0281デフォルトの名無しさん
2009/09/16(水) 23:47:28将来的にMS ACCESSの制御をやることになりそうなので、練習ということで、
ソリューション エクスプローラの参照設定を右クリックして、
"Microsoft Access 10.0 Object Library"を登録して、そこまではうまく行ったんです。
そのあと、しばらく色々と遊んで、
そのあと、参照設定の参照ツリーから何かの拍子にAccessを削除して、もういちど登録したら、
黄色い三角に「!」の警告マークがでて、参照ができなくなってしまったんです。
過去にClick Onceのテスト用にビルド&発行してあった場所に、interop.access.dllというのが
あったので、それをインポートしたら復旧したのですが、このDLLが自PCのどこを探しても
ないのです。
いろいろググって、PIA
http://support.microsoft.com/default.aspx?scid=kb;ja;328912
がタイプライブラリ(的なもの)の詰め合わせ、と思ってダウンロードしてインストールしたら、
名前が、
×Access.Application
○Microsoft.Interop,Access.Application
でないと呼び出せなくなってしまってたんですね。どうも不可解で、
「ああ、それはこの辺がクサいよ」というエスパーの方、おられませんでしょうか?
結局、修復インストールまでしたのですが、だめ。(上に書いたinterop.access.dllが必須)
念のため書いておくと、Accessの参照を登録してから、他にやった(かもしれない)こととして、
・dotNetFx35setup.exe という最新版を落として入れた。
・MicrosoftR WindowsR Software Development Kit for Windows ServerR 2008 and .NET Framework 3.5
というのを入れた
というのがあります。
なにとぞご協力を。多少熟練した暁には、私も回答お手伝いしますので。
0282デフォルトの名無しさん
2009/09/16(水) 23:49:280283デフォルトの名無しさん
2009/09/17(木) 07:37:29単に、以前は参照設定でMicrosoft.Interopが入っていただけじゃないのか?
0284デフォルトの名無しさん
2009/09/17(木) 11:29:31メモリーを消費しているような感じなのですが問題はないのでしょうか?
メモリー消費のチェックには、
http://www.forest.impress.co.jp/lib/sys/wincust/taskservice/prcsxplorer.html
を使いました。これを起動して、該当するアプリケーションのプロセスを
右クリックして[Properties]→[Performance]タブで[I/O]欄内のOtherを
モニターしてみると、上記メソッドを実行するたびに数バイトずつ増加していきます。
そのとき同時に同タブ内の[VirtualMemory][PhysicalMemory]の値も増加していました。
Directory.Exists() や File.Exists() の後ですぐに GC.Collect() を行なうと、
原則として[VirtualMemory][PhysicalMemory]の値は増加しないようでした。
しかし[I/O]欄内のOtherは増加していました。GCを使ったのはこれが初めてです。
これはいわゆる言うところのメモリーリークなのでしょうか、すみませんがご指導を
お願いします。
0285デフォルトの名無しさん
2009/09/17(木) 11:33:310286デフォルトの名無しさん
2009/09/17(木) 11:35:540287284
2009/09/17(木) 11:36:19http://social.msdn.microsoft.com/Forums/ja-JP/vbgeneralja/thread/95c45070-46f7-4c77-8cfa-a6c011a4ab73
やはり Directory.Exists() が使われていました。もしかするとこれも関係して
いるような気もしました。
何卒、よろしくお願いします。
0288284
2009/09/17(木) 11:42:35>Directory.Exists() や File.Exists() の後ですぐに GC.Collect() を行なうと、
原則として[VirtualMemory][PhysicalMemory]の値は増加しないようでした。
しかし[I/O]欄内のOtherは増加していました
この GC.Collect() を使った場合でも、それまでに GC.Collect() を使わないで
累積してしまった[VirtualMemory][PhysicalMemory]は減らないようでした。
0289デフォルトの名無しさん
2009/09/17(木) 11:46:040290284
2009/09/17(木) 11:51:46どうもです。一応、このメソッドを使ったときには、上記のように直後に
GC.Collect()を実行しておくべきでしょうか?それとも不要でしょうか?
一応、先ほどの
http://www.forest.impress.co.jp/lib/sys/wincust/taskservice/prcsxplorer.html
を使って加速テストをやってみます。仮にそれで実質的なメモリー消費が
起きている場合には何か対策が必要になるでしょうか?
0291デフォルトの名無しさん
2009/09/17(木) 12:12:23何のためにGCがあると思ってるんだ
0292デフォルトの名無しさん
2009/09/17(木) 12:32:09C++ (unsafe)
0293デフォルトの名無しさん
2009/09/17(木) 12:35:09FullGCしたら無駄に遅くなるだけ
0294デフォルトの名無しさん
2009/09/17(木) 13:01:38そのためなら処理速度だってくれてやる。OSが壊れたって構わない。
データの不整合? 頻発する強制終了? BIOSから進めない? 知ったことか。
私はメモリという1つの美しい空間が1の状態に励起されることが、
そのような乱暴な行いが、それらのすべてが許せないのだ!!!!」
0295デフォルトの名無しさん
2009/09/18(金) 02:02:51基地外かよ
0296デフォルトの名無しさん
2009/09/18(金) 02:13:32POSTを使うのはわかるが、リファラとか構成がわかわん
0297デフォルトの名無しさん
2009/09/18(金) 04:37:150298デフォルトの名無しさん
2009/09/18(金) 05:06:27何か高速化の方法があれば教えてください。
今のところ自分の試した方法は無駄な描画を減らすことですが、大した変化はありませんでした。
コードは以下のような具合です。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.ClientSize = PictureBox1.BackgroundImage.Size
Me.SetStyle(ControlStyles.ResizeRedraw, True)
Me.SetStyle(ControlStyles.Opaque, True)
End Sub
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
MyBase.OnPaint(e)
e.Graphics.DrawImage(PictureBox1.BackgroundImage, Me.ClientRectangle)
End Sub
また、下記のサイトでVB.NETのとっている画像処理方式が最悪であり、遅いといわれていることが分かりました。
http://www.nextftp.com/swlabo/m1_vbnet/hp_experiment/exp001.htm
これってつまり、これ以上はどうしようもないということでしょうか。
このサイトにはなにやら方法が書いてあるようですが、書いてあるコードは宣言もしていない変数を当たり前のように使っているし理解不能でした。
0299デフォルトの名無しさん
2009/09/18(金) 08:03:08まあそれはともかく、クリッピング任せで毎回全部描画するのを止めれば良いんじゃないかな。
表示領域の範囲だけ転送するようにするだけでも大分マシになると思う。
0300デフォルトの名無しさん
2009/09/18(金) 08:59:12…パケット?
0301デフォルトの名無しさん
2009/09/18(金) 11:05:330302デフォルトの名無しさん
2009/09/18(金) 13:56:04Public Class Form1
Private Sub Form1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
Beep()
End Sub
End Class
マウスカーソルをフォームの上に置いて、移動しなくても 約1秒ごとにBeep() が実行されます。
つまり、移動しなくても MouseMove は定期的に呼ばれています。これは、仕様ですか?
それとも環境が悪いのでしょうか。 Windows 7 Ult のほぼ素の状態で実行してます。
0303デフォルトの名無しさん
2009/09/18(金) 19:50:130305デフォルトの名無しさん
2009/09/19(土) 01:23:49地図上に線を引きたいのですが、そういうことが出来る地図ソフトはあるでしょうか?
有料でも良いので知っていたら教えて
0306デフォルトの名無しさん
2009/09/19(土) 01:48:120307デフォルトの名無しさん
2009/09/19(土) 09:46:15vb全く関係ないな
0308デフォルトの名無しさん
2009/09/19(土) 10:34:550309デフォルトの名無しさん
2009/09/19(土) 13:03:550310デフォルトの名無しさん
2009/09/21(月) 07:21:450311デフォルトの名無しさん
2009/09/22(火) 15:36:35あるコンテナ上から別のコンテナ上にカット&ペーストで移動すると
Handles句で書かれたハンドラーからHandles句が削除されたままになります。
これを回避するためには、ハンドラをAddhandlerで関連付けする以外にない
でしょうか?
0312デフォルトの名無しさん
2009/09/22(火) 17:15:23VSが自動で書いたコードと人が書いたコード、全く同じ文字列だった場合でも動作に違い生じるとでも?
0313デフォルトの名無しさん
2009/09/22(火) 17:27:49>>311
そもそもカット&ペーストする必要があるの?
VS2003まではコンテナの外に出すにはカット&ペーストしか方法がなかったような気がしたけど
2005以降はマウス操作でそれも可能になってるのに。
普通にマウスかキー操作で移動すればいいじゃん。
0314デフォルトの名無しさん
2009/09/22(火) 17:30:21カット&ペーストする前にイベントハンドラをコメントアウトしておく、とかかね。
普通同じコントロールのイベントハンドラはまとめてあるだろうから、
それならたいして手間はかからないんじゃないかな。
0315デフォルトの名無しさん
2009/09/22(火) 18:36:54まさかハンドラを別フォームに置きたいとか、そういうトンデモなことをしたいのか?
0316デフォルトの名無しさん
2009/09/22(火) 20:50:46それはさすがにお前さんの側の問題だと思うよ。
別に>>311はそう変なことは言ってない。
0317デフォルトの名無しさん
2009/09/22(火) 22:27:250318デフォルトの名無しさん
2009/09/23(水) 17:38:56フォームを開いてるときにフォームの外(スタートとか)の操作をさせない方法ありますか?
タスクに表示させないのは出来るんですけど、スタートボタンの禁止ができません。
今作ってるのは、ユーザーを選択して起動したあと、パスワードを入れて正確じゃないと他の操作に進めないっていう奴です。
私はアドミニストレータじゃないので、ユーザーのパスワードだけだとアドミニストレータにばれてしまうんです。
0319デフォルトの名無しさん
2009/09/23(水) 17:54:59日本語でおk
0320デフォルトの名無しさん
2009/09/23(水) 17:56:21そういうのは、普通 GINA で作ります(XP までは)。
0321デフォルトの名無しさん
2009/09/23(水) 17:56:580322デフォルトの名無しさん
2009/09/23(水) 18:03:26すいません。
プログラムを操作中に、プログラムの操作(ボタンをクリックするとか)以外をしないように出来ますか?という事です。
やっぱりできないですかね?
0323デフォルトの名無しさん
2009/09/23(水) 18:16:47一番簡単なのは、昔のインストーラーでよく使われてた、
タイトルバーがないウィンドウを最大化してしまう方法かね。
もちろんこれではウィンドウズキーまでは抑止できないけど。
システムモーダルなんて方法もあった気もするけど、ドトネトのWinフォームは
システムモーダルに対応してなかったはず。
というか、そもそも普通はそんなアホな仕様のプログラムはありえないと思う。
本当にそんなアホな仕様が必要なのかね。
9割り方君がそう思い込んでるだけだと思うよ。
0324デフォルトの名無しさん
2009/09/23(水) 18:21:38どうしてもアドミニストレータが入ってくるのを抑えたくて、その方法がこれしか思いつかなかったんです。
やっぱ最大化しかないですかね。ウィンドウズキーがありますからね…
ありがとうございます。
0325デフォルトの名無しさん
2009/09/23(水) 18:24:12何をやりたいのか、まったく理解できないけど。
0326デフォルトの名無しさん
2009/09/23(水) 18:31:11アドミニストレータは制限付ユーザーのパスワードが分かってしまうので、ばれないようにしたかったんです。
でも無理みたいですよね。ありがとうございました。
0327デフォルトの名無しさん
2009/09/23(水) 18:34:47VB とはまったく関係ない話。
0328デフォルトの名無しさん
2009/09/23(水) 18:45:170329デフォルトの名無しさん
2009/09/23(水) 18:55:04ごめん、なんでそんな仕様にするの?って聞かれたから理由を言ったんだ
>>328
パスワード入力して正しくない場合は、×押したときに強制的にキャンセル
0330デフォルトの名無しさん
2009/09/23(水) 18:56:590331デフォルトの名無しさん
2009/09/23(水) 19:02:15じゃねーよw
0332デフォルトの名無しさん
2009/09/23(水) 19:15:52社員に社内向けツールを作らせようとするとそんな要求仕様になりやすいな(経験者談)
0333デフォルトの名無しさん
2009/09/23(水) 19:20:12今はUSBドングル使ってシステムをロックする製品なんてのもあるみたいだから
そういうのを使った方が確実だろうね。
それ以前に、まあ普通は隠蔽したいものは何らかのデータなんだろうから、
そういうことなら暗号化すりゃいいだけだね。
しかし、そんな信頼できない奴がシステム管理者ってのがそもそも間違ってる気もしますが。
0334デフォルトの名無しさん
2009/09/23(水) 20:39:25ごめんそっち勉強するよ。
>>331
いやそんなつもりはw
とりあえずできないのはわかったんでやめます。
ありがとうございました。
0335デフォルトの名無しさん
2009/09/24(木) 21:34:44マウスの移動で線を描画したいのですが pictureboxでdrawlineで書いていますが 太さを1以上にすると
汚い描画になります、VB6のときはこんなことはなかったのですが、どなたか教えてください
0336デフォルトの名無しさん
2009/09/24(木) 21:36:300337デフォルトの名無しさん
2009/09/24(木) 22:57:22SmoothingMode はいくつか試しましたが、だめでした。
太さを大きめにすると目立ちます
なぜだろう? もっと違うところ?
0338デフォルトの名無しさん
2009/09/24(木) 23:59:51http://dobon.net/vb/dotnet/graphics/antialias.html
0339デフォルトの名無しさん
2009/09/25(金) 00:07:04いっちゃ悪いけどそういうトンマな回答もどうかね。
「VB6のときはこんなことではなかった」と言っているから、
そういう問題ではないはずだ。
>>335
「汚い描画」なんていう抽象的な表現では誰にも問題が正確に伝わらない。
こういう場合は(というよりほとんどの場合そうあるべきだが)くどいぐらいに
具体的に君の問題を表現しなきゃダメだよ。
0340デフォルトの名無しさん
2009/09/25(金) 00:13:13わからないならレスしないでください。
0341デフォルトの名無しさん
2009/09/25(金) 00:34:380342デフォルトの名無しさん
2009/09/25(金) 00:36:180343デフォルトの名無しさん
2009/09/25(金) 03:04:530344デフォルトの名無しさん
2009/09/25(金) 07:08:26Private 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
0345デフォルトの名無しさん
2009/09/25(金) 07:10:04Public 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
0346デフォルトの名無しさん
2009/09/25(金) 09:50:06どうやったらいいでしょうか?
0347デフォルトの名無しさん
2009/09/25(金) 17:58:49threads(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です)
0348デフォルトの名無しさん
2009/09/26(土) 01:22:31その座標が目盛りのいくつなのかを取得したいのですが、
方法を御存知の方、いらっしゃいましたら教えてください。
0349デフォルトの名無しさん
2009/09/26(土) 03:07:38ManualResetEvent1個用意しといて
各スレッドは終了時にSet
かつ随時タイムアウトなしでWaitしてSetされてたら終了
呼び出し側は単にWait
でいいんじゃね?
まあ効率を気にするなら各スレッドでのチェックのために
終了フラグ一個追加した方がいいかも知れんが。
0350デフォルトの名無しさん
2009/09/26(土) 03:08:28タイムアウトなしじゃなくて0指定の間違い。
0351デフォルトの名無しさん
2009/09/26(土) 11:03:310352デフォルトの名無しさん
2009/09/26(土) 12:33:25全スレッドを終了するメソッドを用意して、各スレッド内の処理の最後で
それを呼び出すようにするだけじゃん。
悩むような問題かね。
0353デフォルトの名無しさん
2009/09/26(土) 15:31:50AxisY2.MinimumとMaximumは自動でセットされないんだね。
Primaryなら自動でセットされるのに。
これって仕様?
なんか理由があるんだろうか?
0354デフォルトの名無しさん
2009/09/26(土) 16:02:16>それを呼び出すようにするだけじゃん。
そのコード書いてみな。
絶対問題ありのコードになるから。
0355デフォルトの名無しさん
2009/09/26(土) 16:26:19そりゃトンマなお前さんが書けばそうなるんじゃないの。
俺に言わせりゃ、こんなので問題起こす奴の方がオカシイと言わざるを得ない程度の、
超初歩的な内容だと思うけど。
0356デフォルトの名無しさん
2009/09/26(土) 16:28:52事故レスだけど
IsStartedFromZeroの設定でした^^;
0357デフォルトの名無しさん
2009/09/26(土) 16:30:29だから書いてみてよ。
全部のスレッドを終了するメソッドを問題ないように書いてみなよ。
0358デフォルトの名無しさん
2009/09/26(土) 16:39:46逆にチミが「問題」が発生するコードを書いてみれば?w
俺は馬鹿に説明するためにそれなりに長くならざるをえないサンプルコードを
書くなんてまっぴら御免だけど、ダメなコードのどこがダメでどう直せばいいかを
解説するぐらいの手間は払うよ。
0359デフォルトの名無しさん
2009/09/26(土) 16:44:20超初心者でも間違う方がおかしいコードなんだろ。
すぐ書けるだろ。
俺は>>349辺りでどうかなって書いたんだからさ。
まあ絶対書かないよな、お前そういう奴だよ。
>俺に言わせりゃ、こんなので問題起こす奴の方がオカシイと言わざるを得ない程度の、
>超初歩的な内容だと思うけど。
いきなりこういう反応をするやつで、自分からまともに何かを示すやつを見たことがない。
何を言ってもはぐらかすだけで、自分からは絶対に書かないんだよ、
0360デフォルトの名無しさん
2009/09/26(土) 16:46:53他のスレッドの処理が途中であっても終了するということになる。
それを指摘してるんだろ。
0361デフォルトの名無しさん
2009/09/26(土) 16:49:00俺は「かけるんなら書くべき」なんていう妙な価値観を持ってない。
もちろん君がそういう価値観を持つのは勝手ではあるが、
その価値観を他人に振りかざして無理強いする前に、君自身が自分の価値観を
実践したらどうなのか。
0362デフォルトの名無しさん
2009/09/26(土) 16:50:28誰に向かって何が言いたいの?
0363デフォルトの名無しさん
2009/09/26(土) 16:55:40クソワロタ
どんなコードをイメージして簡単だと言ったのかなんて>>358以外分からん
0364デフォルトの名無しさん
2009/09/26(土) 16:56:30>352に対して、言葉は正しく正確にと。
0365デフォルトの名無しさん
2009/09/26(土) 17:00:25>>360がそんな偉そうなことが言えるような文章なのか。
0366デフォルトの名無しさん
2009/09/26(土) 17:06:15全部のスレッドを強制終了させるようなコードでもまずまず問題はおこらならいだろうと期待はできるけど、
普通にスレッドを扱うようなプログラムを書くやつは、そもそもスレッドを強制終了させようなんて発想しないよね。
>>349みたいなやり方を発想するのがごく普通というか常識な感覚であって、
>>352みたいな発想は出てこない。
>>352みたいな発想はまともにマルチスレッドのプログラムを書いたことがないようなやつの
典型的な発想パターンだよね。
0367デフォルトの名無しさん
2009/09/26(土) 17:10:18俺はスレッドをアボートする、なんて一言も書いてないが。
先に「問題」があるコードをまず提示しろ、って言ってるのはそのあたりの
微妙な問題もあるからなんだけどね。
0368デフォルトの名無しさん
2009/09/26(土) 17:12:210369デフォルトの名無しさん
2009/09/26(土) 17:13:46だから、そんなものはスレッド内の処理に依存する問題であって、
一意にこうだ、なんて言えない。
だから先に「問題」があるコードを提示しろと言ってる。
0370デフォルトの名無しさん
2009/09/26(土) 17:14:17基地外だなこいつ。
>先に「問題」があるコードをまず提示しろ、って言ってるのはそのあたりの
>微妙な問題もあるからなんだけどね。
>俺に言わせりゃ、こんなので問題起こす奴の方がオカシイと言わざるを得ない程度の、
>超初歩的な内容だと思うけど。
おいw
0371デフォルトの名無しさん
2009/09/26(土) 17:16:16意味がわからん。
0372デフォルトの名無しさん
2009/09/26(土) 17:19:06だんだんこいつが何を言ってるのか分からなくなってきた
>そんな面倒なことしなくてもベタにやるだけだと思うけど・・・
>
>全スレッドを終了するメソッドを用意して、各スレッド内の処理の最後で
>それを呼び出すようにするだけじゃん。
>悩むような問題かね。
そのやり方を教えろってんだよ。
>>349に対して
>そんな面倒なことしなくてもベタにやるだけだと思うけど・・・
なんだったらもっとシンプルなべたな方法があるんだろ?
スレッドをアボートしない方法でそんな方法は思いつかないが。
0373デフォルトの名無しさん
2009/09/26(土) 17:22:34スレッドをアボートするのとスレッドを終了させることはイコールじゃないよ。
こんなことから説明しなきゃならんのかよ。
例えばスレッドの中身が単純なwhileループなら、外からループ条件をfalseに
設定してやればスレッドは終了する。
っていうか、>>347の問題とスレッドの終了方法は直接関係がない。
0374デフォルトの名無しさん
2009/09/26(土) 17:26:42それよりもベタな簡単な方法が、
「全スレッドを終了させるメソッドを最後に呼ぶ」
なんだろ?
かつその方法はアボートしないんだろ?
じゃあどうすんの?
0375デフォルトの名無しさん
2009/09/26(土) 17:28:25>>349見たら明らかだがどうみてもそんなこと分かってるっていうか最初からそう書いてる。
0376デフォルトの名無しさん
2009/09/26(土) 17:28:27各スレッドを終了させる方法(メソッド)が用意されていれば、
全てのスレッドに対応するそのメソッドを呼び出すメソッドを作って、
それを各スレッドの一番最後の処理から呼び出すようにするだけ。
もちろん、自分のスレッドの終了を待つような馬鹿なミスを犯して
デッドロックしないよう注意は必要だよ。
0377デフォルトの名無しさん
2009/09/26(土) 17:36:45>各スレッドを終了させる方法(メソッド)が用意されていれば、
>>354
>各スレッドを終了させる方法(メソッド)が用意されていれば、
www
そのメソッドを示さないと悩むだろw
>悩むような問題かね?
ってんだからさ、悩まないようにしてやれよ。
>各スレッドを終了させる方法(メソッド)が用意されていれば、
>全てのスレッドに対応するそのメソッドを呼び出すメソッドを作って、
>それを各スレッドの一番最後の処理から呼び出すようにするだけ。
>
>もちろん、自分のスレッドの終了を待つような馬鹿なミスを犯して
>デッドロックしないよう注意は必要だよ。
これが、>>349に対して、
>そんな面倒なことしなくてもベタにやるだけだと思うけど・・・
の面倒なことしないベタなやり方なんだな。
0378デフォルトの名無しさん
2009/09/26(土) 17:38:190379デフォルトの名無しさん
2009/09/26(土) 17:39:50そのフラグが立ってれば終了すればいいんじゃないの?
0380デフォルトの名無しさん
2009/09/26(土) 17:42:33>もちろん、自分のスレッドの終了を待つような馬鹿なミスを犯して
>デッドロックしないよう注意は必要だよ。
デッドロックって言葉が思いついたのか?
この話の流れでは自分自身の終了を待つなんて状況自体が発生しないはずだけどな。
それとも>>376のどこかで終了を待つようなコードを書いてしまう可能性があるのかい?
どこで書くんだろうなそんなこと。
0381デフォルトの名無しさん
2009/09/26(土) 17:47:420382デフォルトの名無しさん
2009/09/26(土) 17:47:54メインからは分からないから終了フラグは立てられない。
だから、終了フラグみたいなのを立てるのはスレッド側になる。
>>349のようにイベントを使うか、
もしくはフラグだけにしてメインからは全スレッドにJoinするか、くらいだな。
まあイベントの方が普通なやり方だけど。
Joinだと結局全スレッドが終わるのを待つ感じになるからね。
0383デフォルトの名無しさん
2009/09/26(土) 17:56:39以上、終了
0384デフォルトの名無しさん
2009/09/26(土) 18:25:35ダメグラマらしい意見だね。
全てのスレッドを終了させるメソッドは、それ自身が終了させようとする
スレッドの中の一つから呼ばれる。
スレッドの終了処理は、実際にターゲットのスレッドが終了したかどうかの
確証をするのが普通だから、例えばそれをベタにJoin()を使って行うとデッドロックする。
0385デフォルトの名無しさん
2009/09/26(土) 18:27:55まったく意味がわからん。
0386デフォルトの名無しさん
2009/09/26(土) 18:33:59止まらない可能性まで考慮するならそもそもJoinなんて使っちゃダメで
自分自身だからどうという話ではない。
まだ続ける気?
なら>>352の例を示してほしいんだがな。
0387デフォルトの名無しさん
2009/09/26(土) 19:07:39>>349に対して>>352で面倒なことしなくてもって言ってるんだから
しかもスレッドを終了させるって言ってるんだから、
普通に考えればアボートすると言ってるとしか読み取れない。
本来そんな事しないでもすむのにスレッドをアボートするってだけで既に問題ありとされるのが普通。
スレッド使う上での常識としてね。
で、どっちにしても書き方からスレッドに関して素人なのが明らかだから、
コード書かせりゃそれ以外にもどっかに問題あるコードになる可能性が高いと思ってな。
まあ必要ないのにアボートする時点で常識的に問題ありとみなしていいレベルだが。
まさかフラグ立ててスレッド側で監視しつつ終了待機するメソッド作るのが>>349よりベタとは思わないし、
フラグ立てるだけなら普通スレッドを終了するメソッドとは言わないし
そもそもメソッドにするだけで面倒が増えてるだけ。
>>349ですら面倒で、よりベタとなるとアボートするくらいしかない。
ってのが>>354の意図。
ああ長い。
0388デフォルトの名無しさん
2009/09/26(土) 19:15:15どっかでボロを出すかと思ったのも有るけどな。
>>352も微妙な問題があるって自分で言ってるんだから、
本人じゃないならあとは>>352に微妙な問題について聞いてくれよ。
0389デフォルトの名無しさん
2009/09/26(土) 19:18:48なーんか2ch脳らしい強引な物の言い方だね。
何度も言うように
スレッドの終了 ≠ スレッドのアボート
君が両者をイコールだと思うのは完全に勝手だが、
「俺にスレッドの終了=スレッドのアボートだと思わせるのはお前のせい」
みたいな自己中心的な物言いをされても、「恥を知れ」以外に返す言葉がない。
まあ、>>352の発言が言葉が足りずミスリーディングなのは認めるけど、
要は、スレッドで実行したい処理をクラスでラップする「ベタ」な方法を取るべきであって、
>>349的なスパゲティーコードはよくないって事だよ。
0390デフォルトの名無しさん
2009/09/26(土) 19:31:52かなりベタでスパゲッティとかいうようなやり方じゃないぞ。
だいたい>>349はプリミティブレベルの考え方に近いもので
クラス化するとかどう書くかは別にやりたきゃ好きにしろってレベルだぜ。
つかクラスでラップってまたいきなり初めて出てきたな。
>>352がそういう意図ってお前エスパーでも相手にしてるのか?
流石にそのベタなコードとやらを示してもらわないと分からない。
あっ余計な事言ったか、またループだな。
0391デフォルトの名無しさん
2009/09/26(土) 19:35:23「ベタ」、つまり説明不要の定石だから説明しなかったまで。
っていうか、もういいわ別に。
一人かどうか知らんけど君みたいな馬鹿言い負かしても意味ないし。
0392デフォルトの名無しさん
2009/09/26(土) 19:38:21Static 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
0393デフォルトの名無しさん
2009/09/26(土) 19:53:18今回は元々やりたい処理がそれぞ別メソッドになってるけど、
それでも「処理」をクラスでラップするのが常識かな?
一般に処理をクラスでラップするのが常識なのは、
処理に必要なデータをクラス側で管理するためで
今回のはどちらかと言えばスレッドの制御をクラスの機能として実装し、
処理はデリゲートとしてスレッド制御のクラスに渡すってのが普通な気がする。
C#なら匿名メソッドやらラムダ式使えばすごいシンプルに出来るんだがな。
今のVBって複数行のラムダ式使えたっけ?
次のバージョンからだったかな?
0394351
2009/09/26(土) 20:17:09終了させるなんていったい何がしたいんだ〜?
0395デフォルトの名無しさん
2009/09/26(土) 21:13:59>スレッドで実行したい処理をクラスでラップする、なんていうのは、
>「ベタ」、つまり説明不要の定石だから説明しなかったまで。
>>347のでどうやんだよこれ…?
0396347
2009/09/26(土) 21:22:45>>349の方法でやってみます。ありがとうございました。
>>351
最小で1つ、多くてもせいぜい3つぐらいなんですけどね>スレッド数
内容は禁則事項です♪
0397デフォルトの名無しさん
2009/09/26(土) 22:45:23>>352
>>376
>>389
>>391
を見てクラスでラップする「ベタ」な方法でやるんだ。
こんなの定石だから>>351はあえて教えてくれないぞ。
コードができたら問題点を指摘してくれるから見せてみるんだ。
0398デフォルトの名無しさん
2009/09/26(土) 22:49:50ちょっとオカシイってことだからな、超初歩以前に君がおかしくないかがためされるんだぞ。
心してかかるんだ。
0399デフォルトの名無しさん
2009/09/26(土) 22:54:170400デフォルトの名無しさん
2009/09/26(土) 23:16:42Q. 〜のやり方を教えてください
A. クラスにラップしてベタに書け
0401デフォルトの名無しさん
2009/09/27(日) 03:41:350402デフォルトの名無しさん
2009/09/27(日) 09:27:16BackgroundWorkerでよいのじゃないか
0403デフォルトの名無しさん
2009/09/27(日) 11:06:32意味がない。
0404デフォルトの名無しさん
2009/09/27(日) 13:13:46AsyncCallback関数の中をどうやって実装するのだろう?
なんか振り出しに戻る予感。。
0405デフォルトの名無しさん
2009/09/27(日) 13:49:39WorkerCompleteあるし、CancelAsyncあるし。
>>401は、どうやってほかのスレッド終了させるんだろう。
0406デフォルトの名無しさん
2009/09/27(日) 13:50:110407デフォルトの名無しさん
2009/09/27(日) 13:52:23どっちも大して変わらんて。
0408デフォルトの名無しさん
2009/09/27(日) 13:55:100409デフォルトの名無しさん
2009/09/27(日) 13:56:59立ち読みしてみたら酷かった。
この手の本はあんま進歩しないなあ。
ちゃんと理解してる内容だけ書けばいいのに。
.NET系って本に間違いが多すぎる気がする。
0410デフォルトの名無しさん
2009/09/27(日) 13:58:55それだとプロセスが終了しちゃうじゃん。
0411デフォルトの名無しさん
2009/09/27(日) 13:59:05どれがやりやすいか、あまり差がないか
よく分かると思うぞ。
0412デフォルトの名無しさん
2009/09/27(日) 15:00:04>>347は全てのスレッドを終了させると書いているので間違いではないな。
0413デフォルトの名無しさん
2009/09/27(日) 15:03:56ドボンちゃんのサイト等があるのに今どきそんな本を買う人が居るのかね〜?
0414デフォルトの名無しさん
2009/09/28(月) 16:08:220415デフォルトの名無しさん
2009/09/28(月) 20:01:14オーバーライドとイベント実装をどこで切り分けていますか?
0416デフォルトの名無しさん
2009/09/28(月) 20:02:24ドボンを?
0417デフォルトの名無しさん
2009/09/28(月) 20:05:00継承しないで外からアクションを挿入するためにイベントを使うんだ
0418デフォルトの名無しさん
2009/09/28(月) 20:15:19二人とも何を言ってるのか意味不明すぎる。
エスパー同士の会話なのかアーパー同士なのかどっちなんだ。
0419417
2009/09/28(月) 20:23:03たぶん勘違い
Formの派生クラスを作ったときにFormのOnPaintをオーバーライドするべきかPaintイベントを使うべきか
というような話なら,一般的にはオーバーライドした方がいい(少なくともMSDNにはそう書いてある)
0420デフォルトの名無しさん
2009/09/28(月) 22:50:51Formは必ず派生クラスで使うのにOnHogeとHogeイベントの両方があるのかって話し。
実行効率が良いのはOnHogeだけど使いやすいのはHogeイベントかなと。
だったらイベントだけで実装しても良いのではないかと思っただけです。
0421デフォルトの名無しさん
2009/09/28(月) 23:04:15派生クラスから基底クラスのOnHogeを呼ぶことでHogeイベントを発生させるためにも使われる。
.NETのガイドラインで決まってることだから黙って従え
0422デフォルトの名無しさん
2009/09/28(月) 23:15:33まあ>>421みたいな教条主義もどうかと思うが、
自分で発生するイベントを自分で受信する、普通に考えれば間抜けチックなプログラミングを
「使いやすい」と感じるセンスには疑問を持った方がいいと思うよ。
それはおかしい。かなり変てこなセンスだ。
0423デフォルトの名無しさん
2009/09/28(月) 23:20:18まあWPFは設計が全然違ってて機構上そうなってるんであって
WinFormsではおとなしくOnHogeを使うべき。
0424420
2009/09/28(月) 23:25:16仮想メソッドを使うかイベントデリゲートを使うかって話です。
便利と言うのはIDEがイベントを挿入してくれるから。
0425デフォルトの名無しさん
2009/09/28(月) 23:27:330426デフォルトの名無しさん
2009/09/28(月) 23:44:41IDEとトータルで考えない方がセンスがないだろう。
全部イベントなのにフォームとコントロールでわざわざ使い分けるのがセンスがいいのか?
0427デフォルトの名無しさん
2009/09/28(月) 23:45:41つまり、別の言い方をすればprotectedなイベントは有りかって話かな?
少なくとも.NETクラスライブラリの中にはあるね。
個人的はそういう方法を取りたい場面に当たったことがない。
0428デフォルトの名無しさん
2009/09/29(火) 11:14:14継承と委譲の区別は出来てるか?
0429デフォルトの名無しさん
2009/09/29(火) 16:05:39冗談w
0430デフォルトの名無しさん
2009/09/29(火) 20:06:10抽象メソッドとデリゲートは結果的の同じだが。
0431デフォルトの名無しさん
2009/09/29(火) 21:44:31テンプレートメソッド作る度にいちいちHogeEventArgsやHogeEventHandler用意すんの?
それに抽象メソッドなら派生クラスで実装することを強制できる
0432デフォルトの名無しさん
2009/09/30(水) 11:48:08便利かなぁ…?
とりあえず overrides空白 まで入れればインテリセンスは利くわけだし。
>>430
つまり「よくわからない」ってことね。
そのフォームを他のフォームのインスタンスに含めるのであれば
いちいち派生させずともイベントを追加してやればいいし
常に派生させるんだぜ!というのなら Protected Overridable なメソッドを
用意してやればいい。
まあ両方用意しとくのが無難だし、>>422 には同意しとく。
>>431
>いちいちHogeEventArgsやHogeEventHandler用意すんの?
特に追加情報がなければ EventArgs をそのまま使えばいいし、
そーすっとデリゲートも
Public Event Hoge(ByVal sender As Object, ByVal e as System.EventArgs)
の一行で済む。
0433デフォルトの名無しさん
2009/09/30(水) 11:49:17http://gigazine.net/index.php?/news/comments/20090930_security_essentials/
0434デフォルトの名無しさん
2009/09/30(水) 19:09:43文中検索掛けてもVBもVisualも引っかからなかったのだが。
0435デフォルトの名無しさん
2009/09/30(水) 19:18:590436デフォルトの名無しさん
2009/09/30(水) 19:37:14>とりあえず overrides空白 まで入れればインテリセンスは利くわけだし。
お〜、そんなんが出来るんだ。
知らなかった。ありがと〜ん。
0437デフォルトの名無しさん
2009/09/30(水) 19:38:10何かVB.NETの動作を阻害するものが入って動かなくなるのかと心配しちゃったじゃないかw
0438デフォルトの名無しさん
2009/09/30(水) 19:50:320439デフォルトの名無しさん
2009/09/30(水) 19:51:460440デフォルトの名無しさん
2009/09/30(水) 20:23:36オブジェクト指向で言う委譲とデリゲートの委譲は別のものでしょ?
0441デフォルトの名無しさん
2009/09/30(水) 20:54:58オブジェクト指向でいう移譲を手軽に使えるようにするための仕組みがデリゲート
0442デフォルトの名無しさん
2009/09/30(水) 21:04:150443デフォルトの名無しさん
2009/09/30(水) 21:09:17いちいちイベントハンドラごとに内部クラス作ってインターフェイス実装するんだぞ
やってることは本質的にデリゲートとまったく同じだけど糞面倒で可読性も悪い
0444デフォルトの名無しさん
2009/09/30(水) 21:19:01addActionListener(this);
とかできるじゃん。
全然面倒くさくないし、簡潔明瞭じゃん。
0445デフォルトの名無しさん
2009/09/30(水) 21:25:55それに,直接実装するならpublicにしないといけないだろ?
イベントハンドラが全部publicで同じ名前(実際には無理だけど)ってどう思う?
0446デフォルトの名無しさん
2009/09/30(水) 21:37:32どうしても不都合なら、別に内部クラスとかつくるのもそれほど面倒とは思えんが。
0447デフォルトの名無しさん
2009/09/30(水) 21:44:33443じゃないけど、面倒に決まってるでしょ。
だいいち、ただコールバックして欲しいだけなのに
本質的でないインターフェイスが必要になる点で鬱陶しすぎる。
0448デフォルトの名無しさん
2009/09/30(水) 21:48:43Javaやってるとはとても思えないな
カプセル化ってわかってる?
コントロールを削除したらpublicメンバを削除して継承してるインターフェイス減らすの?
0449デフォルトの名無しさん
2009/09/30(水) 21:58:47インタフェースの方が実装の有無が他クラスから判断できるとか、使い回しができるとか、便利な面もある。
実際、AOPではインターフェースのそういった性質が多用されている。
同様にインターフェイス外すのも、デリケート外すのも俺的には面倒くささはいっしょ。特にC#とJavaでは。
VB.NETのは場合メソッド削除するだけだから幾分簡単に見えるが大した違いではない。あとIDEの自動化による
簡便性の違いは多少あると思う。
0450デフォルトの名無しさん
2009/09/30(水) 22:01:14WndProcかよ
0451デフォルトの名無しさん
2009/09/30(水) 22:24:350452デフォルトの名無しさん
2009/09/30(水) 23:49:19デリゲートはあくまで委譲のための(処理をカプセル化するためといってもいい)しくみなんだし、
いわゆる一般的な意味でのインターフェイスに関して
インターフェイスかデリゲートかっていうものではないでしょ。
javaだってイベントは普通委譲モデルで、ほとんどデリゲートとおんなじことやってるだけだし。
この使い方においてはインターフェイスもデリゲートも大した違いはない。
まあ専用のしくみであるデリゲートの方がよっぽど分かりやすいと俺は思うが。
.NETの言語だって、本来の意味でのインターフェイスの代わりに
デリゲートを使うなんてことは普通はしない。
ただし、フォームのイベントなんかは、実質考え方自体がイベントなんだから、
自分自身のイベントもコントロールなんかと同じようにイベントハンドラでやっても
何らおかしいことはない。
0453デフォルトの名無しさん
2009/09/30(水) 23:59:22JavaでIDEにイベントリスナを自動生成させたりするとものすごーく分かりづらいコードが出来上がる
0454デフォルトの名無しさん
2009/10/02(金) 10:13:13どうすればいいでしょうか?
IPropertyChangedを実装する方法はわかったのですが、そういった準備なしに
どこかのメソッドを呼び出す形で同期することはできないでしょうか?
0455デフォルトの名無しさん
2009/10/02(金) 23:58:400456デフォルトの名無しさん
2009/10/04(日) 09:56:550457デフォルトの名無しさん
2009/10/04(日) 11:07:58するな、そんな阿呆なこと。
Form1 に、TextBox1.Text を取得/設定する
Public なプロパティを定義するのが常套。
0458デフォルトの名無しさん
2009/10/04(日) 11:09:590459デフォルトの名無しさん
2009/10/04(日) 11:11:00Form1のデフォルトインスタンス使えばおk
コントロールのアクセスレベルはデフォルトでinternalだからそのままアクセスできる
0460デフォルトの名無しさん
2009/10/04(日) 11:34:49>デフォルトでinternalだから
Friend じゃなくて?
0461デフォルトの名無しさん
2009/10/04(日) 11:40:350462デフォルトの名無しさん
2009/10/04(日) 11:52:15規定のアクセスレベルがFriendなので同じプロジェクト内からは
出来てしまうアフォな仕様ですよ。
気に入らぬのでPrivateに変えてます。
C#だとPrivateなんだけどな。
0463デフォルトの名無しさん
2009/10/04(日) 12:24:08ガイテイってよむの?
0464デフォルトの名無しさん
2009/10/04(日) 12:45:39ほれ
0465デフォルトの名無しさん
2009/10/04(日) 12:50:24のりさだ (人名) です。
0466デフォルトの名無しさん
2009/10/04(日) 14:13:36既定と間違うのはよくあること。
時々“規定クラス”と変換してしまうのは個人的によくあること。
0467デフォルトの名無しさん
2009/10/04(日) 19:12:43ガイテイ
概定ってかくの?
0468デフォルトの名無しさん
2009/10/05(月) 00:53:430469デフォルトの名無しさん
2009/10/06(火) 14:35:51Convert.ToStringで、数値を16進数にし、さらに1桁の場合は頭に0をつけて文字数を揃えるのを一括して行う方法はあるのでしょうか?
現在は16進数の文字列にしたあと、文字数をチェックして1桁なら0をつけているのですが、書き方が汚くなってしまうので・・・。
すいませんがよろしくお願いします。
0470デフォルトの名無しさん
2009/10/06(火) 15:02:32Convert.ToString(Int32, IFormatProvider)
IFormatProviderとしてNumberFormatInfoを使う。
なんて面倒なことしないで、
string.Format("{0:X04}", 100)
じゃ駄目?
0471デフォルトの名無しさん
2009/10/06(火) 15:11:02できました、ありがとうございます
0472デフォルトの名無しさん
2009/10/06(火) 16:50:490473デフォルトの名無しさん
2009/10/06(火) 20:14:58{0:X04}と100のイミは?
0474デフォルトの名無しさん
2009/10/06(火) 21:22:52>>473 複合書式指定文字列と書式設定するObject
0475デフォルトの名無しさん
2009/10/07(水) 00:39:120476デフォルトの名無しさん
2009/10/07(水) 01:55:32大昔のBASICちっくに
Right$("0" & Hex$(数字),2)とかどうだ
0477デフォルトの名無しさん
2009/10/08(木) 17:19:21上の方をクリックすると勝手に列ごとにソートしてくれますが
そのときのイベントを取得することってできますか?
どうしたらよいかおしえてください
0478デフォルトの名無しさん
2009/10/08(木) 17:26:430479デフォルトの名無しさん
2009/10/08(木) 19:29:40i.ToString("X02")
0480デフォルトの名無しさん
2009/10/08(木) 22:42:50Threading.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
0481デフォルトの名無しさん
2009/10/08(木) 22:51:510482デフォルトの名無しさん
2009/10/08(木) 23:19:11Try-FinallyのFinallyの中でDisposeするか,Using文を使ってDisposeは書かない
0483デフォルトの名無しさん
2009/10/08(木) 23:23:450484デフォルトの名無しさん
2009/10/08(木) 23:25:121コアだとかなり反応悪いだろうな。
2コア以上ならそれなりに動くかも知れないが。
で、デザイナではっつけてる方はそもそもUIスレッドでイベントが発生するしくみになってるから
これじゃ動くわけがない。
0485デフォルトの名無しさん
2009/10/08(木) 23:30:18Myとか最高
0486デフォルトの名無しさん
2009/10/08(木) 23:32:08こんなこと言っても解らないだろうけど,クラスを使うのは余計なことを考えなくて済むようにするため。
0487デフォルトの名無しさん
2009/10/08(木) 23:43:04Module使ったらダメってのは
Moduleを自分で作るな
ってことじゃないのか?
0488デフォルトの名無しさん
2009/10/09(金) 00:18:08ありがとうございます。
原因がわかったのでなんとかできました。
タイムアウト付きの処理を行いたかったのですが、
Thread.Joinで希望する処理ができました。
0489デフォルトの名無しさん
2009/10/09(金) 10:26:07便利なのは作った本人だけ
0490デフォルトの名無しさん
2009/10/09(金) 10:49:020491デフォルトの名無しさん
2009/10/09(金) 11:13:390492デフォルトの名無しさん
2009/10/09(金) 11:25:500493デフォルトの名無しさん
2009/10/09(金) 14:27:10Public Class Vector4D(Of T)
をつくり、この中で加算を定義するために T型 の変数同士の加算を使ったら定義されていないというエラーになりました。
このクラスはベクトルなので T型 の集合は加減乗除やべき乗に閉じていなければならないのですが、そのような制限をつけるために Of T 「As
...」 などで対応し、結果として T型 の変数同士の加算がエラーにならないようにすることはできますか?
(練習用なのでこの方向で解決できるのかどうかをまず知りたいです。4次元固定のベクトルクラスが .NET Framework
に存在するならば、さらにそれを教えていただけるとありがたいです。)
0494デフォルトの名無しさん
2009/10/09(金) 14:39:590495デフォルトの名無しさん
2009/10/09(金) 17:35:50演算子 オーバーロード でぐぐれ
0496デフォルトの名無しさん
2009/10/09(金) 17:38:280497デフォルトの名無しさん
2009/10/09(金) 18:14:03ってどんなイミが
0498デフォルトの名無しさん
2009/10/09(金) 18:46:212008で実験してみたが
ジェネリックに使えなくはないけど、型ごとにオーバーロードしないとだめっぽい
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)を定義
...以下延々と必要な型に対して定義していく
使う方は楽かもしれんが、定義する方はジェネリックの利点がなくなるなぁ
0499デフォルトの名無しさん
2009/10/09(金) 18:58:13オーバーロードされていない型のVector4Dをまともに使うことができなくなる
Vector4Dの外部から演算子オーバーロードを定義はできないから
0500デフォルトの名無しさん
2009/10/09(金) 19:42:46どういう意図なんだろ。よーわからん。
0501デフォルトの名無しさん
2009/10/09(金) 20:16:14あと今回問題なのは、Vector4Dの実装側で、
Tに対して算術演算が出来ないことなんだから、
演算子のオーバーロードは何の役にも立たん。
0502デフォルトの名無しさん
2009/10/09(金) 20:28:44時々君みたいなこという人がいるけど、
そもそも必要性が疑わしいものの実現可能性を考えてなんの意味があるの?
ベクトルをジェリックにして何の意味があるんだよ。
意味ないでしょ。
0503デフォルトの名無しさん
2009/10/09(金) 20:51:47算術演算を行うメソッドを動的に生成してしまえばいい
0504デフォルトの名無しさん
2009/10/09(金) 21:03:290505デフォルトの名無しさん
2009/10/09(金) 21:06:19実際doubleやfloat以外に使われてるのを見たことがない
0506493
2009/10/09(金) 22:23:58>>494
もう少し具体的に書いていただけると助かります。
>>504
主な目的はその通りです。
0507デフォルトの名無しさん
2009/10/09(金) 22:28:27インラインアセンブラみたいなことするんだぞ
自分は.NETオタだと自負できるようになってから出直せ
0508デフォルトの名無しさん
2009/10/09(金) 22:56:460509デフォルトの名無しさん
2009/10/09(金) 23:05:40パフォーマンスが重要でないなら一番「大きな」型だけで演算を定義して
あとの型はその型との相互の変換だけ考えればいいし、パフォーマンスが重要なら・・・
そもそも演算誤差の扱いっていう泥臭い問題の存在を忘れてないか
0510デフォルトの名無しさん
2009/10/09(金) 23:43:06Vectorをジェネリックに定義するのは何もおかしくない。
別に数値要素だけでしか使わないものではない。
0511デフォルトの名無しさん
2009/10/10(土) 12:07:29そこまでする価値があるかは別問題として。
DynamicMethodよりは楽だけど。
0512デフォルトの名無しさん
2009/10/10(土) 12:08:170513デフォルトの名無しさん
2009/10/10(土) 18:48:11Int32等のCLI組み込み型については演算子がオーバーロードされてるわけじゃないから無理
DynamicMethodを使わないのであれば,
Int32とInt32の足し算,Int32とByteの足し算,…みたいにすべてのケースに対する演算処理を
定義しておくしかない
0514デフォルトの名無しさん
2009/10/10(土) 20:50:23ttp://ufcpp.net/study/csharp/sm_genericop.html
0515デフォルトの名無しさん
2009/10/10(土) 20:52:220516デフォルトの名無しさん
2009/10/11(日) 00:52:44これを一括して元に戻すにはどのような方法で戻したら良いでしょうか?
他にも置き換わっているものがあると思うので&に限定したReplaceではない方法が
あれば教えていただきたいです。
0517デフォルトの名無しさん
2009/10/11(日) 00:54:09なんか消えてしまったみたいです。
&が&amp; になってしまいます。(本当は半角)
0518493
2009/10/11(日) 00:55:17http://ufcpp.net/study/csharp/source/Operator.cs より、C# のコード
public static readonly Func<T, T, T> Add = Lambda(Expression.Add);
を VB にすると
Public Shared Add As New Func(Of T, T, T)(AddressOf
まではわかったのですが、この右に何をつければよいでしょうか?
0519デフォルトの名無しさん
2009/10/11(日) 00:57:25HtmlEncode/HtmlDecode
0520493
2009/10/11(日) 00:58:02HTMLの実体参照ですね。頻出のものは
& ←→ &
> ←→ >
< ←→ <
ですが http://www.ne.jp/asahi/minazuki/bakera/html/reference/charref などで一覧を見ることができます。
0521デフォルトの名無しさん
2009/10/11(日) 01:03:25ありがとうございます。
おかげさまで無事対処できそうです。
0522デフォルトの名無しさん
2009/10/11(日) 02:24:22WebClientでutf-8を指定してダウンロードしてStreamWriterで、書き込み時にutf-8を指定して
書き込んでいるのですが、保存されたテキストを見るとその文字が?になってしまっています。
teraPadというエンコードを指定できるテキストエディタでutf-8を指定して確認しているのですが
元の文字は消えてしまっているようです。
WebClientでダウンロードした直後にString変数に入れて、デバッグを一時停止して
カーソルを当てるとその特殊文字は正常に表示できているのですが、
そのままConsole.WriteLineに出力すると?になってしまっています。
ブラウザのソース表示から直接TeraPadでソースを開いても?になってしまいます。
これはどのようにして保存したら正しく保存できるでしょうか?
ちなみに文字は〜という文字の波を上下に反転したような形の文字です。
よろしくおねがいします。
0523デフォルトの名無しさん
2009/10/11(日) 04:19:54DownloadFileすればプログラム上でエンコーディング悩む必要もないけど?
0524デフォルトの名無しさん
2009/10/11(日) 05:27:020525デフォルトの名無しさん
2009/10/11(日) 10:25:50全角チルダの上下反転表示とくれば、
FullWidthTilda(U+FF5E) と WaveDash(U+301C) の変換問題だな。
TeraPadは内部コードがShift_JISらしいので、
WaveDashが化けてしまっているんじゃないかな。
一度、WikipediaのUnicodeの所を読んでみると良いよ。
0526デフォルトの名無しさん
2009/10/11(日) 11:02:18Public 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)
を忘れずに
0527526
2009/10/11(日) 11:05:56Return Expression.Lambda(Of Func(Of T, T, T))(op.Invoke(x)).Compile()
0528デフォルトの名無しさん
2009/10/11(日) 11:43:330529デフォルトの名無しさん
2009/10/11(日) 11:54:460530デフォルトの名無しさん
2009/10/11(日) 14:29:59chcp 65001
hoge.exe >file
0531522
2009/10/11(日) 22:12:39素直にメモ帳で開いたら正しく表示できました。
正しく保存できているのにteraPadで表示しようとあれこれやっていたんですね;
助かりました。
0532デフォルトの名無しさん
2009/10/12(月) 04:13:45簡単におせーて
0533デフォルトの名無しさん
2009/10/12(月) 08:08:190534デフォルトの名無しさん
2009/10/12(月) 10:50:40一つしか選択できないのに何故ゆえに配列?
0535デフォルトの名無しさん
2009/10/12(月) 17:01:010536デフォルトの名無しさん
2009/10/12(月) 17:45:30細けーこたぁいいんだ
>>533
こいつをどうにかすればいいんだな?
0537デフォルトの名無しさん
2009/10/12(月) 19:00:520538デフォルトの名無しさん
2009/10/12(月) 19:56:070539デフォルトの名無しさん
2009/10/12(月) 20:37:040540デフォルトの名無しさん
2009/10/12(月) 20:41:010541デフォルトの名無しさん
2009/10/12(月) 21:11:49JSON
0542デフォルトの名無しさん
2009/10/12(月) 21:23:05尻洗いズ
0543デフォルトの名無しさん
2009/10/12(月) 21:24:34オレもそう思う。
0544デフォルトの名無しさん
2009/10/12(月) 23:25:450545デフォルトの名無しさん
2009/10/13(火) 14:41:09コンボボックスのドロップダウンをEnableをFalseにせずに
出ないようにしたいんですが、これってvb.netじゃできないもんでしょうか?
0546デフォルトの名無しさん
2009/10/13(火) 19:20:06System.Threading.Thread.Sleep(1)
Application.DoEvent
Next
これで約1秒待機しているのですが以前は大体1秒、2秒だったのですが
最近はすごい長くなってきました。
10000でも10秒位だったのですが、1分近くかかるようになりました。
これはどういう部分に原因がありそうでしょうか?
そういえばパソコンの動作も鈍い感じがします。
CPUやメモリには全然余裕がある状態でも同じです。
0547デフォルトの名無しさん
2009/10/13(火) 20:00:290548デフォルトの名無しさん
2009/10/13(火) 20:27:24お前はあほか
0549526
2009/10/13(火) 20:28:240550デフォルトの名無しさん
2009/10/13(火) 20:49:55どう書けばいいですか?
0551デフォルトの名無しさん
2009/10/13(火) 20:51:330552デフォルトの名無しさん
2009/10/13(火) 20:52:520553デフォルトの名無しさん
2009/10/13(火) 20:53:400554デフォルトの名無しさん
2009/10/13(火) 21:10:410555デフォルトの名無しさん
2009/10/13(火) 21:52:55その何倍も経過した後で戻ってきても何の不思議も無い。
Do-LoopとStopwatchクラスで1秒経過するまで待てばそれなりに動かせるけど、
設計自体見直したほうがいいだろうな。
0556デフォルトの名無しさん
2009/10/13(火) 21:57:180557デフォルトの名無しさん
2009/10/13(火) 23:39:550558デフォルトの名無しさん
2009/10/14(水) 10:43:08昨日駅前のパソコンスクールに言って
「VBありますか?」
って聞いたら無いって言われました
やはり独学しかないのか
0559デフォルトの名無しさん
2009/10/14(水) 12:33:000560デフォルトの名無しさん
2009/10/14(水) 17:34:420561デフォルトの名無しさん
2009/10/14(水) 20:18:580562デフォルトの名無しさん
2009/10/14(水) 21:59:49キミのその糞なコーディングにパソコンが嫌気がさして来たからだと思う。
0563デフォルトの名無しさん
2009/10/15(木) 01:54:100564デフォルトの名無しさん
2009/10/15(木) 09:28:09終わった話に後から煽るだけ、ってのやめれ。
頭悪そうにしか見えない。
0565デフォルトの名無しさん
2009/10/15(木) 09:56:30今からなら C# いいよ
0566デフォルトの名無しさん
2009/10/15(木) 20:47:26VBはC#ができれば自動的にできるからあえてやる必要はない
0567デフォルトの名無しさん
2009/10/15(木) 20:56:440568デフォルトの名無しさん
2009/10/15(木) 22:12:58Dim R As New Regex("hoge.+?")
Dim M As MatchCollection
M = R.Maches(hogeString)
上のような正規表現のMachesでマッチした結果を
ArrayListに入れたいのですが
どのように書いたら良いでしょうか?
0569デフォルトの名無しさん
2009/10/16(金) 00:07:41あっどれんぢ
0570デフォルトの名無しさん
2009/10/16(金) 10:08:570571デフォルトの名無しさん
2009/10/16(金) 11:21:47http://www.atmarkit.co.jp/fdotnet/csharp_abc2/index/index.html
入門とは書いてあるけど、これ全部理解できればまず困る事はないと思う
このサイトには他にもカテゴリが山ほどあって
目的の情報を探すのが大変かもしれないけど
凄く役に立つサイトですよ
もっと簡単そうなサイト?あったら俺も知りたい^^
0572デフォルトの名無しさん
2009/10/16(金) 13:11:26変数,演算子,制御構造終わったらあとはコピペ用Tipsばっか
0573デフォルトの名無しさん
2009/10/16(金) 13:17:090574デフォルトの名無しさん
2009/10/16(金) 19:21:06すみません具体的にどう書いたら良いですか?
Arr = AddRange(〜〜〜)
ここがわかりません。
0575デフォルトの名無しさん
2009/10/16(金) 20:02:470576デフォルトの名無しさん
2009/10/16(金) 21:23:280577デフォルトの名無しさん
2009/10/16(金) 21:50:040578デフォルトの名無しさん
2009/10/16(金) 22:02:27はやく教えて
0579デフォルトの名無しさん
2009/10/16(金) 22:10:390580デフォルトの名無しさん
2009/10/16(金) 22:27:02もったいぶりすぎ質問スレじゃなかったのかよ
0581デフォルトの名無しさん
2009/10/17(土) 00:53:48質問スレだが回答スレではない。
0582デフォルトの名無しさん
2009/10/17(土) 00:55:37× Arr = AddRange(〜〜〜)
○ Arr.AddRange(〜〜〜)
0583デフォルトの名無しさん
2009/10/17(土) 03:27:230584デフォルトの名無しさん
2009/10/17(土) 08:48:350585デフォルトの名無しさん
2009/10/17(土) 08:56:310586デフォルトの名無しさん
2009/10/17(土) 09:08:59なぜそれでTrueを返すかはヘルプ見ろ
Int32.TryParseとかで変換しちまえばいいんじゃね
0587デフォルトの名無しさん
2009/10/17(土) 13:12:050588デフォルトの名無しさん
2009/10/17(土) 17:18:21したいこと
�@キャレット非表示
�A方向キーでのキャレット移動無効化
�BSHIFTでの選択無効化
�@はAPIのHideCaretで出来たのですが、他がさっぱりわかりません。
TextBoxBaseの該当メソッドをオーバーロードすればいいのでしょうか?
そうだとして、そのメソッドはどれでしょうか?
0589デフォルトの名無しさん
2009/10/17(土) 17:45:220590デフォルトの名無しさん
2009/10/17(土) 18:07:31表示されて無いだけで選択は出来ます。
つまり、マウスだけで選択できる状態にしたいのです。
0591デフォルトの名無しさん
2009/10/17(土) 18:12:220592デフォルトの名無しさん
2009/10/17(土) 18:16:32有料追加コントロール
無料追加コントロール
紹介して
0593デフォルトの名無しさん
2009/10/17(土) 19:29:54方向キーでスクロールをしているので、それが出来ないんですよね……
0594デフォルトの名無しさん
2009/10/17(土) 19:58:11こだわる人って時々いるけど、正直理解できんな。
明らかに便利で合理的な仕様であれば実現に向けて努力するのもわかりもするんだが。
0595デフォルトの名無しさん
2009/10/17(土) 19:59:28殺した上でスクロールスりゃいいだろハゲ
そんな Windows の流儀にそわない動きしたいなら、少しは自分で工夫しろよ。
0596デフォルトの名無しさん
2009/10/17(土) 20:10:340597デフォルトの名無しさん
2009/10/17(土) 20:11:230598デフォルトの名無しさん
2009/10/17(土) 20:21:150599デフォルトの名無しさん
2009/10/17(土) 20:56:590600デフォルトの名無しさん
2009/10/17(土) 21:08:290601デフォルトの名無しさん
2009/10/17(土) 22:31:21ブラウザは普通シフトキーは受け付けるでしょ。
だから単に→←キーだけ握りつぶせばいいだけじゃないの?
ま、別にカーソルキーで範囲選択ができても何も困らないと思うが・・・
0602デフォルトの名無しさん
2009/10/17(土) 23:48:11出来たよ。
みんなありがとね。
0603デフォルトの名無しさん
2009/10/18(日) 01:20:180604493
2009/10/18(日) 02:07:29次に内部メソッドとして「要素の平均」を実装しようと試みています。
作業用のT型の変数に 0 をそのまま代入したり特定の数値で割るとエラーになりますが、これも同様の方法で回避できるものでしょうか?
0605デフォルトの名無しさん
2009/10/18(日) 12:46:21特定の数値で割るのは当然Expression Treeで生成したコードを使えばいいだろ。
0606デフォルトの名無しさん
2009/10/18(日) 12:56:030607デフォルトの名無しさん
2009/10/18(日) 12:59:120608605
2009/10/18(日) 13:03:30public 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がジェネリック型の場合は不可)
0609デフォルトの名無しさん
2009/10/18(日) 13:04:57Falseにしない場合、Timer_Tickプロシージャ内の処理が多くて次のTickとダブってしまうこともありますか?
0610デフォルトの名無しさん
2009/10/18(日) 13:10:48Timer.TickはUIスレッドで実行されるので次のTickとダブることはありえません。
0611デフォルトの名無しさん
2009/10/18(日) 13:12:510612デフォルトの名無しさん
2009/10/18(日) 13:58:27こんな感じで使えればいいなイメージ:
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 となる
0613デフォルトの名無しさん
2009/10/18(日) 14:03:010614デフォルトの名無しさん
2009/10/18(日) 16:47:54VB.NETというのをしりました。
wiki等には、VBと違いNET関係の機能が追加された、とかいてありました。
いったいこの.NETではなにができるのですか?
VBのことも詳しく知りませんが、
わかりやすく.NETのすごさを教えてください。
例えば、、、こんなことができるよ。、、、みたいな感じで。
そのすごさや有用性のようなものを簡単に教えてください。
すみませんが、よろしくお願いします。
0615デフォルトの名無しさん
2009/10/18(日) 17:09:36あとは、.NET 上で動く VB (いわゆる、VB.NET) しかありません。
0616デフォルトの名無しさん
2009/10/18(日) 17:40:34JavaScriptとJava位の違いはある。
0617デフォルトの名無しさん
2009/10/18(日) 17:54:43大抵のことは出来るw
0618デフォルトの名無しさん
2009/10/18(日) 18:18:06”すでに VB はなくなりました”
→ .NETでもVBみたいなことはできるんですよね??
>>617
■例えば、自動で発動するようにして、
あるサイトに自動ログインして文章をコピーして
エクセルシートに貼り付ける。この作業を1時間おきにしたいんですけど可能?
つーかこのくらいはVBAでもできちゃうのかな??
わからんので教えてください。
0619デフォルトの名無しさん
2009/10/18(日) 18:22:160620デフォルトの名無しさん
2009/10/18(日) 18:24:12自動ログイン〜〜〜はVBAでもできちゃう??
0621デフォルトの名無しさん
2009/10/18(日) 18:25:320622デフォルトの名無しさん
2009/10/18(日) 19:11:070623デフォルトの名無しさん
2009/10/18(日) 19:20:47ちょいむずい、、、はVBAだと?
.NETならできちゃう?かな?
0624デフォルトの名無しさん
2009/10/18(日) 21:54:18どんな関数を使えばスマートにできるでしょうか?ヒントください。
0625デフォルトの名無しさん
2009/10/18(日) 21:59:10Application.DoEventsとかやってると割り込まれるが。。。
0626デフォルトの名無しさん
2009/10/18(日) 22:39:35どっちでもたいして変わらんよ。
0627デフォルトの名無しさん
2009/10/18(日) 23:10:37正規表現でも使うか。
っていうか素直にListBox使えば?
0628デフォルトの名無しさん
2009/10/19(月) 11:29:38作るのがあるけどどこで設定するんでしたっけ
0629デフォルトの名無しさん
2009/10/19(月) 23:21:58使えるとこは使いまわしていきたいと思ってます。
が、vb.netだと、frmファイル読めないですね。
何か変換するいい方法ありますか?
0630629
2009/10/19(月) 23:28:18とりあえずやってみる。
0631デフォルトの名無しさん
2009/10/19(月) 23:32:52VB.NETはVBと見た目が似てるだけと考えた方がいい
0632デフォルトの名無しさん
2009/10/19(月) 23:37:13Visual Studio2008を使っているのですが、動画をプログラム内で表示させたい場合はどうしたらよいのでしょうか?
たとえばmpeg2形式の動画をVBで作ったプログラム内で再生させたいのです。
0633デフォルトの名無しさん
2009/10/19(月) 23:46:10ttp://www.google.co.jp/search?q=vb.net+%e5%8b%95%e7%94%bb+%e5%86%8d%e7%94%9f
0634デフォルトの名無しさん
2009/10/20(火) 00:01:16動画だとパソコン側でデコードしてくれるから上記の通りでいいと思うのですが
LANや同軸などで繋ぐライブカメラなどの映像をVBで作ったソフトウェア内に埋め込みたい場合はどうしたらよいのでしょうか?
LAN、同軸などの映像をデコードしてくれる専用のハードウェアがいるということなんでしょうか?
そもそも基本的にぜんぜん分かっていないのですが、こういった関連を調べたい場合は何と調べたらよいのでしょうか?
0635デフォルトの名無しさん
2009/10/20(火) 00:09:550636デフォルトの名無しさん
2009/10/20(火) 00:13:100637デフォルトの名無しさん
2009/10/20(火) 00:35:02DirectShow自体の知識とDirectShowをVBで使うための知識と両方必要だし大変よ
> そもそも基本的にぜんぜん分かっていないのですが、こういった関連を調べたい場合は何と調べたらよいのでしょうか?
オレ用語を排除して一般的な単語で検索すりゃ大体引っかかるもんだ
「VB.NET WEBカメラ 再生」とか
0638デフォルトの名無しさん
2009/10/20(火) 00:37:42とりあえず市販のライブカメラを片っ端から調べればいいんじゃね?
VBでどうするかなんてずっと後の話だ。
0639デフォルトの名無しさん
2009/10/20(火) 07:17:090640デフォルトの名無しさん
2009/10/20(火) 10:01:49ネットワーク上の他のPCの共有フォルダに置いた.NETアプリの実行ファイルを
ローカルにコピーせずに、共有フォルダ上で直接実行しようとする場合
.NETの設定ツールでセキュリティの設定をしていないと
Security.SecurityExceptionが発生して実行できませんが
セキュリティの設定等の専門的な操作をせずにこれを回避してアプリを実行する方法は無いのでしょうか?
0641デフォルトの名無しさん
2009/10/20(火) 10:03:420642デフォルトの名無しさん
2009/10/20(火) 10:06:360643デフォルトの名無しさん
2009/10/20(火) 19:15:520644629
2009/10/20(火) 22:41:06VB5から、vb.netへの移行企んでみましたが、
全然だめですね。VB6入れろだの、エラーでとまりすぎ。
フォーム生かす以外にアップグレードの使い道無いですね
0645デフォルトの名無しさん
2009/10/20(火) 22:46:250646デフォルトの名無しさん
2009/10/20(火) 22:53:390647デフォルトの名無しさん
2009/10/20(火) 22:56:140648デフォルトの名無しさん
2009/10/20(火) 23:22:050649デフォルトの名無しさん
2009/10/20(火) 23:37:310650デフォルトの名無しさん
2009/10/20(火) 23:39:55「大コケ」してるのはVB7以降じゃなくてVB厨の方だろ、っていうw
また例のわんくまの人のブログの記事貼っといた方がいいのかな。
0651デフォルトの名無しさん
2009/10/21(水) 00:07:060652デフォルトの名無しさん
2009/10/21(水) 01:03:44Win32Apiとか使ってるからでしょ?
0653デフォルトの名無しさん
2009/10/21(水) 08:04:40壁紙をレジストリいじって変更するプログラムを組んでいます。
それでWallpaperstyleキーを2にすれば拡大できるというのはわかったのですが
これは縦横の比を無視して画面を埋めてしまいます。
エクスプローラの右クリのような、縦・横どちらかにあわせるようにするにはどうしたらいいのでしょうか。
0654デフォルトの名無しさん
2009/10/21(水) 09:35:410655デフォルトの名無しさん
2009/10/21(水) 18:04:170656デフォルトの名無しさん
2009/10/21(水) 18:22:200657655
2009/10/21(水) 18:30:390658デフォルトの名無しさん
2009/10/21(水) 18:44:33どっちでもいいんじゃね?
0659デフォルトの名無しさん
2009/10/21(水) 19:48:16たぶん配布するのにこんなフォルダは不要だと思うので
binフォルダに1票
0660デフォルトの名無しさん
2009/10/21(水) 20:00:54binの方にもxmlとかpdbとかあるじゃん
0661デフォルトの名無しさん
2009/10/21(水) 20:03:560662デフォルトの名無しさん
2009/10/21(水) 21:03:23Windows のエクスプローラーを開いて開いたフォルダ内に下記のようなファイルがあるとします。
1234★日本語の全て.doc
1235★韓国語の全て.doc
1236★英語の全て.doc
1237★フランス語の全て.doc
ファイル名は頭に半角数字4桁の後に★がつくように付けてるのですがこれを
日本語の全て 1234★日本語の全て.doc
韓国語の全て 1235★韓国語の全て.doc
英語の全て 1236★英語の全て.doc
フランス語の全て 1237★フランス語の全て.doc
左側は半角数字4桁と★と拡張子を抜いて、右側には取得したファイル名を、
その間は上は半角スペースで書きましたがタブ文字で区切ったファイルを作りソフト
自体には表示させなくてもいいので結果をクリップボードへ貼り付けるソフトを作れ
ないかと思ってます。
今まではエディタを開いて dir でテキストを取得し編集してましたがこれができると
かなり便利です。
なにか具体的な例やアドバイスがあればよろしくお願いします。
0663デフォルトの名無しさん
2009/10/21(水) 21:26:14基礎から勉強する気がないなら作ってくれと丸投げした方がマシだと思います
0664デフォルトの名無しさん
2009/10/21(水) 21:29:05ちなみにこの手のを格安で作ってくれるとこはどのようにして見つけるのでしょうか。
ソフトウェア屋さんのホームページとか見ると大がかりなのしか作ってないみたいで。
0665デフォルトの名無しさん
2009/10/21(水) 21:29:54正直に言えば、このソフトに限ってはすぐに欲しいです。勉強はそれから
取り組みたいので。
0666デフォルトの名無しさん
2009/10/21(水) 22:04:42アップするからちょっと待って
0667デフォルトの名無しさん
2009/10/21(水) 22:09:240668デフォルトの名無しさん
2009/10/21(水) 22:17:46はい
0669662
2009/10/21(水) 22:54:59>>668
ありがとうございます。結果を見てみたのですが
日本語の全て 1234 ★ 日本語の全て.doc
韓国語の全て 1235 ★ 韓国語の全て.doc
英語の全て 1236 ★ 英語の全て.doc
フランス語の全て 1237 ★ フランス語の全て.doc
(区切りはタブ)になってます。下記のように
日本語の全て 1234★日本語の全て.doc
韓国語の全て 1235★韓国語の全て.doc
英語の全て 1236★英語の全て.doc
フランス語の全て 1237★フランス語の全て.doc
みたいに(区切りはタブ)になれば嬉しいのですが。CS ファイルというのは VB ではなく
C 言語か何かのファイルでしょうか。
0670662
2009/10/21(水) 22:57:47WSH を検索してみたのですが Visual Studio 2008 Express Edition より
取っつきやすいのでしょうか。
0671デフォルトの名無しさん
2009/10/21(水) 23:06:53それただの表示の問題
余計なスペース入れたりすると扱いづらくなる
>>670
WSHは回りくどい。VB(6)の経験がある人には分かりやすいだけ。
PythonとかRubyとかPerlとか有名な他のスクリプト言語の方がいいと思う。
0672662
2009/10/21(水) 23:16:11ここにはタブが表示できないので上手く表現出来ないようです。テキストファイルに
アップしました。
http://www.dotup.org/uploda/www.dotup.org287549.txt.html
0673668
2009/10/21(水) 23:34:03見間違えてた。修正した。ついでに必要に応じてファイルに出力できるようにコンソールにも結果を出力するようにした。
VBの環境が今手元にないのでC#を使ってる。C#はVBの兄弟みたいなもんで見た目が違うだけでほとんど同じ。
0674662
2009/10/21(水) 23:46:35ダウンロードして確認しました。ありがとうございます。まさに求めていたプログラムです。
ちなみに数字の桁数が変わった場合とか数字の後の★が別の名前になった場合を
ソースプログラムを見て自分で修正したいのですが、cs ファイルはどのようにして実行
ファイルの exe にするのでしょうか。Windows Vista の HomeBasic を使ってます。
今回は Visual Studio 2008 Express Edition の中から VisualBasic を入れましたが
ホームページで説明ページを見たりしても見比べとか大変そうなのでやはり書籍を
購入する必要があると感じました。
0675662
2009/10/21(水) 23:48:21すみません、修正版にはソースファイルがないようなので合わせて頂けないでしょうか。
0676668
2009/10/21(水) 23:59:37あとはVBに読み替えるなりVisual C# 2008 Express Edition入れるなり好きにしてくれ
VBがC#がどうとかいうより正規表現がポイントなんで改造するならまず正規表現を勉強してね
0677662
2009/10/22(木) 00:10:44ありがとうございます。今は中を見てもほとんどわからないですが、このようなツールが作れると
とても便利だと思いました。楽しみになりました。
0678デフォルトの名無しさん
2009/10/22(木) 01:29:120679523
2009/10/22(木) 02:35:37プロセスで返却値を設定して終了する場合、メインスレッドから「Return 結果コード」、
「Environment.Exit(結果コード)」等で呼び元へのリターンコードを返却することができました。
しかし、プロセスのメインスレッド実行中、別に発生するイベント内で異常が起きた場合に、プロセスを
終了し、結果を呼び元に返却する機能が必要になりました。
異常が発生したイベント処理内で「Environment.Exit(結果コード)」としたところ、プロセスは終了したの
ですが、プロセスの呼び元にはゼロが返却されてしまいました。
メインスレッド外からプロセスを終了して返却値を戻すためにはどうすればよいのでしょうか。
0680デフォルトの名無しさん
2009/10/22(木) 06:00:250681デフォルトの名無しさん
2009/10/22(木) 10:27:48フォーム上でツリーとグリッドを左右に並べて
ツリーの展開などの動きとグリッドのデータを連動させたい
のですが上手くいきません。。
グリッドのデータは
ノードID,親ノードID,レベル,展開FLG,コード・・・
といった感じです。
よろしくお願いします。
0682デフォルトの名無しさん
2009/10/22(木) 10:35:36imports 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
0683デフォルトの名無しさん
2009/10/22(木) 15:58:58>>681
何使ってるか知らないけど
DataGridViewなら
FirstDisplayedCell
FirstDisplayedScrollRowIndex
DisplayedRowCount
とか組み合わせたら出来ないかな?
スペルは間違ってる可能性あるけど こんな雰囲気のやつだっ気がする
0684683
2009/10/22(木) 16:00:57骨髄反射でレスして読み返して気づいた・・・
見当違いのことしゃべってるわ
というかノード作るところまでは出来ててその状態をグリッドに表示させたいだけ?
0685デフォルトの名無しさん
2009/10/22(木) 16:48:08そうです!
開閉に合わせてグリッドも変わるみたいな
感じです。
0686デフォルトの名無しさん
2009/10/22(木) 16:53:04それはクリックしたノードの情報使えばいけると思うけど・・・
自分でノード作ってるんなら最初にTAGにでも内容をカンマ区切りとかで入れとくとか
ちゃんとやるなら 選択ノードからParentとかその他のプロパティ使って辿ってくんじゃないかな?
具体的なコードをお求めで?
0687デフォルトの名無しさん
2009/10/22(木) 18:42:24何か簡単な方法(ハードウエア込みで)は有りませんでしょうか?
まともにやるならUSB接続の拡張ポートとかを使うのだと思うのですが、
1ビットだけのために買うのもどうかなと思いまして、、、
0688デフォルトの名無しさん
2009/10/22(木) 18:48:470689デフォルトの名無しさん
2009/10/22(木) 19:12:50USBとかでいけるんじゃないかな?
どんな外部接点か知らないけどDIOとかでやるとか?
0690デフォルトの名無しさん
2009/10/22(木) 19:24:10Arduinoがいい
0691687
2009/10/22(木) 22:23:53>>688
おもしろいっすね。
キーボードだと信号そのままじゃなくてリレーみたいなので繋げばいい?
ONしたままだとまずいかな。
>>689
基本はこれですね。
安いのが有ればいいのですが。
>>690
ああ、PCWatchとかで紹介されてましたね。
3000円位で買えそうですね。
これで行こうかと思います。
PICとかでもUSBドライバ付きで安いのって有るのかな?
0692デフォルトの名無しさん
2009/10/22(木) 22:46:56トラ技付録のTinyマイコンで、もう売ってないか
外には出てないけどマザーにはレガシなパラレルポートが自縛霊として生き残ってるハズこいつを叩け
0693デフォルトの名無しさん
2009/10/22(木) 22:50:38そのHWの「外部のハードウエアの出力」がOC出力なら
232CのDTRとDSRのを使えば追加ハードなしで出来ると思うよ。
安物マザーじゃなきゃまだCOMポートって標準で付いてくるんじゃないのかな。
0694691
2009/10/22(木) 23:04:05>>692
USBマウスとかキーボードって複数繋いだらどうなるのでしょう。
>>693
なるほど。232C-USB変換ケーブルでも使えるってことですね。
えーとDTRとかDSRってどうやって読めばいいのしょうか。
0695デフォルトの名無しさん
2009/10/22(木) 23:15:49>えーとDTRとかDSRってどうやって読めばいいのしょうか。
Data Terminal ReadyとData Set Readyだったかな?
まああんまり深い意味がある頭辞語じゃないと思うからそこにこだわってもね。
そのラインの操作法はMSDNのSerialPortクラスにも載ってるはず。
ただ、232Cを使う方法はお手軽だけど、既に書いたようにOC出力か12V出力でしか使えない。
0696デフォルトの名無しさん
2009/10/23(金) 23:24:19シリアル通信はコンポーネントが用意されているので分かりやすいのですがイーサについてはまったく・・・
TCP/IP??ソケット通信?
0697デフォルトの名無しさん
2009/10/23(金) 23:29:060698デフォルトの名無しさん
2009/10/23(金) 23:32:190699デフォルトの名無しさん
2009/10/24(土) 13:33:38貼ってもエラーが出ます。気をつけないといけないのはどのへんでしょうか。
http://www.dotup.org/uploda/www.dotup.org296509.txt.html
0700デフォルトの名無しさん
2009/10/24(土) 13:44:14ってなんだ?そこの管理人に文句を言ったらいいんでない。
0701デフォルトの名無しさん
2009/10/24(土) 19:57:490702デフォルトの名無しさん
2009/10/24(土) 21:58:46ttp://itpro.nikkeibp.co.jp/article/MAG/20081120/319631/?ST=nsw#200911
0703デフォルトの名無しさん
2009/10/24(土) 22:08:59フォームAには引数付きのコンストラクタのみがあります。
フォームBのコンストラクタで,フォームAのコンストラクタを呼び出して初期化しています。
ここまでは大丈夫だと思うのですが,フォームBのデザイナ画面を出そうとすると
「データが失なわれる可能性を防ぐため、デザイナの読み込み前に以下のエラーを解決する必要があります。
型"フォームA"にコンストラクタが見つかりませんでした。」
となってしまいます。
引数付きのコンストラクタがあるフォームは継承できないのでしょうか?
0704デフォルトの名無しさん
2009/10/24(土) 22:10:55共通部分があるならユーザーコントロール使えばいい
0705703
2009/10/24(土) 22:12:43了解しました
ユーザーコントロールはまだ知らないので
今から勉強したいと思います
0706デフォルトの名無しさん
2009/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
0707デフォルトの名無しさん
2009/10/24(土) 23:22:370708デフォルトの名無しさん
2009/10/24(土) 23:27:390709デフォルトの名無しさん
2009/10/24(土) 23:35:56結局DirもPathクラスを使って実装されてるわけで,前者の方が無駄な処理が多いだけ
0710デフォルトの名無しさん
2009/10/25(日) 03:30:27継承できるけど、デザイナで表示できない(対応していない)だけ。
0711デフォルトの名無しさん
2009/10/25(日) 09:25:21フォームAに引数付きと無しのコンストラクタを用意しとけば良いんでないか?
デザイナが引数無しのコンストラクタを使って画面を描画してるので無しは駄目なんでしょ。
0712デフォルトの名無しさん
2009/10/25(日) 09:33:38入れているところがエラーになるのでDesignMode プロパティ で回避する必要があるかも
0713デフォルトの名無しさん
2009/10/25(日) 11:54:39これは戻り値を受け取らないと使えないの?
0714デフォルトの名無しさん
2009/10/25(日) 11:56:310715デフォルトの名無しさん
2009/10/25(日) 12:53:16そのIfは演算子。戻り値じゃないから無理だな
IIfは関数だから、戻り値は無視できる
というか、値がいらないならIf Then Else でいいと思うんだが
0716デフォルトの名無しさん
2009/10/25(日) 12:56:39「副作用」が何を意味するかは関数型言語を知らないVB厨には理解できないと思う。
0717デフォルトの名無しさん
2009/10/25(日) 12:58:550718デフォルトの名無しさん
2009/10/25(日) 13:01:350719デフォルトの名無しさん
2009/10/25(日) 13:42:17死人が出るだろうね〜
ま、オレの所までには配給来ないだろうから関係ない。
0720デフォルトの名無しさん
2009/10/25(日) 14:14:53ショートサーキットに見えない
0721デフォルトの名無しさん
2009/10/25(日) 15:23:38Form2にtextbox1を貼り付け
Form1のBottan1を押すと
dim frm2 as Form2
frm2.textbox1.text="abc"
が動作させたいのはなぜどうするばいいのや
0722デフォルトの名無しさん
2009/10/25(日) 15:31:05Form2.textbox1.Text = "abc"
VB以外でこんなことやったら死刑だけどね
0723デフォルトの名無しさん
2009/10/25(日) 15:49:260724デフォルトの名無しさん
2009/10/25(日) 15:52:470725デフォルトの名無しさん
2009/10/25(日) 18:13:15そんなもんで死刑になるか〜
日本で死刑になるのは殺人罪か国家反逆罪だけだ。
0726デフォルトの名無しさん
2009/10/25(日) 19:28:38古代ラテン語らしいよ。
日本語もかなり微妙だし、過去から飛ばされて来たのかね?
0727デフォルトの名無しさん
2009/10/25(日) 22:36:01無いファイルをダウンロードしようとした時の処理がしやすいダウンロード手順はどんな方法でやれば良いでしょうか
無い場合はできるだけ手早くないことを認識して次の処理へ進みたいです。
0728デフォルトの名無しさん
2009/10/25(日) 22:37:25なので、どの方法を使っても大差ない。
0729デフォルトの名無しさん
2009/10/25(日) 22:51:14それだけの内容で答えられるヤツは居ない。
>>728はきっとエスパー。
0730デフォルトの名無しさん
2009/10/25(日) 23:08:06確かに>>728はエスパー。
0731デフォルトの名無しさん
2009/10/26(月) 13:25:15を起動すると裏にいってしまいます。
どのようにすれば常に最前面にくるようにできますか?
0732デフォルトの名無しさん
2009/10/26(月) 19:53:41また、一部のVBRなMP3ファイルが再生されません。
0733デフォルトの名無しさん
2009/10/27(火) 00:09:58readしたときには先頭のみが文字コードとして認識されてしまいます。
500という数値として読み込みたいのですがどうすれば
0734デフォルトの名無しさん
2009/10/27(火) 00:21:25質問は日本語でお書き下さい。
0735733
2009/10/27(火) 00:30:580736デフォルトの名無しさん
2009/10/27(火) 01:37:490737デフォルトの名無しさん
2009/10/27(火) 07:09:36BIOS情報の取得くらいはできるよ。
0738デフォルトの名無しさん
2009/10/27(火) 09:31:59RTCAlarm触ってオンタイマーに出来ないかなと
昔ThinkPadでWindows上からBIOS設定出来るのがあったけど
あれは例外だよね
0739デフォルトの名無しさん
2009/10/27(火) 13:50:15shell32の機能でタイトルなどを取得する事はできました
編集は出来ないでしょうか?
参考にしたのはこのサイトです
ttp://dzone.sakura.ne.jp/blog/2009/06/vbnet-mp3-2getditailsof.html
よろしくお願いします
0740デフォルトの名無しさん
2009/10/27(火) 17:31:13こだか かおる著, 日経ソフトウエア編
http://ec.nikkeibp.co.jp/item/books/180900.html
■A4変型判,204ページ+付録DVD-ROM
■定価 2520円(税込)
■発行 日経BP社
■発売 日経BP出版センター
■ISBN978-4-8222-2845-3
初級編
その2 MP3ファイルを解析して楽曲データを編集する
http://itpro.nikkeibp.co.jp/article/MAG/20081113/319258/08vbmook.zip?ST=develop
0741デフォルトの名無しさん
2009/10/27(火) 20:06:57ありがとうございます
参考にしてみます!
0742デフォルトの名無しさん
2009/10/27(火) 21:19:58参考にするとは言わない。みますと云って逃げに走る
決して最後まで完結させない。きっとそうだ。そうに違いない。
0743デフォルトの名無しさん
2009/10/27(火) 22:33:110744デフォルトの名無しさん
2009/10/27(火) 23:01:560745デフォルトの名無しさん
2009/10/27(火) 23:05:17もちろんVBは見つからないかもしれないが,最低でもC++だろうとC#だろうと読める程度のレベルでないとどうせ無理だ
0746デフォルトの名無しさん
2009/10/27(火) 23:08:46OpenCV
0747デフォルトの名無しさん
2009/10/27(火) 23:45:430748デフォルトの名無しさん
2009/10/28(水) 00:01:16Winsock以外に方法はありますか?
0749デフォルトの名無しさん
2009/10/28(水) 00:06:080750デフォルトの名無しさん
2009/10/28(水) 00:07:230751デフォルトの名無しさん
2009/10/28(水) 00:08:520752デフォルトの名無しさん
2009/10/28(水) 08:25:330753デフォルトの名無しさん
2009/10/28(水) 10:09:03Rawソケットもサポートしてるから、大抵のことはできる。
あれも内部的には Winsock のスタック使ってるから嫌だ、っつー話なら
そりゃー無茶だと答えるしかないが。
0754デフォルトの名無しさん
2009/10/28(水) 16:29:13質問させてください。
Windows7でタッチパネル操作をハンドリングしたいのですが
VB.netで実装する場合は
マウスクリックやマウスオーバーで画面操作を取得できるのでしょうか?
現在、開発要件で確認を求められている状態です。
どこにも情報がない有識者の方助けてノдT
0755デフォルトの名無しさん
2009/10/28(水) 16:31:560756デフォルトの名無しさん
2009/10/28(水) 16:33:460757デフォルトの名無しさん
2009/10/28(水) 16:34:22マルチタッチはいらんので問題なすです。
ありがとうございます
非常にたすかりました。
0758デフォルトの名無しさん
2009/10/28(水) 16:37:071、タッチパネル式マウスと同じ動きで乳首を攻めるエロゲ開発
通常のマウスと同じ
2、マルチタッチで乳首つかむエロゲ開発
Visual Studio 2010を待て
0759デフォルトの名無しさん
2009/10/28(水) 18:08:550760デフォルトの名無しさん
2009/10/28(水) 18:09:360761デフォルトの名無しさん
2009/10/28(水) 21:33:12どなたか 662 を実現できるソフトを C# で頂きましたが VB2008 で中をいじれるように
ソースで頂けないでしょうか。
0762デフォルトの名無しさん
2009/10/28(水) 21:39:26弄れるレベルになればだいたいC#でもわかる
0763デフォルトの名無しさん
2009/10/28(水) 22:05:22少しは自分でやれよ。
0764デフォルトの名無しさん
2009/10/28(水) 22:06:580765デフォルトの名無しさん
2009/10/28(水) 22:14:54C#わからなくてもなんとなく自分でVBに書き換えられるくらいのレベルには十分なってたはずだぞ
0766デフォルトの名無しさん
2009/10/28(水) 22:17:56ActiveXもな
0767デフォルトの名無しさん
2009/10/28(水) 22:23:400768デフォルトの名無しさん
2009/10/29(木) 11:49:55開発もやったことない聞きかじりの知識だけのやつが言ってるんだ
あんま相手にしたら開発能力のレベルが下がるぞ
0769デフォルトの名無しさん
2009/10/29(木) 22:46:57おおっさくらたんのエロ画像もCで書いてアプッてください
0770デフォルトの名無しさん
2009/11/02(月) 06:24:27ただの Visual Basic ユーザー、Visual Studio ユーザー
って多いよね。
プログラマではなく、ただの統合環境(IDE)ユーザーでしかない人。
IDEをそれなりに使いこなして、アプリっぽいものを作れる人と、
IDEがあってもなくても、アプリをガツガツ組める人とは
雲泥の差がある。
0771デフォルトの名無しさん
2009/11/02(月) 06:42:320772デフォルトの名無しさん
2009/11/02(月) 09:27:00手段に拘るな
0773デフォルトの名無しさん
2009/11/02(月) 09:48:25こうまで同意する「で?」は初めてだ
0774デフォルトの名無しさん
2009/11/02(月) 13:16:11httpはそうだけど、ftpはちゃうんじゃね(調べるのめんどい・・)
0775デフォルトの名無しさん
2009/11/02(月) 15:44:06同じ目的(動作)のものが
同じ時間で
メンテしやすいもの
同じ目的(動作)のものが
同じ時間で
グッダグダで再利用もクソもなく、処理時間も無駄に長い
どっちがいい?
例えばIDEだけでも掲示板程度なら簡単に作れるだろうがそんなんで書かれたクソソースコードは万死に値すると思う
0776デフォルトの名無しさん
2009/11/02(月) 15:58:54後者を経て前者になるだろ
いきなりいいプログラム書けるわけあるか
0777デフォルトの名無しさん
2009/11/02(月) 16:38:41結果良ければどんなコードなんて関係ないね
0778デフォルトの名無しさん
2009/11/02(月) 17:04:32へ?
どんだけ時間のないプロジェクトばっかやってるブラックだよ
0779デフォルトの名無しさん
2009/11/02(月) 17:31:490780デフォルトの名無しさん
2009/11/02(月) 18:12:130781デフォルトの名無しさん
2009/11/02(月) 19:15:070782デフォルトの名無しさん
2009/11/03(火) 08:34:270783デフォルトの名無しさん
2009/11/03(火) 13:22:59気持ちは分かるけど、くそコードのメンテやらされるのもたまらんぞ
#作るだけで、メンテしない立場ならそういうと思うけどね
0784デフォルトの名無しさん
2009/11/03(火) 14:30:07工数も糞だからってことで水増し請求できるし
0785デフォルトの名無しさん
2009/11/03(火) 15:28:390786デフォルトの名無しさん
2009/11/04(水) 02:23:12・同じ一連の処理を短いコードで呼び出せるようにしたいのですが、どうすればできますか?
・設定ファイルをLocal Settings内ではなく、exeフォルダに置くことはできませんか?
0787786
2009/11/04(水) 07:35:590788デフォルトの名無しさん
2009/11/04(水) 09:02:38>・設定ファイルをLocal Settings内ではなく、exeフォルダに
「アプリケーション構成ファイル」?
なら、設定の「スコープ」を「アプリケーション」にすればそっちを使うようになる。
0789デフォルトの名無しさん
2009/11/04(水) 17:44:59的確な回答をありがとうございました。
0790デフォルトの名無しさん
2009/11/04(水) 21:43:44vista以降ってProgramFiles以下に書込みできないんだねぇ…
ちょっとはまった
0791デフォルトの名無しさん
2009/11/04(水) 22:19:380792デフォルトの名無しさん
2009/11/04(水) 22:34:37それともその辺りは2005から変ってない?
0793デフォルトの名無しさん
2009/11/04(水) 22:40:090794デフォルトの名無しさん
2009/11/04(水) 23:26:02マニフェストファイルを直接変更する必要がある点は変らずか。
0795デフォルトの名無しさん
2009/11/05(木) 06:43:16ツールボックスってのに大量のツール(ボタンとかテキストボックスとか)
あれに自分で何かつくって追加したいんだけどExpress Editionだと自作不可能なの?
0796デフォルトの名無しさん
2009/11/05(木) 07:12:530797デフォルトの名無しさん
2009/11/05(木) 07:48:42無料版は知らんけど。
0798デフォルトの名無しさん
2009/11/05(木) 16:07:09指定したTreeNodeを最適な位置にスクロールしたいのだが、良い方法が
あったら知りたく。WindowsVistaのExplorerでのフォルダツリーのような
動作を希望。どうもメソッドやプロパティに該当しそうなものがなく。
ググってみたのですがわかりません。
0799デフォルトの名無しさん
2009/11/05(木) 16:13:06調べ方が・・・
このメソッドは何だっけ?
ttp://msdn.microsoft.com/ja-jp/library/system.windows.forms.treenode.ensurevisible(VS.80).aspx
0800デフォルトの名無しさん
2009/11/05(木) 16:19:25どうもです。ただEnsureVisible()だと長い名前のときに
NodeのImageが左側に隠れてしまうのが不便で、
VistaのExplorerのフォルダツリーのようにインテリジェント風味な
動きをしてちょうどいい感じの見やすい位置に持って行ければベターと
いう思い。見ると適度にスクロールさせられればいいのだが、
どうもスクロール系のメソッドがなさそうに思われ・・・。
0801デフォルトの名無しさん
2009/11/05(木) 18:50:57ですかね?なんとか見やすい位置に制御したいのだが、やはり無理だろうか?
0802デフォルトの名無しさん
2009/11/06(金) 14:42:31エクスプローラーからファイルをD&Dすると、処理している間エクスプローラーが固まってしまいます。
この現象を回避する方法はないでしょうか?
0803デフォルトの名無しさん
2009/11/06(金) 14:51:22いったん手元にコピーして編集終わってからコピーして返す
0804デフォルトの名無しさん
2009/11/06(金) 17:05:19コピーしたファイルを処理するという発想はありませんでした、
試してみたいと思います。
もし他にも方法がありましたらよろしくお願いします。
0805デフォルトの名無しさん
2009/11/06(金) 18:48:110806デフォルトの名無しさん
2009/11/06(金) 21:22:25Control.BeginInvokeについて調べてみました。
正直難しくてすぐには使いこなせそうではないのですが、
関連情報の載ったページが色々と見つかったので勉強してみたいと思います。
情報ありがとうございました。とても参考になりました。
0807デフォルトの名無しさん
2009/11/06(金) 22:40:31VB.NETやってみたいんだけど、なにを
ダウンロードすればいいの?
0808デフォルトの名無しさん
2009/11/06(金) 22:44:28プログラミングで一番大事なのは必要な情報を自分で調べられること
0809デフォルトの名無しさん
2009/11/06(金) 22:49:23ここにあるよ
0810デフォルトの名無しさん
2009/11/06(金) 23:44:19C系最強厨が多いのどうして?
0811デフォルトの名無しさん
2009/11/06(金) 23:49:360812デフォルトの名無しさん
2009/11/07(土) 02:04:30が勝手に妄想してるだけじゃね?
別に目的のものがつくれれば手段は何でもいいとおもうし普通みんなそうだと思うけど?
VBではC++とかみたいにローレベルな部分ができないとかはあるだろけど
VBも.netになったらC#と変わらんし
0813デフォルトの名無しさん
2009/11/07(土) 02:10:01固有名詞だと思えば?
釣りにマジレスしてる俺暇人
つうか落ちた鯖復旧待ちorz
0814デフォルトの名無しさん
2009/11/07(土) 15:28:32どこがActiveXだ。
0815デフォルトの名無しさん
2009/11/07(土) 21:07:040816デフォルトの名無しさん
2009/11/07(土) 21:51:00初めて手にして違いに愕然とするVB
0817デフォルトの名無しさん
2009/11/08(日) 00:27:38逆に一番の違いって何ですか?
プログラム初心者ですが先輩に「今からならC#」って断言されたんですけど、、、
0818デフォルトの名無しさん
2009/11/08(日) 00:31:51片方できれば両方できるくらい同じ
0819デフォルトの名無しさん
2009/11/08(日) 00:36:56VB.NETのほうが、
すこしだけかんたんなの?
0820デフォルトの名無しさん
2009/11/08(日) 00:41:29VBやってた人はVB.NETが簡単
Javaやってた人ならC#が簡単
0821デフォルトの名無しさん
2009/11/08(日) 05:05:40型とかポインタとかの情報が隠蔽されてる。
ソースファイルも余計なもの見せてくれない。
c#はunsafeでもうポインタ使いまくり。ソースファイルも全部見せてくれる。
0822デフォルトの名無しさん
2009/11/08(日) 09:09:00C/C++に比べて限定的だからそんなに旨みないし
0823デフォルトの名無しさん
2009/11/08(日) 09:29:390824デフォルトの名無しさん
2009/11/08(日) 09:36:231234★日本語の全て.doc
1235★韓国語の全て.doc
1236★英語の全て.doc
1237★フランス語の全て.doc
ファイル名は頭に半角数字4桁の後に★がつくように付けてるのですがこれを
日本語の全て 1234★日本語の全て.doc
韓国語の全て 1235 ★韓国語の全て.doc
英語の全て 1236★英語の全て.doc
フランス語の全て 1237★フランス語の全て.doc
左側は半角数字4桁と★と拡張子を抜いて、右側には取得したファイル名を、その間は上は半角スペースで書きましたが
タブ文字で区切ったファイルを作りソフト自体には表示させなくてもいいので結果をクリップボードへ貼り付けるソフトを作れ
ないかと思い下記のように書いてみたのですがうまくクリップボードへ貼り付けてくれません。チェックポイントをお教えください。
0825デフォルトの名無しさん
2009/11/08(日) 09:42:150826デフォルトの名無しさん
2009/11/08(日) 09:58:01あのね、切り分けって知ってる?
ファイルを列挙するところ、ファイル名を取得するところ、タブを挿入するところ、
クリップボードに追加するところ、などなど・・・
プログラムはいくつかの部分に分けられるのよ。ブレイクポイントを貼って
動作を確認するなりして、どの部分が悪いのか自分で調べてみなよ。
0827デフォルトの名無しさん
2009/11/08(日) 10:09:00Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(".\")
for each objf in objfolder.files
d = split(objf.name, "★")
if ubound(d) > 0 then
e = split(d(1), ".")
if ubound(e) > 0 then
s = s & d(0) & vbtab & e(0) & vbcrlf
end if
end if
next
set objIE = WScript.createObject("InternetExplorer.Application")
objIE.navigate "about:blank"
while objIE.busy
wscript.sleep 10
wend
objIE.document.parentWindow.clipboardData.setData "text", s
objIE.quit
0829デフォルトの名無しさん
2009/11/08(日) 10:31:291000行以下でかけるような。
仕事でVB.netやり始めて1か月だけど、
クラスが多数で行数も1万超えだし、理解するのに苦労している。
型がクラスとかわけわかめです。
0830デフォルトの名無しさん
2009/11/08(日) 10:35:20演習だのなんだのより先に基礎を解説した本なりサイトなり読むべきじゃないか
0831デフォルトの名無しさん
2009/11/08(日) 10:37:52一応クラスやオブジェクトの意味と意義はよんだつもり。
実践でこなしていきたいと思ってるんだ。
0832デフォルトの名無しさん
2009/11/08(日) 10:39:53http://homepage1.nifty.com/CavalierLab/lab/vb/clsmdl/index.html
0833デフォルトの名無しさん
2009/11/08(日) 10:43:29ありがとう。一応下記とかも読んでVB.net2008でやってるんだけどね。。
http://itpro.nikkeibp.co.jp/article/COLUMN/20060921/248617/
0834デフォルトの名無しさん
2009/11/08(日) 10:46:40カプリングとコヒージョン、きっちり身についてる?
0835デフォルトの名無しさん
2009/11/08(日) 10:51:260836デフォルトの名無しさん
2009/11/08(日) 11:07:36素で何のことかと思っちゃったよ。
0837デフォルトの名無しさん
2009/11/08(日) 11:17:18VBって行の最後に
;セミコロンいらねーのか?
0838デフォルトの名無しさん
2009/11/08(日) 11:28:35Basicだもん
0839デフォルトの名無しさん
2009/11/08(日) 11:39:42javascriptを書くソフトってあるの?
ボタンをドラッグしてきて
そのボタンをダブクリでコードを書く画面になる
もしボタンをおしたら、、、
ってところまで勝手にコードが書かれていて、
実際に押されたらどうなるか、って
部分だけを自分で書く、っていう。
0840デフォルトの名無しさん
2009/11/08(日) 19:52:29昔のVBからの変換を容易にするために用意されてるだけなので新規に使ってはいけない
そのうち消えても知らないよ
0841デフォルトの名無しさん
2009/11/08(日) 22:42:13何を言ってるんだ。
0842デフォルトの名無しさん
2009/11/08(日) 22:44:46使う必要がないだろ。
0843デフォルトの名無しさん
2009/11/09(月) 06:45:360844デフォルトの名無しさん
2009/11/09(月) 06:55:410845デフォルトの名無しさん
2009/11/09(月) 15:40:290846デフォルトの名無しさん
2009/11/09(月) 15:43:09は?何を言ってるんだ。
VB6、VBAのオブジェクトでしょそれ。
0847デフォルトの名無しさん
2009/11/09(月) 16:19:59con
nul
...
0848デフォルトの名無しさん
2009/11/09(月) 17:48:41N88とQuickBasic触ってたから大して違和感なかった。
0849デフォルトの名無しさん
2009/11/09(月) 17:55:26!?
0850デフォルトの名無しさん
2009/11/09(月) 18:27:36ttp://msdn.microsoft.com/ja-jp/library/cc376843.aspx
Office の VBA に新しく追加されたオブジェクトには FileSystemObject および Dictionary の 2 つのオブジェクトがあり、
0851デフォルトの名無しさん
2009/11/09(月) 18:29:57Visual Basic 6.0 でフォルダやファイルを作成する場合、 FileSystemObject の CreateFolder メソッド、CreateTextFile メソッドを使用します
0852デフォルトの名無しさん
2009/11/09(月) 19:23:430853デフォルトの名無しさん
2009/11/09(月) 19:53:50なんかこういう人ってマジで言ってそうでちょっと怖いw
さっすがVBty(以下略
0854デフォルトの名無しさん
2009/11/09(月) 21:13:000855デフォルトの名無しさん
2009/11/09(月) 21:41:060856デフォルトの名無しさん
2009/11/10(火) 00:23:16COMオブジェクト
0857デフォルトの名無しさん
2009/11/10(火) 01:59:42は?何を言ってるんだ。
0858デフォルトの名無しさん
2009/11/10(火) 15:40:40Visual Studio の各機能を正しく使いこなす知識さえあれば、
VB と VC# の違いはほとんど意識する必要がない。
(それが、VS の売り。)
VB プログラミングも VC# プログラミングも
要は Visual Studio をどう使いこなすかにかかっているので、
VB だろうと VC# だろうと覚えることは一緒。
片方覚えれば、もう片方もできるようになる。
別の言い方をすれば、VB プログラマも VC# プログラマも、
プログラマというより、Visual Studio ユーザー。
そこまで Microsoft は開発者をサポートする開発環境の開発に
注力してくれている、ということです。
0859デフォルトの名無しさん
2009/11/10(火) 16:16:28>要は Visual Studio をどう使いこなすかにかかっているので、
その程度のアプリケーション開発者にとっては
そうなんでしょうね。
0860デフォルトの名無しさん
2009/11/10(火) 16:18:050861デフォルトの名無しさん
2009/11/10(火) 16:56:20そんなの求めるのは趣味グラマだけだよ
0862デフォルトの名無しさん
2009/11/10(火) 18:04:48は一体何を言いたかったのか
エスパーしてみると
聞きかじりの知識をひけらかして偉そうにしてみたかった!
ですよね〜?
つうか、今頃顔真っ赤にしてるんだろうなぁ・・・
0863デフォルトの名無しさん
2009/11/10(火) 18:34:480864デフォルトの名無しさん
2009/11/10(火) 20:27:390865デフォルトの名無しさん
2009/11/10(火) 22:00:01というエラーを起こしてしまいます、サイズは32 x 32で色数はTrue Color + Alpha Channel (32bit)
OSはXPSP3、バージョンは2005です
0866デフォルトの名無しさん
2009/11/10(火) 22:26:020867デフォルトの名無しさん
2009/11/11(水) 00:42:57この場合この二つのフォームは、それぞれ自動でマルチスレッティングで働いてくれるのでしょうか?
要するにForm1でユーザーが操作しているときにForm2のよりが止まってしまわないかが心配ということです。
よろしくお願いします。
0868デフォルトの名無しさん
2009/11/11(水) 08:49:45…
>止まってしまわないかが心配
止まるに決まってるじゃないか。
プログラマがスレッド作らない限りシングルスレッドだ。
0869デフォルトの名無しさん
2009/11/11(水) 09:20:55お前は何を言ってるんだ?
0870デフォルトの名無しさん
2009/11/11(水) 11:21:401つのテキストボックス内で、
yahoo検索のような、空白によるand、or検索ができる
ものを作成したいと思います。
検索機能はできているのですが、1つのテキストボックスに複数語を入力して、
それを認識することができません。何かアイディアがあったらお願いします。
わかりにくくてすみません。
0871デフォルトの名無しさん
2009/11/11(水) 11:29:120872デフォルトの名無しさん
2009/11/11(水) 11:31:15全角か半角のスペース
と書きたかったんだい!
0873デフォルトの名無しさん
2009/11/11(水) 21:54:23計算がメインなら計算用のスレッドを自分で起動する
間違ってもイベントハンドラの中でやらないように
0874デフォルトの名無しさん
2009/11/11(水) 22:29:34やりたいのは、ユーザーフォルダではなく.exe直下に設定ファイルを置く事です。
0875デフォルトの名無しさん
2009/11/11(水) 23:17:56だから読み取り専用になってるんだろ
0876デフォルトの名無しさん
2009/11/12(木) 00:15:160877デフォルトの名無しさん
2009/11/12(木) 00:29:30別に制限が多い「アプリケーション設定」なんか使わず、
自分で設定値の保存/取得をするコードを書けばいいだけ。
シリアル化を使えば手間は「アプリケーション設定」と大差ない。
(むしろこっちの方が手間が少ない場合の方が多い。)
ただ、そうしたところで
- プログラムがProgramFiles以下のディレクトリにインストールされている場合、
Vistaでは実行ファイルと同じ場所に設定ファイルの作成はできない。
- Vistaでなくても、デフォの設定では通常ユーザーで実行した場合は
設定ファイルを作成できない。
ってだけのこと。
0878デフォルトの名無しさん
2009/11/12(木) 15:22:180879デフォルトの名無しさん
2009/11/12(木) 16:39:38そもそも変更不可だ。
0880デフォルトの名無しさん
2009/11/12(木) 20:28:48.NETは何の略?
0881デフォルトの名無しさん
2009/11/12(木) 21:33:060882デフォルトの名無しさん
2009/11/12(木) 23:22:16開発しているPCではエラーも発生せず動作するのですが
あまりメモリを積んでいないPC(512MB)ではSystem.OutOfMemoryExceptionが発生します。
エラーが発生する環境を開発環境で再現するためにApplication Verifierを導入し,
Low Resource Simulationにチェックを入れて実行するとSystem.OutOfMemoryExceptionが発生しました。
メモリが足りないことがエラーの原因だと思いますが,FormにPictureBoxを数個置いているだけのプログラムでして
それほどメモリを使用しているとも思えません。CloseやDisposeで解放するようにしましたが状況は変わりません。
こうした問題はどうやって解決すべきでしょうか?
0883デフォルトの名無しさん
2009/11/12(木) 23:38:10そんなの知るかよ。
それほどメモリを使用しているとも思えません?
煽り抜きでいかにもダメな奴が言いそうな台詞だね可哀想。
0884882
2009/11/13(金) 00:07:33Working Set - 20,684KB
Peak Working Set 20,800KB
仮想メモリ
Private Bytes - 18,912KB
Peak Private Bytes - 19,088KB
正直メモリ使用量の定義がよく分からないのでそれっぽい値を書き出しただけなんですが
コントロールの無いFormを表示させるだけのプログラムで以下のような感じなので
それほどメモリを消費してるとは思えないのです。
Working Set - 13,228KB
Peak Working Set 13,228KB
仮想メモリ
Private Bytes - 14,052KB
Peak Private Bytes - 14,052KB
0885デフォルトの名無しさん
2009/11/13(金) 00:50:370886デフォルトの名無しさん
2009/11/13(金) 01:05:570887デフォルトの名無しさん
2009/11/13(金) 04:07:16VB2010ベータ1をインスコして勉強がてら遊んでみた。
最近はマルチコアのCPUも多くなったし、重いループ処理は極力マルチコアで処理させようと考えて
次のようなコードで試してみたんだけど・・・
Private counter As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
counter = 0
System.Threading.Parallel.For(0, 10000, AddressOf proc)
Console.WriteLine(counter)
End Sub
Private Sub proc(ByVal index As Integer)
counter += 1
For i As Integer = 0 To 1000000
Next
End Sub
counterの値が10000になると思ったのに何故か9998とかになっちまうじゃねえか!この野郎!
あと、System.Threading.Parallel.ForEachも試してみたが、これも同じ様に列挙が抜け落ちる!
言うまでもなく例外など出ない(笑)
俺がおかしいのか??それともベータだから未完成ってことなのか?
0888デフォルトの名無しさん
2009/11/13(金) 05:32:11そもそも += はスレッドセーフじゃなかったと思う
0889デフォルトの名無しさん
2009/11/13(金) 05:39:45Interlocked.Increment(counter)
VBってvolatileにあたるのってなかったっけ?
0890デフォルトの名無しさん
2009/11/13(金) 09:37:390891デフォルトの名無しさん
2009/11/13(金) 09:38:28当たり前であって馬鹿はお前だ。
どういう事か理解できないならパラレルとかマルチスレッド絡みには
手を出さない方がいいぜ。
0892デフォルトの名無しさん
2009/11/13(金) 10:15:42MSDNのクラスのリファレンスに必ず「スレッドセーフ」があるんだが。
それでいて”意味がわからない専門用語”といってる時点で、あんたがココに来る資格ないよ
0893デフォルトの名無しさん
2009/11/13(金) 13:19:110894デフォルトの名無しさん
2009/11/13(金) 21:54:46どんな方法があるでしょうか。
下を思いついたのですが、どうも力技な感じがして…
s = "0123456789abcdefghijklmnopqrstuv"
o = s.Chars(Int(32 * Rnd())
0895デフォルトの名無しさん
2009/11/13(金) 22:55:29・メモリリークなどのリソース解放漏れ
・同じくリソース使用量の推移
をチェック/トレースしてくれるおすすめツール(プロファイラって言うんでしょうか?)
ありませんでしょうか?
CLR Profilerなるものを調べてみたのですが何か取っつきずらそうでして
もう少しリスト的な出力をしてくれると非常のありがたいです
・個人使用ですが2,3万まででしたら購入することも検討します
その場合、トライアル版があるとうれしいです
・ざっと検索してみると日本語版よりは英語版の方が多いようです
インターフェースが難しくなければ英語版でもOKです
抽象的質問で恐縮ですが、教えていただけると幸いです
0896デフォルトの名無しさん
2009/11/14(土) 13:06:54って言われました。彼はそれだけ伝えて帰ったのですがk、VBの神とはなんでしょうか?
彼は、ある上流企業のプログラマーやってたはず。
0897デフォルトの名無しさん
2009/11/14(土) 13:28:410898デフォルトの名無しさん
2009/11/14(土) 13:54:390899デフォルトの名無しさん
2009/11/14(土) 14:08:41これか。
0900デフォルトの名無しさん
2009/11/15(日) 10:21:14今から VB.NET を趣味で使おうと思うのですが、趣味の人でも質問できる適当な
スレはどれになるのでしょうか。
0901デフォルトの名無しさん
2009/11/15(日) 11:01:310902デフォルトの名無しさん
2009/11/15(日) 13:08:43ここで良いよ。
ここはVB.NET超初心者からVB.NET中の人まで幅広く居るスレ。
0903デフォルトの名無しさん
2009/11/15(日) 13:52:37いえ、それが最適解です。
0904デフォルトの名無しさん
2009/11/15(日) 18:05:23ジオシティーズはダメみたいで
0905デフォルトの名無しさん
2009/11/15(日) 19:00:44(ちなみにDLLファイルです。使う時は外に書き出して使います。)
0906デフォルトの名無しさん
2009/11/15(日) 19:02:180907デフォルトの名無しさん
2009/11/15(日) 22:44:230908デフォルトの名無しさん
2009/11/15(日) 22:50:260909デフォルトの名無しさん
2009/11/15(日) 22:57:09BinaryWriter でバイト配列をファイルに書き出せばいいし。
0910デフォルトの名無しさん
2009/11/15(日) 23:06:31出来そうです。
ありがとうございました
0911デフォルトの名無しさん
2009/11/15(日) 23:13:50インターフェイスだけまた別のDLLに定義するとか特殊な扱いが必要になる
0912デフォルトの名無しさん
2009/11/16(月) 13:02:50テキストボックスに値を入れて、出力されたリストボックスの文字列を取得する事ってどうやったら出来るのでしょうか?
0913デフォルトの名無しさん
2009/11/16(月) 13:33:30Win32APIのSendMessage等を使ったほうが楽かな。(つーかこの方法しか俺は思いつかない)
0914デフォルトの名無しさん
2009/11/16(月) 16:56:53まあNGENとか使ったら破綻するだろうけどまあ使わんだろうし。
ILMergeでできるものならそれが手っ取り早いけど。
0915デフォルトの名無しさん
2009/11/16(月) 17:17:03>>921の言うSendMessageで値を送るのは出来るんだが、
特定のコントロールから値を読み込む事ができなくて挫折した覚えがある
0916デフォルトの名無しさん
2009/11/16(月) 18:50:36計算結果の型をdoubleにすると16桁までしか表示されないと思うのですが、
もっと1000桁,10000桁と表示させたいです。
手法の概略を教えてもらえませんか?
0917デフォルトの名無しさん
2009/11/16(月) 19:38:422. 「.net 多倍長演算」 でググります。
0918デフォルトの名無しさん
2009/11/16(月) 20:48:470919デフォルトの名無しさん
2009/11/17(火) 00:20:44このページにWebRequestとWebResponseでアクセスしているのですが
送られて来た際にそれをイベントで受け取る方法を教えて頂きたいです。
0920デフォルトの名無しさん
2009/11/17(火) 10:28:19AccessVBAなら触れる程度のレベルでは難しかったかも..Invokeがよく判りませぬ..
ソースを書いて良いのか判らないので概略で..
・フォーム(Form1)が1つとその上にテキストボックス(Textbox1)が配置してあります。
・フォームオープン時の処理にメーカーから提供されたAPIを利用してバーコード読み取りを開始しています。
・スキャンイベント(読取完了、エラー、タイムアウト等)発生をハンドラとするプロシージャを同クラス内に1つ作成しています。
・スキャンイベント正常終了時にTextbox1.Textに読み取り結果を入力しようとすると下記のエラーが発生します。
「System.NotSupportedException はハンドルされませんでした。別のスレッドで作成されたコントロールと対話するには、Control.Invoke を使用してくだ
さい。」
そこでttp://www.atmarkit.co.jp/fdotnet/dotnettips/312ctrlinvoke/ctrlinvoke.html等を読んで
Invokeを使ってみようと思ったのですが
スキャンイベントをハンドラとして動くプロシージャをこの中でどう記述したら良いのか見当が付きません。
もしかしてInvokeの概念を理解し損ねてるのかも..
アドバイスをお願いします。
0921デフォルトの名無しさん
2009/11/17(火) 10:45:52意味が分からん
イベントは動作のトリガーだろ?
スキャンイベントのイベントハンドラでInvokeを実行する
それともそのスキャンイベントとかいうのはなんか特別な意味でもあるのか
0922デフォルトの名無しさん
2009/11/17(火) 10:55:39どんなAPIなんかわからんが…
古いNECのCE端末についてたBRは普通にキーボードのイベントと同じで
テキストボックスにフォーカスあてとけば勝手にいれてくれたけどな・・・
でCRLF辺り最後にくっつけてその辺で処理のトリガにするとかしてたけど・・
0923デフォルトの名無しさん
2009/11/17(火) 11:07:16フォームのクラスにString変数を用意して
スキャンイベント正常終了時はその変数に代入しておいて
フォームのスレッドではタイマーでString変数に値が入ったら
そのテキストボックスに入れるようにすればいい
0924デフォルトの名無しさん
2009/11/17(火) 11:21:20だったら InvokeRequired == true の時にBeginInvokeかInvoke噛ませて呼んでやればいいだけじゃないのか?
portected void イベントなんたら()
if (this.InvokeRequired == true)
{
this.BeginInvoke(なんかのイベント);
return;
}
}
もちろん>>923の方法でもいけるだろうけど本当に別スレッドなんだったら一応ロックかませるべきだろうし・・
0925デフォルトの名無しさん
2009/11/17(火) 11:28:240926デフォルトの名無しさん
2009/11/17(火) 11:30:21あ、いや
素で間違った。ごめん
0927デフォルトの名無しさん
2009/11/17(火) 11:30:54Imports System.Threading
Public Class Form1
Private s As String = ""
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Timer1.Interval = 1000
Timer1.Enabled = True
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim t As Thread = New Thread(AddressOf hoge)
t.Start()
End Sub
Private Sub hoge()
s = "hoge"
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
TextBox1.Text = s
End Sub
End Class
0928デフォルトの名無しさん
2009/11/17(火) 11:40:061秒間に2回読んでしまったらどうなるんですかっ!!
0929デフォルトの名無しさん
2009/11/17(火) 11:41:540930デフォルトの名無しさん
2009/11/17(火) 11:45:400931920
2009/11/17(火) 11:50:46とりあえず頂いたコードでやってみます。
#アホな社員がいるのか会社PCが規制中..携帯からですorz
0932デフォルトの名無しさん
2009/11/17(火) 13:07:22ある項目をひとつ上にずらす方法がわからん
0933デフォルトの名無しさん
2009/11/17(火) 13:10:390934デフォルトの名無しさん
2009/11/17(火) 13:26:59どちらかしか分からない初心者に急ぎの仕事でちょっとあせっています。
具体的には50ミリ秒間隔で測定データを読み取って機器を制御します。
処理自体は簡単なものなのですが、そもそも可能でしょうか。
しいて言えばVBとC#のどちらがマシでしょうか?
0935デフォルトの名無しさん
2009/11/17(火) 13:38:59でも正確に50ミリ秒毎とかは、
OSとFrameworkとその機器のドライバの都合で遵守できない気がする
0936デフォルトの名無しさん
2009/11/17(火) 14:04:34Arduino使うのがいいよ
0937デフォルトの名無しさん
2009/11/17(火) 14:12:05プログラムも計量化して止まらないようにしたうえでOSのサービスとかそのへんも全て切らないといけないかな…
ちょっとHDDにアクセスされたりしただけで処理遅延起きるだろうし
テキストボックスに入力した文字列でHTMLを吐き出して自動でリンク貼るようにしたのですが・・・。
<p>タグと<br>タグをボタンクリック時にテキストボックスに表示したいのです´`
・行末に一括して<br>タグを入力
・改行して一行空けたところに<p>タグを一括して挿入とかできますですか?´`
できるならヒントだけください´`
0939デフォルトの名無しさん
2009/11/17(火) 18:23:290940デフォルトの名無しさん
2009/11/17(火) 18:42:22つ[TextBox.Lines プロパティ]
Dim i As Integer
For i = 0 To txtWrite.Lines.Length - 1
txtWrite.Text = txtWrite.Lines(i) + "<br>"
Next
こんなんじゃダメですか?´`
ダメでした。
もうちょっと調べてみます。
0942デフォルトの名無しさん
2009/11/17(火) 19:23:02StringBuilder を用意して、1行読んでは "<br>" つけて
AppendLine していって、最後に Text プロパティに再設定すればいいんでは。
やってみまふ´`
0944デフォルトの名無しさん
2009/11/17(火) 21:18:30If txtWrite.TextLength > 0 Then
txtWrite.Text = String.Join("<br>", txtWrite.Lines) & "<br>"
End If
一文字も入っていない時の対応が微妙に格好悪いけどw
Array.ConvertAll+ラムダ式とかなら正確にできるけど、そこまでするほどじゃないしなあ。
わざわざすみませぬ´`
0946デフォルトの名無しさん
2009/11/17(火) 21:37:36改行コードがCrLfじゃないときは適当に工夫してくれ
0947デフォルトの名無しさん
2009/11/17(火) 21:46:41あと、定数宣言って一般的にはどういう風に皆さんは定義していますか
モジュールは使わずにクラスで定義して試用する方がやっぱりよろしいのでしょうか
0948デフォルトの名無しさん
2009/11/17(火) 21:49:37相応しいクラスに記述する あとConstは普通使わない
0949デフォルトの名無しさん
2009/11/17(火) 22:23:08Constは余計なトラブルのもとになるので特に理由がなければ避ける
0950デフォルトの名無しさん
2009/11/17(火) 22:37:34俺には合理性があるルールには思えんな。
むしろReadOnlyなんてプリミティブ型で使いたくない
0951デフォルトの名無しさん
2009/11/17(火) 22:43:45アセンブリ外から見える定数にConstを使ってはいけない。後で値を変更できなくなる。
0952デフォルトの名無しさん
2009/11/17(火) 22:48:38俺が知らない問題についていってるのかもしれんが、意味不明に聞こえるなあ。
「後で値を変更できなくなる」の「後」って何?
コンパイル後のこと?
バージョンアップのことを「後」って言ってるのか?
前者なら、そもそもそれがConstの意義だから何の問題もない。
後者なら、全然そんなはずはない。
0953デフォルトの名無しさん
2009/11/17(火) 22:54:50それを参照してるものはすべてコンパイルし直さないといけなくなる。
>http://msdn.microsoft.com/ja-jp/library/ms229057%28VS.80%29.aspx
>const 値を変更すると、必ず互換性に関係する問題が生じます。
0954デフォルトの名無しさん
2009/11/17(火) 22:55:150955デフォルトの名無しさん
2009/11/17(火) 23:00:51Constだとコンパイル時に即値に変換されちゃうって訳ね。
なるほど納得したすまん。
0956デフォルトの名無しさん
2009/11/17(火) 23:03:100957デフォルトの名無しさん
2009/11/17(火) 23:16:04http://msdn.microsoft.com/ja-jp/library/01143ea4%28VS.80%29.aspx
できるようですね、MSDNにもちゃんと明記されていました・・・
定数についてはちょっと考えを改めていこうと思います
Cだとヘッダ、VB6だと標準モジュールに定数を羅列するような感じで
今まで使っていたのですが、VB.NETだと毛色が違うようでいろいろと
他人のソースを見て回ってきます
0958デフォルトの名無しさん
2009/11/18(水) 01:09:19ちょっと目鱗かなぁ…
不変な物ならつかってもいいですか?
┃゚д゚)チラッ
0959デフォルトの名無しさん
2009/11/18(水) 01:20:040960デフォルトの名無しさん
2009/11/18(水) 10:36:02フィールドを公開するなんて下策は普通とらない。
0961デフォルトの名無しさん
2009/11/18(水) 10:53:14ファイルに保存したいのですが、どうすればできるでしょうか?
0962デフォルトの名無しさん
2009/11/18(水) 11:20:42とかはどうなのよ?
0963デフォルトの名無しさん
2009/11/18(水) 13:28:360964デフォルトの名無しさん
2009/11/18(水) 14:53:030965デフォルトの名無しさん
2009/11/18(水) 15:14:59∧,,∧ ∧,,∧
∧ (´・ω・) (・ω・`) ∧∧
( ´・ω) U) ( つと ノ(ω・` )
| U ( ´・) (・` ) と ノ
u-u (l ) ( ノu-u
`u-u'. `u-u'
0966デフォルトの名無しさん
2009/11/18(水) 19:22:09<input type="submit" value="次へ"/>
<input type="hidden" value="001" name="action"/>
上のような形のsubmitボタンが複数あり
その中からhiddenが001のボタンを自動でclickするようにしたいのですが
方法はありませんか?
0967デフォルトの名無しさん
2009/11/18(水) 19:33:10つうかhiddenが001てボタンじゃ無くね?
0968デフォルトの名無しさん
2009/11/18(水) 19:44:05javascriptで
0969デフォルトの名無しさん
2009/11/18(水) 19:44:21001ってのは仮です
0970デフォルトの名無しさん
2009/11/18(水) 21:12:44textboxでpaddingの効果を得るにはどうすればいいのでしょうか?
入力した後の表示で左側を大文字スペース1個分ぐらい開けたいのですがやり方がわかりません。
あとは下側に表示を行いたいのですが、
textalignもleft,center,rightで、
bottomleftがないですし・・・
bottomと同じ効果はpadding上設定で出来るとも思っていますが。
サイトへの誘導などでもよろしくお願いします。
0971デフォルトの名無しさん
2009/11/18(水) 21:20:02For Each frm As HtmlElement In hdoc.Forms
For Each elm As HtmlElement In frm.GetElementsByTagName("hidden")
If elm.GetAttribute("value") = "001" And elm.Name = "action" Then
frm.InvokeMember("submit")
End If
Next
Next
こんなかんじでやるしかないんじゃない
0972デフォルトの名無しさん
2009/11/18(水) 21:21:06>>971は>>969ね
0973デフォルトの名無しさん
2009/11/18(水) 21:23:49フォーカスはずれたときにTextの頭に全角スペース突っ込んで、フォーカスが来たら頭のスペースを削除するとかw
0974デフォルトの名無しさん
2009/11/18(水) 21:36:26グローバル変数?でコメントもなくて
aflgとかbflgとかわけわかんなくて
いたるところで値が書き換えられててわけわかんないんだけど、
こういう分かりづらいソースを保守するコツみたいな物ありますか?
まじでPG難しい
0975デフォルトの名無しさん
2009/11/18(水) 21:38:06ブラックボックスとして扱う
0976デフォルトの名無しさん
2009/11/18(水) 21:54:34ありがとうございます。
その手もありましたね。
いくつか案を出して他者と検討しますので、案に上げさせてもらいます。
今現在は、ラベルのborderstyleで表示枠を作って、
textboxのmultilineで丁度いいサイズを作成し、
全角1マス分ラベルの左側から離して、bottomleftの位置になるように
内部に配置という方法も考えていたり・・・
なんでプロパティでpadding設定できないんでしょうね。。。
他に同じように表示できる方法をご存知の方よろしくお願いします。
0977デフォルトの名無しさん
2009/11/18(水) 21:57:29obj = (object)new byte[count];
と代入しているのをVBに変換する場合、
Dim bts As Byte() = New Byte() {}
ReDim bts(cbPidl - 1)
obj = bts
こういう仕方で行なえばよいでしょうか?よろしければご指南ください。
0978デフォルトの名無しさん
2009/11/18(水) 21:59:28Redimのところは ReDim bts(count - 1) でした、すみません。
0979デフォルトの名無しさん
2009/11/18(水) 22:55:15どうやれば良いでしょうか?
For I As Integer = 1 To 50
TextBoxI.Text=""
Next
こういうことなのですが・・・
0980デフォルトの名無しさん
2009/11/18(水) 22:58:55C#と全く同じ
obj = New Byte(count) { }
0981デフォルトの名無しさん
2009/11/18(水) 23:04:55Dim tbxs As TextBox() = New TextBox() {TextBox1, TextBox2, TextBox3, TextBox4, TextBox5}
For Each tbx As TextBox In tbxs
tbx.Text = "ABC"
Next
0982デフォルトの名無しさん
2009/11/18(水) 23:05:36配列のサイズの指定方法がVBとC#では違うよ。
0983デフォルトの名無しさん
2009/11/18(水) 23:07:40ありがとうございます。
出来ました。
でもTextBox1, TextBox2, TextBox3, TextBox4, TextBox5。。。。。というのは必ず1度は書かないとだめでしょうか?
0984デフォルトの名無しさん
2009/11/18(水) 23:09:53そのTextBoxが、たとえばフォームに配置されている場合
For Each ctl As Control in Me.Controls
If ctl.GetType().Name = "TextBox" Then
CType(ctl, TextBox).Text = ""
End If
Next
といった感じでできるが、Controlsコレクションに追加されているのが前提である(デザイナでフォームに配置した場合は追加される)
0985デフォルトの名無しさん
2009/11/18(水) 23:10:25要素型() 変数名 = New 要素型(サイズ) { }
の形式で書けばほぼ同じ
最後の{}が格好悪いけど仕方ない
0986985
2009/11/18(水) 23:11:21すまんこうだった
0987デフォルトの名無しさん
2009/11/18(水) 23:13:21ありがとございます。
できました!!
0988デフォルトの名無しさん
2009/11/18(水) 23:13:45どうもです!!countについては一応 count-1 ですよね?
0989デフォルトの名無しさん
2009/11/18(水) 23:15:25だから違うよ。
C#(というかC系統の言語)は配列の要素数を指定する。
ところがVBは伝統的に配列の最後のインデックスを指定することになってる。
ヤバイんじゃないの?今までこれ知らずにコード書いてたとしたらw
0990デフォルトの名無しさん
2009/11/18(水) 23:17:32>>976
よく使うなら一個そういうカスタムコントロール作っとけば?
フォーカスがない場合はPaint時に自分で全角をくっつけて描画
フォーカスがある場合はコントロールのペイントに任せるとか
0991デフォルトの名無しさん
2009/11/18(水) 23:18:06これからいじくってみます
ありがとうございました
0992デフォルトの名無しさん
2009/11/18(水) 23:19:31ありがとうございました!!同じ形式で書けるのですね!わかりました!
0993デフォルトの名無しさん
2009/11/18(水) 23:21:01わかりました!!ありがとうございます!!
0994デフォルトの名無しさん
2009/11/18(水) 23:40:230995デフォルトの名無しさん
2009/11/18(水) 23:41:130996デフォルトの名無しさん
2009/11/19(木) 00:41:29>VBは伝統的に配列の最後のインデックスを指定することになってる
つか、大昔のBASICの名残で、配列は1からだったんだよ
なんで指定するのは個数だともいえたわけだ。VBになって、配列は0からか
1からか指定できるようになったんだよ(3からとか10からとかでも指定できたがw)
そしてVB.NETになって0からのみになった
その間上限の指定方法はずっと変わってないんだ
0997デフォルトの名無しさん
2009/11/19(木) 01:23:451.234 と
50 という2つの数字から
1.250を得たいのですが、
1.290と10だった場合は1.310を得たいです。
また1.8と1だったら2.1だったり
桁数が変動するのですがどんな感じでやれば良いでしょうか?
0998デフォルトの名無しさん
2009/11/19(木) 02:30:08第一引数の小数部の桁数をm、第二引数の桁数をnとしたとき
第一引数の小数点以下第n位を四捨五入して、それに
第二引数を10^mで割った数値を加えたい?
0999デフォルトの名無しさん
2009/11/19(木) 07:37:151000デフォルトの名無しさん
2009/11/19(木) 07:38:2610011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。