VB.NET質問スレ (Part19)at TECH
VB.NET質問スレ (Part19) - 暇つぶし2ch331:デフォルトの名無しさん
07/02/01 14:26:21
>>330
"yyyy/MM/dd"じゃね?

332:デフォルトの名無しさん
07/02/01 14:28:30
stringはformat出来ません

333:デフォルトの名無しさん
07/02/01 14:29:49
>>330
URLリンク(msdn2.microsoft.com)(VS.80).aspx
ユーザー定義の数値書式の所読め

334:デフォルトの名無しさん
07/02/01 14:32:25
>>330
普通にLeft、Mid、Right関数で文字列を取得していけばよいのでは?

335:デフォルトの名無しさん
07/02/01 14:33:20
FormatはVB6の頃と仕様が違う。
素直に>>334

336:デフォルトの名無しさん
07/02/01 14:35:02
Format(CInt(strDate), "0000/00/00")
にしたところ、解決できました。ありがとうございました。

337:デフォルトの名無しさん
07/02/01 14:39:23
そんな無意味な型変換は事故の元だろ?
なんで数字変換しないと駄目なの?


338:デフォルトの名無しさん
07/02/01 14:50:28
CDateなかったか?
てかいきなりそんなとこで整数化することに
疑問はないのか?

339:デフォルトの名無しさん
07/02/01 14:58:03
型変換はまずいのですか…。
必ずstrDateに8桁の数字で項目が来ることがわかっていても危険ですか?

そうであるなら、midで取って、取得した文字列にDate.TryParseで判定するようにします。


340:デフォルトの名無しさん
07/02/01 16:21:26
不要な変換なんてしないに越したことはないじゃん。
文字として切って文字加工できるのに。

341:デフォルトの名無しさん
07/02/01 16:29:25
strDate.Insert(2,"/").Insert(5,"/") こんなんでいいんでは?

342:デフォルトの名無しさん
07/02/01 16:30:46
↑ 挿入箇所間違ってたわ、2と5のところは適当に。

343:319
07/02/01 18:45:02
Form1.Line (Sx, Sy)-(Sx + box, Sy + box), C, BF
を書き換えて
Dim g As Graphics
g.DrawLine(New Pen(Color.C), Box, Box, Sx + Box, Sy + Box)
             ~~~~~~~~~~
というトンデモコードを書いちゃいましたが~~~にエラーが出ちゃいます
手前の
R = Int(16 * Rnd()) - 1
If R < 1 Then C = QBColor(0) Else C = QBColor(R)
からして物故割れてるのでしょうか・・・?

344:デフォルトの名無しさん
07/02/01 18:51:59
>>343
物故割れてるのは君の(ry
悪いこと言わないから本買って一から勉強しなさい

345:デフォルトの名無しさん
07/02/01 22:08:54
すみませんが、教えてください。ControlクラスとPanelクラスでは、
Panelクラスのほうがインスタンスのメモリー消費は激しく大きいでしょうか?

Controlクラスから派生させたものとPanelから派生させたものとで
ほとんど同じでいくらか違うクラスがあって、その差の分だけまた
Controlクラスから派生させたものにフィードバックするのが面倒なのですが、
なんでもかんでもPanelから派生させたものを使うのではメモリー消費が
大きくなるといけないかと思いました。

しかし面倒なのでこのままPanelから派生させたものでやりたいのですが・・・
どうするのがベターでしょうか。

346:デフォルトの名無しさん
07/02/01 22:43:54
貧乏臭いこと言うな
他に考えることがあるだろ

347:デフォルトの名無しさん
07/02/01 22:44:56
要するに自分で調べるのは面倒だから
俺様の代わりにちょっとそこのお前実験しろ、と。

そんなお人よしが果たしているかねw
馬鹿じゃないのお前

ていうか、パネルみたいなシンプルなコントロールがそんなにメモリ大食いするともそもそも思えんが

348:デフォルトの名無しさん
07/02/01 22:59:24
>>346-347
どうもです。

てことはやはりPanelクラスのオブジェクトはそれほど食わないだろいうことですね。
安心しました。

というか、どうもクラスの派生でプログラムすることを最近始めたため、世の中の
常識的なところがわからず、どうしたものかと悩んでおりました。
教えていただき、ありがとうございました。どうもでした。

349:デフォルトの名無しさん
07/02/01 23:02:43
>>348
常識で言ったら余計な機能は継承しないのが当然。

350:デフォルトの名無しさん
07/02/01 23:04:11
VB.NET2005、.NET Framework2.0での開発についてちょっと質問ですが
プロパティシートもしくはそれに類するUIを実装するような .NET Frameworkの機能はありませんでしょうか
そのものズバリのものでなくとも、実装に利用できる程度のものでもあればよいのですが

351:デフォルトの名無しさん
07/02/01 23:05:58
TabControl

352:デフォルトの名無しさん
07/02/02 00:04:40
このスレ マイクロソフトにでも見せたら きっと笑うんだろうね

353:デフォルトの名無しさん
07/02/02 01:14:07
マイクロソフトは 人間では ない

354:デフォルトの名無しさん
07/02/02 01:41:59
もっと恐ろしい別の何かだ

355:デフォルトの名無しさん
07/02/02 01:48:54
ゆえに笑わない。

356:デフォルトの名無しさん
07/02/02 08:58:04
ロボットだからマシンだから

357:デフォルトの名無しさん
07/02/02 09:04:53
この銀河を統括する情報統合思念体によって(ry

358:デフォルトの名無しさん
07/02/02 09:07:27
その恐ろしい何かを覗き込むとき、向こうも此方を覗き込んでいるんだよ。

359:デフォルトの名無しさん
07/02/02 09:28:56
>>350
もっと目的をハッキリ書いてくれ。
プロパティの編集がしたいなら PropertyGrid だし、見た目のことならフォームで作るしかない。

360:デフォルトの名無しさん
07/02/02 10:25:08
プロパティグリッドって良いよね。
あれ+クラスのシリアル化があれば、大抵の設定保存、編集は簡単に作れる。

361:デフォルトの名無しさん
07/02/02 12:29:30
>>359
はっきり書いてあるだろ。
自分の無知を棚に上げて何言ってるんだこのググレカスw
350の名誉のために言うが、俺は350じゃないから。

362:デフォルトの名無しさん
07/02/02 12:43:20
>>361
359じゃないけど、あれじゃ何を求めてるのか…「UIを実装するような機能」ってなによw
まだ359は推測で答えてるだけましじゃね?そういうお前なにも答えてないしwww

350の名誉のために俺は350じゃないってなんだよwwwww


363:デフォルトの名無しさん
07/02/02 13:00:57
プロパティシートってぐぐって最初に出てくるようなやつのことじゃないの?
だったら>>351じゃん

364:デフォルトの名無しさん
07/02/02 13:37:20
あれプロパティシートって呼ぶのか
知らんかったwwww

365:デフォルトの名無しさん
07/02/02 13:40:14
初心者ですみません
2003のslnを2005で使用するには、
何か作業が必要でしょうか。

366:デフォルトの名無しさん
07/02/02 13:42:26
VB使ってIEのコマンドボックスにテキストを入力したりできますか?
検索エンジンで調べてもわかりませんでした教えてください><;

367:デフォルトの名無しさん
07/02/02 14:01:22
コマンドボックスって何ですか?
検索エンジンで調べてもわかりませんでした教えてください><;

368:デフォルトの名無しさん
07/02/02 16:51:07
検索エンジンって何ですか?
じいちゃんにきいてもわかりませんでした教えてください><;

369:デフォルトの名無しさん
07/02/02 17:31:18
   , .- ==.、
 ,r'     i            呼んだ?
.,'   ,r'^":ツ
',   i:::::;〃..':.,
..`-- '"':、   .':,
     `'::.,   ':,
...       ゙'::., ..':,
       r=t,,r::` .':,-''_、
     _.i::::::::::::::::'-::'::::::::::i::-z=:ュ
.   <- .ii:::::::::::::::::ii:::::::::::::i::r个::',,,_
.   i  `^^''=--:::::::::::::::::::ii   .,.rィ'
.   i         `^'''':::z-''"c、 |
   ぅ、_           i  "i.i..|
   `^''''-=、- 、._     .i   i.i少,
.        `^''''-=、=-、,, i,,r'"彡'':-'
             `^''-=-''"

370:デフォルトの名無しさん
07/02/02 18:15:55
VS2005ってvista対応とちがうの?
起動したとたんにDevenv.exeの互換性エラーが出るのですが・・

371:デフォルトの名無しさん
07/02/02 18:18:57
>>370
SP1あてた?本対応はさらに何か出るらしいけど。

372:デフォルトの名無しさん
07/02/02 19:59:15
対応なのは、VS2005+.NET2.0で作ったアプリであってVSそのものじゃ無いんじゃ?
良くしらんけど

ところでちょっと訊きたいんだけど
プロシージャ内でローカルに作って使ったオブジェクトって
そのプロシージャ抜けたら速攻解放されるんかね?
それとも、もう要らないってマークだけされて、いつか解放されるとか言う仕様?

373:デフォルトの名無しさん
07/02/02 20:22:51
明示的にガーベジコレクタ呼んでやれば消えるが、
普通は確保したメモリを使い果たしそうになったときに回収される。

374:デフォルトの名無しさん
07/02/02 20:24:37
"C:\hoge"から"hoge"だけ取り出したいのですが、
正規表現以外に何かいい方法あればご教授お願いします

何かのメソッドに在りそうなんだけど見つけれない時・・・みなさんはどうしてるんでしょうかw

375:デフォルトの名無しさん
07/02/02 20:28:50
笑ってる暇があったらMSDN引けよ阿呆

URLリンク(msdn2.microsoft.com)

376:デフォルトの名無しさん
07/02/02 21:04:33
なにそれwキモイw

377:デフォルトの名無しさん
07/02/02 21:27:56
>>373
なるほど、ありがとうっす

378:デフォルトの名無しさん
07/02/02 21:44:32
条件式で 100 > n > 200 のように 間の値を取りたいのですが、
この場合に一行で済む構文はございますでしょうか。 

379:デフォルトの名無しさん
07/02/02 21:53:18
100 > n and n > 200

380:デフォルトの名無しさん
07/02/02 21:53:44
ありがとうございました

381:デフォルトの名無しさん
07/02/02 22:08:17
AndAlsoの方が良くね?

382:デフォルトの名無しさん
07/02/02 22:24:32
すまんですが教えてください、VB6であった 「透明」スタイルのコントロールは
作れるでしょうか?あちこち調べたのですが、たとえ
 Color.FromArgb(0,0,0,0) 
などにして、Alpha値を0にしてもどうもコントロールの上のコントロールには
FormのBackColorあるいはBackGroundImageが移るだけのようでした。

これを、下層のコントロールも透けるようになるようなVB6でできた透明スタイルの
コントロールはできるものでしょうか?


383:デフォルトの名無しさん
07/02/02 22:28:53
MDBファイルをデータグリッドビューに表示できたのはいいんだが
アクセスのレポートみたいに
データセットとかデータテーブルを印刷できるようにするには
どうすればいいですか?
2005にはレポートビューワーなる素敵機能があるみたいですが
2003(.net1.1)で実現したいのでつかえんみたいです

384:デフォルトの名無しさん
07/02/02 23:29:40
>>382
>下層のコントロールも透けるようになるようなVB6でできた透明スタイル

これ表現がおかしかったです、
>下層のコントロールが見えるようになるVB6でできた透明スタイル
でした。どうもすみません。。


385:デフォルトの名無しさん
07/02/02 23:46:22
>>382
で、さらにですが、VS2005でFormにコントロールを貼って、そのサイズを調整しているときは、
点線表示でサイズ外形が現われているが、

例えば、長方形でない異形のコントロールなどでやっても、
その異形Rigion以外の部分は透明のままでサイズが調整できていて、実質的な透明化が
「デザイン時には実現している」 ようなのでした。

もし、VS2005が、.NET Framework の範疇で作られているとすれば、
これがVS2005でできないはずはないと思われ、やれるものなら透明化したいと思うのですが、
もしVS2005が実際にはWin32APIなどやあるいはもっと深いレベルでC++で作られている
のであれば、.NET Framework と VS2005 の VB や C# からだけではではできない、
ということになるでしょうか?

386:デフォルトの名無しさん
07/02/02 23:49:21
>>385
それとも、デザイン時の点線外形が掛けているのは、それがコントロールのRegionとは
無関係に、デザイナー上の機能で、勝手にコントロールの外側に線を描画している
だけなのでしょうか?

387:デフォルトの名無しさん
07/02/03 00:10:01
>>386
しかし、そうだとしても、そのデザイナー上の点線は、別のコントロールの上にも現われて
表示されているので、ということは、それ自体もやはりRegionを持っていて、そこに描画されて
いるようにも思われるのですが、どうなんでしょうね。

もしそうだとすると、そのRegionはごく細い領域を持つものになりそうですが、
そうでも点線の上に、○印もありましたから、その分の幅はあるのでしょうか・・・

でも点線の両側はしっかりと別のコントロールも現われているし・・・
まさか線幅1Pixelの線Regionに○印の部分だけ合成したRegionなんでしょうか?

388:デフォルトの名無しさん
07/02/03 00:23:56
そういう散漫な思考能力丸出しの文章を書く人はプログラマ向いてないと思うよ。

そもそもただ漠然とコントロールって何だよ。
VB6で背景透明にできるコントロールってラベルぐらいじゃなかったか?
だったらそんなの試せばわかるじゃん。それこそ猿でも。

まあどうしてもそんなことがしたいならデスクトップのDCに描画すればいいんじゃない?
くだらないこだわりにしか俺には思えないけど。

389:デフォルトの名無しさん
07/02/03 00:28:00
>>387
点線とハンドルかいてるのはデザイナだろうが

390:デフォルトの名無しさん
07/02/03 00:54:52
VB.NETで作られた有名なソフトご存じ無い?

391:デフォルトの名無しさん
07/02/03 01:03:42
>>388
スレ汚しになりましたね、すみませんね。

いちおう、Region使いながら考えてみてはいるのですが、やはり他のコントロール
が見える状態にはできませんでした。

またVB6でもラベルだけであったとしても、一応できてはいたわけで、
それがVB6が基本的にインタープリターだったから、同にでもなり安いからできた、
というものであれば、それが完全にオブジェクト指向になった.NETではやりにくいのだ、
ということなら、仕方ないですかね。

>>389
ですよね、たぶん。ということは、その点線も○も、他のコントロールにまたがって
その上面に描画できているということは、それはやはりRegionを貼っている特別の
コンロールを使ってやっている、ということなんでしょうか。

とすれば.NETでは本当の意味での透明化コントロールはできない、と考えるべき
なんでしょうか?

392:デフォルトの名無しさん
07/02/03 01:07:59
すまんがまとめてくれないか?質問がわからん。
背景が透けるコントロールがつくりたいのか?

393:デフォルトの名無しさん
07/02/03 01:09:47
>>388
後は、そのおっしゃっている 「デスクトップのDCに描画する」 ということなんでしょうが、
まだ皆目見当が付かないのでやるとしたらうんと大変になりそうですが、また調べてみます・・・

394:デフォルトの名無しさん
07/02/03 01:11:56
>>392
要はそういうことなのですが、、下に別のコントロールがあるときに、
そのコントロールもちゃんと見えるような透け方がほしいのでした。

現状ですと、Formの地が見えるだけで、コントロールは見えてくれない、
ということなのです。

395:デフォルトの名無しさん
07/02/03 01:15:35
そうやって書くからややこしくなる。
透けるとはそういうことに決まってるだろが

396:392
07/02/03 01:16:41
>>394
わかった。
で、UserControlでいいのか?
それともControlを継承してガリガリ書く?

397:デフォルトの名無しさん
07/02/03 01:58:45
>>396
それはもしかして、ここでコードを教えてくださるということでしょうか?
それではあんまりご迷惑を掛けてしまうので、とてもお願いはできません。

ただもしヒントとなる事柄を教えていただければ、また自分で考えてみます。

もしUserControlで出切るとしたら、概略どんなことを知らねばならないのでしょう、
それだけでもありがたいです。

398:デフォルトの名無しさん
07/02/03 02:05:25
新しいタイプの釣り?w

399:396
07/02/03 02:06:50
>>397
じゃ、これで。
URLリンク(www.microsoft.com)


400:デフォルトの名無しさん
07/02/03 02:11:28
>>398
そういうことではないのですが、別法も考えながらやってましたので、
回避して別の手段で乗り切ることもあり得るためでした。

>>396
ちなみに、現在のデザイナー上では、コントロールを移動する際は、
異形コントロールであっても、長方形の外枠全体が非透明状態で
塗りつぶされていました。なので、やはりRegionは長方形で認識されて
いるだと思いました。UserControlにした場合でも、基本的には同じになる
のではないかとおもいましたが、それを透明化する方法というものが
あるのでしょうか?

401:デフォルトの名無しさん
07/02/03 02:13:09
>>399
かぶってしまいました、すみません。

情報、さっそくにすみません。
読んでみます。

402:デフォルトの名無しさん
07/02/03 12:13:32
ああなんだ、別にWin32のGetWindowDCとか使わなくてもSetStyleでできるんだな。
普通に知らなかった。
でもこれ、Win32レベルではどうやって実現してるんだろう。

しかし、コントロールのSetStyleなんか典型だけど、.NETのクラスライブラリって
なんでこれがProtectedなんだ?ってのが結構あるよね。

403:デフォルトの名無しさん
07/02/03 14:34:01
プロパティでラップしようとしてるからな

404:デフォルトの名無しさん
07/02/03 18:40:16
アクセスを極力制限するのはいいことなんだが

405:デフォルトの名無しさん
07/02/03 18:54:08
なんかVBスレらしい間抜けなレスが続くなw
「モノ」が機能を発揮するにあたり、不必要な情報や機能呼び出しは隠蔽したほうが
判りやすさの観点から望ましいのは当然としても、必要な機能まで隠蔽してあるのでは
本末転倒でしょ。

テレビのリモコンに垂直振幅調整ボタンがなくても怒らないけど、
音量調整ボタンがなかったら怒るだろw

406:デフォルトの名無しさん
07/02/03 20:45:59
>なんかVBスレらしい間抜けなレス
=405


407:デフォルトの名無しさん
07/02/03 21:27:55
隠すのは分かりやすさよりも保守管理のため

408:デフォルトの名無しさん
07/02/03 21:34:28
また間抜けなレスを。。
自分の頭で理解して咀嚼したことでなく、
どこかで聞きかじったことを語ろうとするからそういうことになるんだよ。

隠蔽しなかったら保守が大変になるのはどうしてだよ。
それは人間の認識能力が限られているからだ。
つまり、判りにくくなるからだ。

409:デフォルトの名無しさん
07/02/03 21:42:01
405が言ってるのは「ユーザ側のわかりやすさ」
407,408が言ってるのは「クラスの提供者側のわかりやすさ」
ごっちゃにするな

410:デフォルトの名無しさん
07/02/03 21:47:18
そういう物言いはその二つが一致しない場合があるのでなければ意味がない。
で、実際のところどうよ?w
考えるまでもないな。

411:デフォルトの名無しさん
07/02/03 21:48:58
っていうか、仮に一致しない場合があるとして、ライブラリの作者が
ユーザビリティより自分たちにとってのわかりやすさを優先してどうするw

412:デフォルトの名無しさん
07/02/03 23:35:33
隠蔽するか公開するかは、わかりやすいかどうかじゃなくて必要か不要かだろ。
だいたい「わかりやすさ」って何よ。

413:デフォルトの名無しさん
07/02/04 00:11:59
もういいからお前ら消えろ。
けっきょくVBスレらしい間抜けなレスにしやがって

414:デフォルトの名無しさん
07/02/04 00:13:31
正規表現のパターンを複数指定する事は可能でしょうか。

415:デフォルトの名無しさん
07/02/04 00:24:49
>>399
昨日は情報どうもありがとうございました。
教えて頂いたサイトからサンプルをダウンロードしてテストしてみましたところ、
やはり下層のコントロールは見える状態にはなりませんでした。
このSetStyleの方法はすでに試みていたものではあったのですが、
やはり結果は同じものでした。

やはり .NETではVB6でのラベルの透明化と同等の機能はじつげんできない
ように思います。

Regionを多重に切るか、ドーナツのように穴あきにするかすれば、完全に
透けて見える状態になるわけすが、それですとその穴から下のコントロールが
アクセスできてしまうので、透明化ということにはならず、やはり無理、と
思われました。

もしできるという情報がどこかにありましたら、また教えてください。


416:デフォルトの名無しさん
07/02/04 00:30:47
>>415
いったい何が作りたいのか言っちゃえば?
透けて見えるコントロールにアクセスできたら困るってのはUIとしてどうなのかと…

VB6のラベルコントロールはフォームに書いてるだけだし。


417:デフォルトの名無しさん
07/02/04 01:04:50
>>415
頭悪いにもほどがあると思うよ。
背景透明にできたんだから、あとはOnPaintでクライアント領域に
描画するだろ。

418:デフォルトの名無しさん
07/02/04 01:10:41
まぁそう言うな

419:デフォルトの名無しさん
07/02/04 01:40:50
ランダムに文字列を表示させたいのですがどうすればいいでしょうか。

420:デフォルトの名無しさん
07/02/04 01:53:40
>>419
もうちょっと詳しく説明しろよホントに・・・

Dim message As String() = {"もうちょっと", "詳しく", "説明しろよ", "ホントに・・・"}
Dim rand As Random = New Random(DateTime.Now.Millisecond)
Label1.Text = message(rand.Next(4))


421:デフォルトの名無しさん
07/02/04 02:48:09
>>414
意味が分からん
取りあえず二回 Match させりゃ良いんじゃね 並列か直列か知らんが

422:デフォルトの名無しさん
07/02/04 02:49:35
なんで具体的に説明しないのかね?

423:デフォルトの名無しさん
07/02/04 03:00:29
初心者スレが機能してないから流れてきてんだろ・・・

424:デフォルトの名無しさん
07/02/05 12:11:47
以前はデバッグ時に一時停止してのコード変更が可能だったのに、
どこかのタイミングからか、コードウインドウのタブ耳にロックのマークが現われ、
デバッグ実行中の一時停止でコード変更ができない状態になってしまいました。

これを解除してまたコード変更可能な状態にしたいのですが、
方法が見つけられずにいます。すみませんがこれについて教えてください。

425:デフォルトの名無しさん
07/02/05 12:35:26
デフォルトのコンストラクタで作成するDictionaryのキーに
EnumとかIntegerって使える?

やっぱり面倒でもIEqualityComparer実装したクラスを別に作らないと駄目なんだろうか?
今日午前中MSDNその他いろいろ読んでみたがどうもよくわからない。

Dictionaryのこの辺の話題を掘り下げてるところってどこかないかなあ。。

426:デフォルトの名無しさん
07/02/05 13:18:32
普通に使えるでしょ。

Dim foo As Dictionary(Of Integer, Object) = New Dictionary(Of Integer, Object)

427:デフォルトの名無しさん
07/02/05 15:13:54
自分が/t:winexeでコンパイルされてるかどうかの判別はどうすればできますか?

428:デフォルトの名無しさん
07/02/05 18:42:51
>>426
いや、そういう意味じゃなくてw
当然使っても安全かどうかって意味ですよ。

IEqualityComparerを渡さないコンストラクタを使った場合、
DictionaryはKeyオブジェクトのGetHashCodeを間接的に呼び出すはずだけど、
MSDNライブラリによれば値型のGetHashCodeで得られる値はハッシュとして機能しないとあるから。

429:デフォルトの名無しさん
07/02/05 19:01:03
Dictionary は、キーが同じであるかどうかを確認するための等値比較の実装を必要とします。
comparer パラメータを受け付けるコンストラクタを使用して、
IEqualityComparer ジェネリック インターフェイスの実装を指定できます。
実装を指定しない場合は、既定のジェネリック等値比較演算子である EqualityComparer.Default が使用されます。
型 TKey が System.IEquatable ジェネリック インターフェイスを実装している場合は、
既定の等値比較演算子でその実装が使用されます。

<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Structure Int32
Implements IComparable, IFormattable, IConvertible, IComparable(Of Integer), _
IEquatable(Of Integer)

430:デフォルトの名無しさん
07/02/05 19:08:05
等値検査の話じゃなくて、ハッシュの話をしてるんですが。。。

431:デフォルトの名無しさん
07/02/05 19:21:06
>>430
> IEqualityComparerを渡さないコンストラクタを使った場合、
> DictionaryはKeyオブジェクトのGetHashCodeを間接的に呼び出すはずだけど、
これは本当か?

432:デフォルトの名無しさん
07/02/05 19:22:34
>>431
確証はないんですが、MSDNライブラリのEqualityComparer.Default のくだりに
それっぽいことが書いてありますよ。

433:デフォルトの名無しさん
07/02/05 19:23:32
というか、仮にもハッシュテーブルなんだから何らかの形でハッシュは使うでしょう

434:デフォルトの名無しさん
07/02/05 20:55:55
>>430
当然、コリジョン対策はしてある。
Reflectorでソース追ってみなよ。

435:デフォルトの名無しさん
07/02/05 20:58:06
>>428
ハッシュが衝突して安全でないってどんなしょぼい実装や

436:425
07/02/05 21:07:46
>>434-435
生半可な知識しかないんで偉そうなことはいえないんですが、
なんか勘違いしてません?

「コリジョン対策」というのは、違うキーに対して同じハッシュが
生成されることへの対策でしょう。

等価のキーのハッシュが異なる場合はこの限りではないはず。

437:デフォルトの名無しさん
07/02/05 21:08:01
>>431
それは本当。

Int32はIEquatable<Int32>を実装してるから、
EqualityComparer<Int32>.DefaultはGenericEqualityComparer<Int32>のインスタンスを返す。
で、GenericEqualityComparer<Int32>.GetHashCode(Int32)は、Int32.GetHashCode()を呼んでる。

ハッシュが衝突した場合、IEqualityComparer<T>.Equals(T,T)が呼ばれるが、
GenericEqualityComparer<Int32>.Equals(Int32,Int32)の実装では、Int32.Equals(Int32)が使われている

438:デフォルトの名無しさん
07/02/05 21:14:45
>>436
等価なオブジェクトは等しいハッシュを生成しなければならないよ。

参照型であれば、Object.GetHashCodeに丸投げすることができるけど、
値型の場合はその条件を満足するようにGetHashCodeを実装しなければならない。

URLリンク(msdn2.microsoft.com)(VS.80).aspx

439:デフォルトの名無しさん
07/02/05 21:16:16
>>436
同じ入力値に対して異なる結果がでるのはハッシュ言わんがな

440:425
07/02/05 21:24:18
>>438
つまり、それを総合するとEnumやIntegerはそのままではキーとして使えない、
という結論なんでしょうかやっぱり?

441:デフォルトの名無しさん
07/02/05 21:27:35
>>440
なんでそうなるかなあ。。。

少なくともmscorlibやその他の標準ライブラリで定義されている構造体はGetHashCode()を適切にオーバーライドしてあるよ。

442:デフォルトの名無しさん
07/02/05 21:29:17
>>440
心配なら逆コンパイルして確かめてみればいいんじゃないの

443:425
07/02/05 21:33:58
>>441
そうなんですか。

>>442
いやそこまでの能力ないヘッポコなもんでここで質問させてもらってる訳でして。。

444:デフォルトの名無しさん
07/02/05 21:37:03
ファイルを読み込む際、文字エンコードを自動判別する方法はありますでしょうか

445:デフォルトの名無しさん
07/02/05 21:39:38
GoogleMapの座標を取り込みたいのですが、どこかにいいサンプルありませんか?


446:デフォルトの名無しさん
07/02/05 21:40:35
>>444
mlang.dll, IMultiLanguage2, DetectInputCodepageあたりでググってみ。

447:デフォルトの名無しさん
07/02/05 21:57:24
>>446
ありがとうございました

448:デフォルトの名無しさん
07/02/06 00:34:51
>>444
adode.streamのcharset="autodetect"や"_autodetect"なんてのも

>>427のほうもよろしくお願いします
exeヘッダを読まずにできませんか?

449:デフォルトの名無しさん
07/02/06 03:02:16
>派生型の GetHashCode メソッドを呼び出した場合、戻り値はハッシュ テーブル内のキーとしての使用には適していない可能性があります。
派 生 型 の
ちゃんと嫁。
ここでいう派生型ってのはつまり自分で作成した値型ってこと。
自作じゃないやつはMSDN見ればちゃんと適切に実装されていることが分かる。
ついでに、適切でないってのは、同値条件が不明だからってだけで、
同じビットイメージなら同じ結果になったはず。


450:デフォルトの名無しさん
07/02/06 08:22:32
>ここでいう派生型ってのはつまり自分で作成した値型ってこと。
おいおいw
それは日本語の読解としておかしいよ。
すくなくともこの文章にそんな含意はないでしょう。

もちろん他にそういう意味の記述があれば話は別だが、
調べた限り見当たらないんだよね。
だから>>425のとおり質問させてもらったわけで。

>>443では一応納得したふりをしたけど、本当はそんな確証はどこにもないと思う。

451:デフォルトの名無しさん
07/02/06 10:17:53
ああ、言い間違い。
組み込みじゃない型のこと。

452:デフォルトの名無しさん
07/02/06 10:35:21
派生型では適しないの意味を理解してないだろ。
既定の実装では全メンバが反映されるんだったような気がする。
もちろん派生型でこれが適しない可能性はある。
が、組み込み型では正しく動作するようになってる。
列挙は整数型と同じだから問題なし。

453:デフォルトの名無しさん
07/02/06 10:56:01
>>450
つまり組み込み型でも値型のハッシュは使えないとお前は言いたいのか?
んなわけあるかぼけ

454:デフォルトの名無しさん
07/02/06 11:18:28
別function内で起きたエラーもtry~catch文で拾えるんでしょうか?
どこら辺探れば理解できるかヒントでいいのでお願いします

sub main
try
if func_test then
label1.text = "true"
else
label1.text = "false"
end if
catch
label1.text = "exception error"
end try
end sub

function func_test() as boolean
~~~~~
ここで例外エラー
~~~~~
return true
end function

455:デフォルトの名無しさん
07/02/06 11:54:39
>>454
別Functionから例外投げればいいんじゃない?

456:454
07/02/06 12:21:48
>>455
ありがとうございます
出来ればmain内でエラーを拾いたいのです

今は拾えない前提で、func_testの部分を関数化せず
if func_test then の部分が出て来る度にtry~catchで囲ってました。

457:デフォルトの名無しさん
07/02/06 12:25:58
>>452
派生型に「組み込み型は除く」なんて含意があるわけないでしょw
単に「~から派生した型」、「~を継承した型」という以上の意味があるはずがない。

ちなみに>>449の説明はObject型の説明でしょう。
.NETでは全ての型はObject型からの…まああとは言うまでもないね。

458:デフォルトの名無しさん
07/02/06 12:26:44
func_test内でtry~catchしてなかったら外側で例外拾えると思ってた

459:デフォルトの名無しさん
07/02/06 12:45:34
>>457
お前思い付きで物言ってんだろ、話にならん。
objectじゃなくてValueTypeの説明の話だし、
Int32とかそれぞれの組み込み型のメソッドの説明に載ってる。
つまりきちんとオーバーライドされてる。
ちゃんと読めや。


460:デフォルトの名無しさん
07/02/06 12:52:18
もうお前ら消えていいよ

461:427
07/02/06 14:40:33
同じソースで、/t:exeならConsole.Writeで、
/t:winexeならMsgBoxかMessageBox.Showで出力しようとしても、
Console.Writeが/t:winexeでNOPになるだけで判別できないのです。
なにか方法ありませんか?

462:デフォルトの名無しさん
07/02/06 15:31:47
>>450
お前ArrayListが単純な配列とか有り得ない、
可変長配列は連結リストとかで作るのが常識みたいなこと
ほざいてたやつじゃねーか?w


463:デフォルトの名無しさん
07/02/06 16:11:44
馴れ合いなら、どこかよそでやれよ。

464:デフォルトの名無しさん
07/02/06 16:26:37
for each文で、配列の何番目の要素なのか簡単に取得する方法ってありますか?

465:デフォルトの名無しさん
07/02/06 16:27:32
ない

466:デフォルトの名無しさん
07/02/06 16:28:49
馴れ合いってそういう意味だっけか?

467:デフォルトの名無しさん
07/02/06 16:31:41
>>465
ありがとう

468:デフォルトの名無しさん
07/02/06 18:51:23
>>459
なるほど、ValueTypeの説明には明示的ではないにしろ、
キーにつかっても安全と取れる記述があるね。
>>449がはっきり「ValueTypeの説明にこうある」と書いてくれれば
いらん「誤解」は避けられたのに。

まあ、一応レスはありがとう。
でも君ごときにお前呼ばわりされるいわれはないよ。

469:デフォルトの名無しさん
07/02/06 19:10:14
2ちゃんでは二人称はお前がデフォだろうが

470:デフォルトの名無しさん
07/02/06 19:11:48
放っておけ

471:デフォルトの名無しさん
07/02/06 19:51:28
>>468
MSDNのメソッドの説明部分にもろ書かれてることを、
どこにも載ってないと言ってみたり、
最初からValueTypeの話で始まってるのに
勝手にobjectの説明だと決めつけたり
まあおめでたいやつだ。
誤解する方がおかしい。


472:デフォルトの名無しさん
07/02/06 19:55:31
ついでに言っとくがobjectのハッシュ実装の方こそ、
既定のハッシュ実装としては使えない。
これは確か明記されてなかったか?


473:デフォルトの名無しさん
07/02/06 20:30:29
>MSDNのメソッドの説明部分にもろ書かれてることを
ごめんこれ具体的にどこのこと言ってるの?
真面目にわからないから教えて欲しい

474:デフォルトの名無しさん
07/02/06 21:27:44
そっちが期待してる「書かれてる内容」とは違うと主張するのかもしれんが
Int32.GetHashCodeとかとにかく
組み込み型のGetHashCodeはみんなドキュメントあるだろ。


475:デフォルトの名無しさん
07/02/06 21:30:18
それとも具体的にハッシュとして使えると明記されてないから
こんなのは信用できないってか?

476:デフォルトの名無しさん
07/02/06 21:52:09
>>475
えーっと、それはプログラマとして当然の姿勢だと思いますが。。。

477:デフォルトの名無しさん
07/02/06 22:00:52
だったら何も使うなよ。
常識のレベルってもんがあるだろうが。
あの説明で具体的に何を疑うわけ?

478:デフォルトの名無しさん
07/02/06 22:04:07
つまりCLR組み込みの例えば整数型は
わざわざハッシュメソッドをオーバーライドした上で
しかもドキュメントにはこのインスタンスのハッシュコードを返すと書きながら
それを正しく実装していないと疑ってるわけだな?



479:デフォルトの名無しさん
07/02/06 22:06:00
やっぱりArrayListの列挙が順番通りなんて
とても信用できない、有り得ない君か?

480:デフォルトの名無しさん
07/02/06 22:10:42
初歩的な質問ですみません。
勉強がてらソフトキーボードを作っています。
例えばフォームのボタンをクリックしたら、他のアプリのテキストボックスに
文字などを表示するには、どうしたらいいんでしょうか?

481:デフォルトの名無しさん
07/02/06 22:12:49
そんなに熱くなる理由がさっぱりわからん。
不確かなことに依拠しない、なんてことはエンジニアだけでなく、
あらゆる仕事の基本だと思いますが。

482:デフォルトの名無しさん
07/02/06 22:14:38
Vista挿入した香具師居てるンですかどうなんですかブビの運命やいかに

483:デフォルトの名無しさん
07/02/06 22:29:05
デタラメばっかり言って人の言うことを全く信用しないからだ。
何のためにここに書き込んだわけ?
お前は誰が何を言っても信用しないのに

484:デフォルトの名無しさん
07/02/06 22:31:50
お前は疑うところがずれてんだよ。

485:デフォルトの名無しさん
07/02/06 22:34:06
>>480
何が分からないか具体的に

486:デフォルトの名無しさん
07/02/06 22:35:54
>>483
やっぱりそういう受け取り方をする人なんだね。
今日日増えたなこういうパーソナリティの人間。。

冷静に。
「信用できない」、「不確か」という言葉は君という人格に向けられた物じゃない。
君を信用できないとか誰が信用できないとかそういう問題じゃないんだよ。

大人ならそれぐらいわかるでしょ。

487:デフォルトの名無しさん
07/02/06 22:45:21
じゃあMSDNでいいよ
書かれてると言っても
書かれてることを読んでも
信用できないんだろ。
ただ、ここで言われたんじゃなく、自分で見て読んだなら
そこまで疑った反応するわけないんじゃないのか?
本当にMSDNに書かれてる内容をそこまで疑ってしか見られないんじゃ
とても開発なんて出来ないよ。

俺には何が疑わしいのか理解できないからな。


488:デフォルトの名無しさん
07/02/06 22:49:37
まあ、人が作ったものが信用できないなら自分で作ればいいだけだが
それで仕事になるかどうかは知らんが

489:デフォルトの名無しさん
07/02/06 22:50:38
わるいがわざわざ2チャンで冷静に見えるように書き込む必要を感じない。
携帯で丁寧な文は面倒なんだよ

あと内容で反論出来なくなたっらメンタリティとか、どうでもいいんだよ。
どこが疑わしいのかはっきり書け。

っていったらプログラマとして当然か、
悪いが全然当然じゃない。
よっぽどうがった見方しないと疑う余地がない。


490:480
07/02/06 22:52:25
>>485
レスありがとうございます。
フォームのボタンをクリックするとフォーム内の
仮に置いたテキストボックスに文字を表示する事はできました。
わからないのは、フォームではないアプリの入力欄に打ち込む方法です。
どんな設定やメソッド?を使えばいいのか見当がつかない状態です。

491:デフォルトの名無しさん
07/02/06 22:52:27
うがった見方ってのは、MSがわざわざ嫌がらせで
罠をはった実装を行った、くらいのレベルだ。

492:デフォルトの名無しさん
07/02/07 00:08:08
ちなみにInt32のGetHashCodeの実装は
自分自身の値を返す、だ。



493:デフォルトの名無しさん
07/02/07 00:23:03
ぶも。
最近@ITのVB記事がひどいでつ。


494:デフォルトの名無しさん
07/02/07 00:40:41
使用者のレベルに合わせてるだけでつ。

495:デフォルトの名無しさん
07/02/07 01:36:57
>>490
SendMessageでWM_KEYDOWN/WM_KEYUPメッセージを送るといい

496:デフォルトの名無しさん
07/02/07 10:12:08
配列の記事はまたひどいぶぶんがあるな。
なんかVBプログラマって感じだ。

497:デフォルトの名無しさん
07/02/07 15:05:35
質問です。

VB.Net2003でクラスライブラリを作成しています。

自作でクラスライブラリを作成することはできています。
できたDLLを別のVB.Netプロジェクトから参照して使用するのですが、
プログラミング時にインテリセンスで自作DLLの関数の説明を表示させるには
どのようにすればいいでしょうか?

System.ComponentModel の Description で自作プロパティを修飾したら
プロパティグリッドに説明が表示されますが、
自作関数に Description を使用してもインテリセンスには表示されません。
何を使って修飾すべきなのでしょうか?

498:デフォルトの名無しさん
07/02/07 15:20:12
ドキュメントコメント
xmlのやつ

499:デフォルトの名無しさん
07/02/07 15:21:51
ってVBか。
アドイン使わないと出来なかったな。
dll参照なら確かアドインでxml作れば出来たと思う。

500:497
07/02/07 15:44:31
ドキュメントコメントでググってみました。
VB2003では標準ではできないっぽいですね。

Imports System.ComponentModel
<Description("ほげ")> _
Public Function Hoge() As Stirng
  'なんたらかんたら~

みたいにお手軽にできるものならやろうと思っていたんですけど。
VBCommenterとかのアドインがあるみたいですね。

まぁそのうちにVS2005に移行する予定なので今は我慢しておきます。

情報提供ありがとうございました。

501:480
07/02/07 17:14:26
>>495
ありがとうございます。調べて試してみます。

502:デフォルトの名無しさん
07/02/07 22:59:53
色々調べたのですが判らず、恐縮ですが教えていただけるとありがたいです。

Excel2003 VBAでは、
Application.OnTime TimeValue("17:00:00"), "my_Procedure"
のように、簡単に、指定した時刻に処理を行うことが出来るのですが、

VB.NETでは、
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

'処理

End Sub
のように、指定時刻から現在時刻を引き、それをTimerのインターバルに設定して、指定時刻に処理を行う
方法が良いのでしょうか?

503:デフォルトの名無しさん
07/02/07 23:02:30
0.5秒ごとに指定時刻と現在時刻を比べるといい
なあに大した負荷ではない
むしろその方が誤差は少ないじゃないか

504:デフォルトの名無しさん
07/02/07 23:36:44
>>503
なるほど。力業の感じを受けましたが、VBAとは違ってそのような処理は軽いんですね。ありがとうございました。

505:かのん ◆Ry3ufnjL32
07/02/08 00:09:26
VB2005のRichtextにおいて、マウスカーソルはRichtextboxがもともと持っているにもかかわらず、
フォームエディタで設定されたCursorで上書きされてしまいます。そのため、画像のサイズ変更ハンドル
などが表示されません。

フォームエディタで設定されたCursorを表示しないようにして、もともとRichtextboxコントロールが持っている
マウスポインタを表示させたままにすることはできますでしょうか(いろいろやってみたのですが、
カーソルが点滅して使い物になりませんでした。)。よろしくご享受ください。

506:デフォルトの名無しさん
07/02/08 13:52:44
アップロードするプログラムを作るためにソケットを使おうと思うんですが
Private sc As New Sockets.Socket( _
Net.Sockets.AddressFamily.InterNetwork, _
Net.Sockets.SocketType.Stream, _
Net.Sockets.ProtocolType.Tcp)

を数回使ったりするプログラム方法ってありますか?
打開策が見いだせなくて死んでますOTL

507:デフォルトの名無しさん
07/02/08 21:22:38
式のウオッチで、式の値が変化したときに停止(ブレーク)する、の設定は
どのようにするのでしたっけ?前にやったような気がするんですが、
またやろうとしたらメニューのどこを見てもそれらしいのがなく、Help見ても
出てきませんです。困りました。。。

508:デフォルトの名無しさん
07/02/08 22:29:12
>>506
数回使うという意味が分からん

509:デフォルトの名無しさん
07/02/09 02:09:48
VB2005でlzhファイルを解凍したいのですが、うまくいかなくて弱っています・・・
どう修正したら良いのでしょうか?

Public Class Form1

Public Declare Function Unlha Lib "unlha32" _
(ByVal hWnd As Long, ByVal szCmdLine As String, _
ByVal szOutput As String, ByVal dwSize As Long) As Long

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

Dim Lzhfilename As String
Dim Outdir As String
Dim Meltopt As String
Dim result As Long '戻り値 (成功:0 失敗:エラーコード)

'ディレクトリ指定 & 解凍オプション
Lzhfilename = Chr(34) & "C:\Documents and Settings\My Documents\My eBooks\Book.lzh" & Chr(34)
Outdir = Chr(34) & "C:\Documents and Settings\My Documents\My eBooks\" & Chr(34)
Meltopt = "e " & Lzhfilename & " " & Outdir
result = Unlha(Me.hWnd,Meltopt, "", 0)
If (result <> 0) Then MsgBox "Error/Warning : 0x" & Hex(result)

End Sub

End Class

510:デフォルトの名無しさん
07/02/09 02:37:34
>>509
URLリンク(dobon.net)

511:デフォルトの名無しさん
07/02/09 09:57:20
>>510
できませんでした。

512:デフォルトの名無しさん
07/02/09 12:06:40
.NETで既存のExcelファイルを開きマクロを操作(実行)するには
どう記述したら良いのでしょうか?

513:デフォルトの名無しさん
07/02/09 12:26:28
VB.NETでExcelVBAのマクロを動かす方法は??
URLリンク(homepage1.nifty.com)
URLリンク(hanatyan.sakura.ne.jp)

MicroSoft Excelを起動(既存のファイルを開く)
URLリンク(www.bcap.co.jp)

Visual Basic .NET からオートメーションを使用して Office マクロを実行する方法
URLリンク(support.microsoft.com)

514:デフォルトの名無しさん
07/02/09 12:31:41
>>508

複数のファイルをアップロードしようと思うんです。
今はソケットを大量に作ってますOTL

515:デフォルトの名無しさん
07/02/09 14:19:10
>>512
.NETでExcelなどのCOMを扱うのは参照の解放漏れ対策で苦労するので、
VB6やWSHでやったほうが楽なのでは?

516:デフォルトの名無しさん
07/02/09 16:40:11
ちょっとこういうことできるか聞きたいんだが

【開発環境】VB.NET2003

あるラベル(長さは文字数が違っても一列で表示したい)を動的に縦に並べて作成する。
その横にテキストボックス(サイズは固定)を配置

で、ここでテキストボックスのLeftを揃えたい
ただし、ラベルの文字の長さは変わる

こういうことは出来るんだろうか・・・
結果的に↓みたいな感じにしたい

LABEL1AAA | TEXTBOX1
LABEL1BB | TEXTBOX1
LABEL1C  | TEXTBOX1

ずれてたらすまんが | が縦に並ぶようなイメージ
もし、こんなので出来るよって人いたらお願いします。

517:デフォルトの名無しさん
07/02/09 16:45:38
一番長いラベルが収まる幅を確保すればいいだけではないの?
Measurestringとか。

518:デフォルトの名無しさん
07/02/09 17:01:55
>>517
まさにその通りだったんですが
Graphics名前空間にこんな便利なのがあるとは・・・

これで計算した大きさにラベル合わせていけば問題なくいけそうです!!!
ありがとうございました!

519:デフォルトの名無しさん
07/02/09 18:41:34
んなことわざわざしなくてもラベルのサイズってAutoにできたような。。。

520:デフォルトの名無しさん
07/02/09 18:57:07
質問よく読めよ・・・

521:デフォルトの名無しさん
07/02/09 20:28:19
ちょっと教えてください

ユーザーコントロールを作成しました。

このコントロールは System.Windows.Forms.UserControl を継承していますが
ListViewのように常時スクロールバーを表示する機能は標準で実装されていないようです。

そこで、ListViewのように常時このコントロールにスクロールバーを表示させたいのです。
(ただし、スクロールできない場合は、グレーで操作不能)
こういう実装は可能なのでしょうか?

ググってみたのですが、どうもこういう質問は見当たらなかったもので・・・

522:デフォルトの名無しさん
07/02/09 20:33:14
>>514
一気にパケット送って一気に元に戻しちゃぁいけないの?

523:デフォルトの名無しさん
07/02/09 21:07:53
>>521
HorizontalScroll, VerticalScrollはどう?

524:デフォルトの名無しさん
07/02/09 21:14:24
>>523
折角お答えいただいたのに申し訳ない
FrameWork2.0ならそれでいけるのですが、
現在の環境はFrameWork1.1 SP1(細かく忘れましたがとにかく最新です。)
になっているんです。

確認してみたのですが見当たらなかったので・・・

環境書き忘れごめんなさい。

525:デフォルトの名無しさん
07/02/09 21:19:10
>>524
あーそれじゃあ

VScroll, HSrollってprotectedなプロパティがあったと思うから、
オーバーライドしてやればどうかな

526:デフォルトの名無しさん
07/02/09 21:21:29
あっと、
オーバーライドじゃなくて、普通に設定するだけでいい。
AutoScrollをfalseにするのを忘れずに。

527:デフォルトの名無しさん
07/02/09 21:51:39
>>525>>526
度々のレス、ホントありがとうございます。

んっと どうもそのプロパティは基本的に表示可能かどうかを示す値なような・・・
というわけでBooleanなので設定試してみましたがムリでした。(AutoScrollはFalse)

最初の説明を見直してみてちょっと修正したいと思ったんですが

ListBoxコントロールのScrollAlwaysVisibleプロパティ

ズバリコレと同じ事をユーザーコントロールで実装したいと思っていただければ
自分でそのあたり実装しなくてはいけないんでしょうが何をベースにしていいのやらがまったく・・・・

528:デフォルトの名無しさん
07/02/09 22:03:21
>>527
VScrollBar コントロールをそのUserControlに張り付けりゃいいんじゃねーの?

529:デフォルトの名無しさん
07/02/09 22:16:18
>>527
となると、SetScrollInfoをP/Invokeかなあ
他の処理も自前でやらないといけなくなりそうだが

530:デフォルトの名無しさん
07/02/10 00:04:52
貴重な意見ありがとうございます。

>>528
そうなると自前で書く部分が相当増えそうなきがして。。。
コントロールの移動とか(;´∀`)

>>529
ちょっとそれでググたりしてやってみることにします。
実際、コントロールの機能にないものを実装することがなかったので・・・
かなりきついとは思いますが(;´∀`)


531:デフォルトの名無しさん
07/02/10 00:33:30
親亀の上に子ガメをのせて孫亀乗せればいいじゃないか

532:デフォルトの名無しさん
07/02/10 01:15:31
とりあえずやってみました。

>>528の方法をまず試してみた
中にあるコントロールのサイズが大きいときだけEnable=Trueにして
期待通りの動作はしたけれど問題はVisualStyleですね。

次は>>529のを次試してみることにしよう



533:デフォルトの名無しさん
07/02/11 19:09:57
誰か>>507教えてください。よろしく

534:デフォルトの名無しさん
07/02/11 22:56:23
質問です

他の方がC#で作ったというDLLをもらってきて、
自分のVB2005で参照追加して使っているのですが、
できたプログラムをIDE上のデバッグモードで走らせるときは、期待通りの結果が得られますが、
ビルドしてできたEXEを実行しても結果がデバッグモードの時と違ってしまいます。

具体的にはDLLに含まれるある関数の戻り値が、ビルドしたEXEファイルでは必ず0になってしまっているようです。
他に特にエラーを吐くわけでもなく、DLL内のクラスのインスタンスを作ったり、関数を呼ぶこと自体はできているようです。

このようにデバッグ時とビルド後で結果が違ってしまう場合の原因ってどんなことが考えられるでしょうか?

ちなみに、環境はWinXP Pro(SP2) + VB2005 ExpressEditionです

535:デフォルトの名無しさん
07/02/11 23:13:08
>>533
2003になったとき、しばらく探してあきらめたような覚えがある。
ぶっちゃけ無くなっちゃったと思ってる。

536:デフォルトの名無しさん
07/02/11 23:21:06
VB6とかいうインタプリタの時代の機能じゃねえの?

537:デフォルトの名無しさん
07/02/11 23:25:29
>>534
関数?

作者に聞くしかないんじゃね?
// とか言いつつ実は漏れだったらどうしようw

538:534
07/02/11 23:48:34
>>537
>関数?
すみません、書き方が悪かったです。
正確にはDLLに含まれるクラスの中のメソッドです。

「A.DLL」のなかに 「B」というクラスがあって、そのクラス内にFunction C() As Double というメソッドがあったとして、
Dim Test As A.B = New A.B
MsgBox(Test.C().Tostring)
というコードを実行したとき、デバッグモードでは0でないある数値が表示されるのに、ビルドした後だと必ず0が表示されてしまうのです。

やっぱり作者に聞くしかないですかね・・・

539:デフォルトの名無しさん
07/02/12 01:18:45
Form3_Loadで、もしForm1からForm3へ移動してきた場合は真
Form2からForm3へ移動してきた場合は偽を返す
・・・みたいなこと出来ますか?
もし出来るのでしたらヒントかソース教えていただけると嬉しい。

540:デフォルトの名無しさん
07/02/12 01:25:58
>>538
デバッグ時とリリース時で挙動が違うときは最適化を疑う

>>539
「移動してきた」の意味が分からん。
直前にアクティブだったってこと?
それとも各フォームからShowされたってこと?

541:539
07/02/12 01:30:50
フォーム1,2でこのソースを使って3へ移動しています
If frm3 Is Nothing Then
frm3 = New Form3
End If
frm3.Owner() = Me
Me.Hide()
frm3.ShowDialog()
わかりにくくてすみません

542:デフォルトの名無しさん
07/02/12 01:36:16
>frm3.Owner() = Me
ってしてるんだったらForm3_LoadでOwnerの型を調べりゃいいじゃん


543:デフォルトの名無しさん
07/02/12 01:51:37
>>538
ConditionalAttributeが怪しいといってみる

544:539
07/02/12 02:11:40
レスありがとうございます!
Ownerの型ってどうやって調べるんでしょうか?
ぐぐっても今一ピンとくるものがなく困っています。

545:デフォルトの名無しさん
07/02/12 06:30:38
>>539
if frm3.Owner = frm1 then これでだめか?


546:デフォルトの名無しさん
07/02/12 10:32:52
しかし、ダメな奴に限って意味なくやたらとウィンドウが遷移するような
UI作りたがるのはどうしてなんだろうね。

そんでもって「別フォームの変数にアクセスするには~」とか言ってやんの

547:デフォルトの名無しさん
07/02/12 15:25:52
ちょっとぼやいてもいい??

しかしなんでこうHelp役に多端の金?

ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.ja/CPref17/html/M_System_Windows_Forms_ToolStripItemCollection_CopyTo_1_1f033e27.htm

このCopyToすると、元のメニューのコレクションの中身が全部なくなるって
不具合なんで記載しておかないの金?w

548:デフォルトの名無しさん
07/02/12 15:27:36
CopyってCloneつくるんじゃなくて、配列にコピーしたら元のは消しますって
かいとかないのはなぜ?w もしコピーじゃなくて移動ならMoveとか名前変えないと
絶対ウソだろが。

549:デフォルトの名無しさん
07/02/12 15:58:07
アンタの環境特有のURL貼られてもねえw


550:デフォルトの名無しさん
07/02/12 16:07:51
>>549
すまそです
URLリンク(msdn2.microsoft.com)(VS.80).aspx

それにしても、いまいちわからんのだが
ToolStripItem
を New で生成しようとすると New は使えんと言ってくるが、Help 見ると
URLリンク(msdn2.microsoft.com)(VS.80).aspx
あるようで、どうもわかりまへん。誰かおせーてちょー
なんかの設定なのか


551:デフォルトの名無しさん
07/02/12 16:13:57
ライブラリどころか言語の基本的なところが理解できてないだけ
そのコンストラクタは Protected だし、そもそも ToolStripItem は MustInherit だ

552:デフォルトの名無しさん
07/02/12 16:14:26
protectedって書いてあるじゃんw
意味わからないなら真面目に初歩から勉強したほうがいいと思うよ

553:デフォルトの名無しさん
07/02/12 16:18:40
>>550
ついでに言うと実はコンテキストメニューのMergeがしたいのだが、どうも見当たらない
(従来のMenuだとあるんだけどね)んで、しかたなくいきなりInsertとかAddしたんだが、
やっぱり元のメニューからは中身が消えてしまった、んで、んじゃあCopyToとかが
あったんでそれもやってみたんだが、やぱ-り元が消えて移ってしまうんだよね。

昔のMenuはマージしても別に元は消えなかったのに

554:デフォルトの名無しさん
07/02/12 16:23:00
>>550-551
なるほど、Newが使えるのは派生クラスだけだと。確かにMustInheritと出てはきてますたし
後段ヘルプのprotectedにも目が行かなかった、すまそですた。

しかしそうなると、ContexrMenuの場合、やっぱりコントロール貼ってGUIでいちいち全部手で
書き込むしかないんですかね

555:デフォルトの名無しさん
07/02/12 16:23:59
>>554訂正 ContexrMenuの場合>ContextMenuの場合

556:デフォルトの名無しさん
07/02/12 16:51:30
で、例えば

i0 = 2
For j = 0 To ContextMenuStrip2.Items.Count - 1
With ContextMenuStrip2.Items(j)

Dim newMItem As ToolStripMenuItem = New ToolStripMenuItem(.Text)

i = i0 + j
ContextMenuStrip1.Items.Insert(i, newMItem)
End With
Next

こんなことをすれば一応コピーの形はできるんだけど、WithEventで宣言してないから
HandlerはAddHandlerでこれもいちいち書かなくちゃいけないし、結局Mergeメソッドは
ないってことで、なんだか下位互換性のためにMainMenuもContextMenuも残してありますって
のはどうも言い訳っぽい気がするんだよね、なんでMerggeなくしたんだろ??

557:デフォルトの名無しさん
07/02/12 17:09:27
>>556
だからくだらないことでクダ巻いてる時間に基礎を勉強した方がいいよ。
とりあえず文句いうのはせめて参照型の意味がわかるようになってからにしろって
あんた、かなり恥ずかしい発言してると思うよw

558:デフォルトの名無しさん
07/02/12 17:33:01
>>557
勉強は並行してやりますが、、それはおいておいて、下位のはずのMainMenuやContextMenuで
できてたMenuMergeを、上位のはずのMenuStripやContextMenuStripでなくなってしまった
のはなんでだろね?

上位なら上位らしくできるというべきじゃないのかな

559:デフォルトの名無しさん
07/02/12 17:33:46
できないんならできないでいいけど、だったら上位というのは問題だよな

560:デフォルトの名無しさん
07/02/12 17:37:28
>>557
それと、参照型の話は
Public Sub CopyTo ( _
array As ToolStripItem(), _
index As Integer )
がByValになってないってことかもしれんけど、それがどうしたって感じもする
違ってたら言ってほしいけど、世の中でCopyのコピペって、Cut&Pasteとは
異なる機能を言うよな、このCopyToの機能は明らかに CutAndPasteToだぜ?

これのがはずかしいんじゃね?w


561:デフォルトの名無しさん
07/02/12 17:39:55
もし仮にCopyToが参照型だからって言って、Cutされていい理由なんかないだろ?

参照型だというのなら、そしてCopyなんだというのなら、せめて、同一の実体を
使いませる意味で「割り当てる」って意味にしなけりゃおかしいと思うよ。それなら
消えるはずはないし。

562:デフォルトの名無しさん
07/02/12 17:40:54
あくまでもCutの意味なんだというのなら、明らかにCopyToの命名はおかしすぎるよ。

563:デフォルトの名無しさん
07/02/12 17:41:17
ろくすっぽ調べもせずにぐちゃぐちゃ言うのってすごく恥ずかしいよなw

ToolStripManager.Merge

564:563
07/02/12 17:49:02
それにCopyToしただけではコレクションの中身は消えない。

まさか、そのまま他のToolStripに追加したりしてないだろうなw

565:デフォルトの名無しさん
07/02/12 18:41:40
低能が粘着してるスレはここですか?

566:デフォルトの名無しさん
07/02/12 19:15:21
>>563
わかった、すまなかった。あんまり探すのに時間かかるんでイラついてた。
申し訳ない。
>ToolStripManager.Merge
ありがとう。助かった。

>>564
>まさか、そのまま他のToolStripに追加したりしてないだろうな

mergeできないかもと思って、CopyToに手を出したんだけど、これは
ToolStrip型の配列に対して行なってみたら、元のContextMenuStrpが
空になった。これってやっぱりダメなのね、でも配列にと書いてあるんだが

567:デフォルトの名無しさん
07/02/12 19:41:50
バカの自覚がないところが痛いんだよね。

568:デフォルトの名無しさん
07/02/12 19:45:02
>>567
ん?別にバカでもなんでも構わないが、教えてくれたこの
>ToolStripManager.Merge
で、実際に 一つのContextMenuから別のContextMenuに中身のTooStripMenuItemが
消えないでmergeされるコードはどうやって書くのか教えてほしいんだが。
良ければ教えてくれ。たのむ。

569:デフォルトの名無しさん
07/02/12 19:48:41
>>564では、CopyToで消えないと書いてあるよな、
ToolStripManager.Merge メソッド でもHelpにあるとおり、
>そのまま他のToolStripに追加したりして
みたわけだが、やっぱり元のContextMenuからは消えてしまうんだよね。

これって何か恥ずかしいことでもしてるの?全くわからん。

570:デフォルトの名無しさん
07/02/12 20:05:14
こっちがやってみたのは、

ContextMenuStrip1.AllowMerge = True
ContextMenuStrip2.AllowMerge = True

sourceContextMenuStrip = ContextMenuStrip2
targetName = "ContextMenuStrip1"
returnValue = ToolStripManager.Merge(sourceContextMenuStrip, targetName)

こうすると returnValue はTrueだが ContextMenuStrip2 から全部消えてしまう。
これで何が間違ってるんだろ?

元に戻してみると確かに
returnValue = ToolStripManager.RevertMerge(targetName)
これで元には戻る。


571:デフォルトの名無しさん
07/02/12 20:30:55
マージなんだから消えるのが当然の挙動では?

572:デフォルトの名無しさん
07/02/12 20:39:59
>>571
やっぱり消えたの確認したのね、オッケーオッケー。いいよいいよ。
ってことは>>570のコードは別に間違ってないってことだよね?

>マージなんだから消えるのが当然の挙動では?

しかし本当にそう思う?

さっきも書いた通り、前からあったMainMenuもContextMenuではちゃんと消えない
でMergeできてたんだよねー。当然上位のMenuでできないのは変でしょが。

たとえば、一つのContextMenuにはどこのコントロールでも使う共通のメニューアイテム
を入れておいて、コントロール個別の内容は別に個別にセットしてあるところにその共通
分のを 「マージ」 すると、どのコントロールにも共通項目が簡単につけられるし、
いらなくなったらはずせばいいわけでしょ。これが前はできてたのよ、なんで
こんな便利な機能を外しちまったわけ??マージはマージであって、元を消して
いいなんて話はどう考えてもおかしいと、俺は思うね。だってそうなら前のMergeは
なんだったの?ってことで

573:デフォルトの名無しさん
07/02/12 20:42:43
でも、>>563-564には「消えない」という意味で書いてあるからなあ

回答待つことにするわ

574:デフォルトの名無しさん
07/02/12 21:01:56
>>565>>567
回答くれるんならあんたでもいいけどな。

575:デフォルトの名無しさん
07/02/12 21:25:14
どうでもいいが、バカだと抜かしておいてたいしたことないのかよ>>>565>>567

576:デフォルトの名無しさん
07/02/12 21:53:26
マイクロソフトの現実にわかりにくいHelp検索できるだけでは威張れませんよね
それから基本的なことどうとかいうけど、権威を信じてるだけでプログラムの中身が
ないんじゃだめですよ。


577:デフォルトの名無しさん
07/02/12 21:54:13
それでヘーキでバカが、とか、痛いとかw
笑っちゃうねw

578:デフォルトの名無しさん
07/02/12 22:08:50
何を文句言ってるのかようやく分かったw
ToolStripItemの派生クラスのインスタンスは、複数のToolStripItemCollectionに
同時に所属(?)できないようだけど、そのことに文句をたれているのか。

例えばMenuStripの項目の一部をContextMenuStripの項目の一部として表示したい、
ということなら、ContextMenuStripをShowする直前にAddRangeしてClosedイベントで
元のMenuStripに復元するだけでしょそんなの。
何も難しく考える必要はない。

それと、>>563-564の言ってることは別に間違ってないよ。
よく考えてみ。
まあ知識がないのに考えても思いて学ばざるはなんとやら、だが。

しかし、何か昔のフェミかサヨクみたいな壮大な勘違いしてるようだけど、
別にマイクロソフトは君が頑張れる環境を整備する責任を負ってないよ。
まあ君が勘違い野郎でも別に俺には関係ないけどw

579:デフォルトの名無しさん
07/02/12 22:20:26
>>578
>別にマイクロソフトは君が頑張れる環境を整備する責任を負ってないよ

これこそ大きな勘違いだと思うけどなぁ
Helpがわかりにくいのは現実、結局あれこれ本みて調べないと調べたいことに
たどり着けなかったりするのはHelpとしてそれ自体「欠陥品」でしょ。
かつてのVB4.0のHelpは何でもすばやく出てきて優秀だった
生産性が良かったね

それがHTMLベースになりレスポンスは遅くなり、しまいにゃあちこち
勝手にリンクが切れたり、全く使いものにならんよこんなの
壮大な勘違いはマイクロソフトの殿様商売の方だろそもそも



580:デフォルトの名無しさん
07/02/12 22:25:26
>>579
そーだよなー
エクセルでも95のヘルプは良かったのに97で少し使いにくくなって、2000以降は
もう使う気しないもの

581:デフォルトの名無しさん
07/02/12 22:26:06
>>578
>例えばMenuStripの項目の一部をContextMenuStripの項目の一部として表示したい、
>ということなら、ContextMenuStripをShowする直前にAddRangeしてClosedイベントで
>元のMenuStripに復元するだけでしょそんなの。
>何も難しく考える必要はない

まあそうやれば「このダウングレードされた欠陥商品」の欠陥を補うことはできるな
それは>>570で済んでるよ

確かに
>564 名前:563[sage] 投稿日:2007/02/12(月) 17:49:02
>それにCopyToしただけではコレクションの中身は消えない
>まさか、そのまま他のToolStripに追加したりしてないだろうなw
こそ痛かったと思うぜw

だから、それじゃあいちいち元に戻さなくてもいいMergeの仕方をしてみせてくれよと
言ってんだが、結局できなかったってことだよなwww


582:デフォルトの名無しさん
07/02/12 22:28:30
偉そうに言う割りに結局はマイクロソフトの弁護して終わるやつが多いのここw

583:デフォルトの名無しさん
07/02/12 22:30:01
だから>>564は別に間違ってないって言ってるのに。。
本当馬鹿だな

584:デフォルトの名無しさん
07/02/12 22:32:43
>>583
元にもどしてもどれば消えてない、とでも?
別の意味なら消えないマージの仕方を示してくれ。

いちいち戻すのはとても面倒でしょうがないからさ!

585:デフォルトの名無しさん
07/02/12 22:34:34
Microsoftに訊けよ。
いくら偉そうに言っても怒らないからあいつら。

586:デフォルトの名無しさん
07/02/12 22:35:32
中身の実体が別のところに張り付いてるから消えてない、ってのなら、
たとえば、こっちの桶にある水を別の桶に空けたら、こっちのは空っぽ
になってしまった・・・・・はて、これをこっちの桶からは消えたって言わないのか?
不思議な言語世界だぞそれはw

587:デフォルトの名無しさん
07/02/12 22:38:09
それから、前のMenuクラス群なら、Cloneが作れてちゃんと別ものがコピーで作れたぞ。
それがなんで新しいやつだとできないんだよ?だいぶへんなバージョンアップじゃないかね??

588:デフォルトの名無しさん
07/02/12 22:39:58
>>585
バカとか言ってる時点で十分えらそうだろw
>>564とか言ってるくせにさ。消えてるじゃねえかよ、
Helpでやれと書いてあるとおりにやってんだぜ。

589:デフォルトの名無しさん
07/02/12 22:41:48
>>582
いやいやMSの弁護なんて誰もしてないって。
そうじゃなくて君が馬鹿だっていってるの。
だって与えられた条件はみんな一緒だぜw

MSDNは確かにお世辞にも分かり安くもユーザーフレンドリーでもないが、
君のその体たらくは単なる君自身の勉強不足に由来するのであってMSの責任じゃないでしょ。
っていうか、そもそもプログラマっていうのはそれなりにプロフェッショナルであるべきであって、
馬鹿が無理してやるべき性質のものじゃないんだけど。

590:デフォルトの名無しさん
07/02/12 22:45:28
>>589
お前のはバカを連発して>>564の矛盾を糊塗しているだけw

591:デフォルトの名無しさん
07/02/12 22:48:10
中身のないプログラムのバージョンアップはやめろというのが先決だろ?ww
マイクロソフトは金儲けでソフト重くすればインテルと組んでハードもどんどん
仕方なしにでも買わせられる、これはグルでうまくやってるつもりなんだろw

592:デフォルトの名無しさん
07/02/12 22:49:59
俺の大学時代の友人にもこういう被害妄想傾向の持ち主が一人いたな。。
奴は今元気にやってるだろうか。

593:デフォルトの名無しさん
07/02/12 22:53:15
結局、こっちの桶から中身は移動して消えていたのが正しかった、しかし
>>564は調べもしないでいいかげんなことをのたまって偉そうにしただけだった
これが違うというのなら、桶の中身が消えていないというのなら、ちゃんと
Mergeしてもこっちの方からは消えていかないMergeがあることを実際に示せなければ
おかしいはずだ

それができないことに後から気がついたもんでそんな言い訳をこいて指摘した
方を馬鹿だということで逃げ切ろうとw

別に消えてもいいんだよ、ちゃんと調べて消えてることを知った上でものを
言っていたんならなw

594:デフォルトの名無しさん
07/02/12 22:57:30
お前さんも痛い奴だな。
だから>>564は間違ってないって。
嘘だと思うなら実際やってみ

595:デフォルトの名無しさん
07/02/12 23:08:01
おい!
どうでもいいけど、数字コテくらいつけろよ>>547

596:デフォルトの名無しさん
07/02/12 23:08:32
>>594
そのコードを出して見せてくれよ


とずっと言ってるのに出さない理由は?
 1.簡単すぎてあほらしいから出せない
 2.ホントはできないから出せない
答えはどっちですかあ?

If 1 Then 
 回答コード
Else
 すみませんでした
 どうも
End If



597:596
07/02/12 23:12:14
もし1なら、先にそれを出しておけばいいこと

しかし、それを出して説明しないから言ってきただけでしょが?>>>594

戻せば戻るって、そんなのは当たり前、とっくに>>570でわかってますよ
と前にも言ってますが。


598:デフォルトの名無しさん
07/02/12 23:13:48
コードって言ったってCopyToメソッド一行書くだけじゃんw

まあいいや、例えばformのLoadイベントハンドラに次のように書いてみ。
Dim count As Integer = ContextMenuStrip1.Items.Count
Dim items As ToolStripItem() = New ToolStripItem(count - 1) {}

ContextMenuStrip1.Items.CopyTo(items, 0)

どう、消えたかな?w


599:デフォルトの名無しさん
07/02/12 23:16:14
馬鹿だのなんだのと御託は言うくせに、結局、
>>578
>ToolStripItemの派生クラスのインスタンスは、複数のToolStripItemCollectionに
>同時に所属(?)できない
とか言ってるんだから、無理なんでしょ原理的にさ
なら、元々できるわけないじゃん。

結局マイクロソフトはオブジェクト指向だのなんだのとDelphiの開発者を札束で
引き入れて「好きなようにやっていいよ」と甘い言葉でエンジニアのマスターベーションを
させて、OOPをいいことにクラスを乱造させて収集が付かないほどに膨れ上がって
るのが現実ではないんかな

クラスを作り散らかしてはまた捨てての繰り返しw
いい加減にしろよ

600:デフォルトの名無しさん
07/02/12 23:17:32
いい加減スレ違いなんですけど。
MSの批判がしたいならそれなりの場所でやってくれませんか?

601:デフォルトの名無しさん
07/02/12 23:20:59
いやいやこういうお人は出て行けって言っても絶対出て行かないから、
それならせいぜいからかって楽しませてもらうべきだよw

602:デフォルトの名無しさん
07/02/12 23:23:47
>>547
お前どんだけ書き込んでんだよ。
よそでやれ。
ああ、別にMSの製品に問題ないとは思わないが、
お前の痛さの方がよっぽどひどい。


603:デフォルトの名無しさん
07/02/12 23:43:19
沸点の低いスレだ

604:デフォルトの名無しさん
07/02/12 23:49:02
>>598
別に役に立たない代物で、途中までで消えてないからいいって話は全然無いからw
Public Class Form6
  Private ContextMenuStrip1 As New ContextMenuStrip
  Private ContextMenuStrip2 As New ContextMenuStrip
  Private ToolStripMenuItem1 As New ToolStripMenuItem
  Private ToolStripMenuItem2 As New ToolStripMenuItem
  Private ToolStripMenuItem3 As New ToolStripMenuItem
  Private items As ToolStripItem()
  Private count As Integer
  Private Sub Form6_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    ToolStripMenuItem1.Text = "ToolStripMenuItem1"
    ToolStripMenuItem2.Text = "ToolStripMenuItem2"
    ToolStripMenuItem3.Text = "ToolStripMenuItem3"
    ContextMenuStrip1.Items.Add(ToolStripMenuItem1)
    ContextMenuStrip1.Items.Add(ToolStripMenuItem2)
    ContextMenuStrip1.Items.Add(ToolStripMenuItem3)
    count = ContextMenuStrip1.Items.Count

    items = New ToolStripItem(count - 1) {}
    Application.DoEvents()
    ContextMenuStrip1.Items.CopyTo(items, 0)
    Application.DoEvents() '<---- あんたの言ってるのはここまでの話でしょ。

    For i As Integer = 0 To count - 1
      ContextMenuStrip2.Items.Add(items(i))
    Next
    Application.DoEvents()
    Me.ContextMenuStrip = ContextMenuStrip1
    Label1.ContextMenuStrip = ContextMenuStrip2
  End Sub 
End Class

605:デフォルトの名無しさん
07/02/12 23:49:49
>>601
何を言ってるカス野郎めwてめえでコード書いて確かめてから言え馬鹿者めが!!


606:デフォルトの名無しさん
07/02/12 23:51:10
結局、>>604の最後までやって別の桶に移すと元の桶からは消えていくんだよ。

これで消えてないの?w

607:デフォルトの名無しさん
07/02/12 23:51:26
doevents って vb6 ?

608:デフォルトの名無しさん
07/02/12 23:53:42
>>578が回答で、結局は新しいToolStripとやらは、いちいち移しては戻し
してやらないと使いものになりません、と言ってるだけですよw

面倒な話ですなあww

609:デフォルトの名無しさん
07/02/12 23:54:02
>>604
ほんっと被害妄想傾向の激しいやっちゃなあ。。
>>564になんて書いてあるか読めないのかねえ

610:デフォルトの名無しさん
07/02/12 23:54:13
>>607ってこういうやつには馬鹿とかはいわねえのなw

611:デフォルトの名無しさん
07/02/13 00:09:03
コレダ!!!!!!!!!!

Friend Sub MoveItem(ByVal value As ToolStripItem)
If (Not value.ParentInternal Is Nothing) Then
Dim num1 As Integer = value.ParentInternal.Items.IndexOf(value)
If (num1 >= 0) Then
value.ParentInternal.Items.RemoveAt(num1)
End If
End If
Me.Add(value)
End Sub




612:デフォルトの名無しさん
07/02/13 00:09:36
>>609
だから?

こっちはそんなこと問題にしてない。>>>581
ずっと言ってる通りですよ。

613:デフォルトの名無しさん
07/02/13 00:16:47
.NETを反転すると。。。

"TEN."。。。。すなわち「点→ . 」
くだらねぇ小細工してんじゃねぇよ!

614:デフォルトの名無しさん
07/02/13 00:27:18
>>611
すまんがアク禁になった、ケータイからでは書けません。
解説頼む。

615:デフォルトの名無しさん
07/02/13 02:07:19
>>589
で、これほど馬鹿馬鹿といわれるほどこっちは酷いはずはないと思うぜ。

悪いのは、単えに!グレードダウンしたマイクロソフトのMenuクラスだよ
これをいいわけしてるだけでしょw

616:デフォルトの名無しさん
07/02/13 02:08:31
しかもやってみないで言ってた>>563
これのほうがはるかに恥ずかしいww

617:デフォルトの名無しさん
07/02/13 03:31:51
仕様についてMSの肩を持つ気はないとしても、
そういうのとは全く別問題でお前は恥ずかしい
というのが多くの人の感想だと思うぞ。


618:デフォルトの名無しさん
07/02/13 04:29:19
>>617
それってのははじめに Protected だったのがどうとか言ってるの?

そんなの忙しければ見落とすことはあるよ。なんだそんなことで馬鹿にするしか脳がないのか

619:デフォルトの名無しさん
07/02/13 04:31:21
ここで重要なのは、
 >仕様についてMSの肩を持つ気はない
だけで十分、こっちはちゃんと金払ってVS2005買ってるんだからな
作り散らかしただけのよくも検討されてないバージョンアップは
文句いって当然だぜ。

620:デフォルトの名無しさん
07/02/13 04:41:29
それに、ToolStripMenuItemがどうやってもコピーされない仕様なんて、前からある
Mergeの仕様からしたら異常な変化であることは疑いない、それをHelpに初めから
明示していないMSのズサンなドキュメント設計は何者なの?w

とにかくMSは無理やり金と人掛けて作り散らかしてるよ>クラスの山

それでその中で右往左往して苦しめといわんばかりの言語になってるのも疑いないな

621:デフォルトの名無しさん
07/02/13 06:07:07
もし仮にOOP的に開発してどうしてもMergeをこうするしかなかったというのなら
おかしな話にも思う。別にAddしたらこっち側から無くなってしまう仕様なんて
おかし過ぎるよwそれじゃ、わざわざプロパティにContextMenu入れてあるのと
矛盾する設計じゃないか、わざわざ右クリックのイベントをハンドルしなくても自動的に
出せるからそうなってるはずなのに、それをわざわざ世話する必要があることになる。

622:デフォルトの名無しさん
07/02/13 06:09:28
だからこそ前のMenuはそうなっていなかった、Mergeしても消えなかった、そのほうが
理にかなってるさ

623:デフォルトの名無しさん
07/02/13 08:01:51
>>618
嵐は去りましたか

624:デフォルトの名無しさん
07/02/13 08:28:04
プログラマならMSに対して苦言の一つも持ってない方が珍しいとは思うが、
こんな被害妄想狂の戯言にはさすがに誰も同調する気になれんよな。
批判が全然的を射てないし

例えばさんざん前のMenu前のMenuとか言ってるが、そもそもToolStrip は
次世代のMenuでありMenuの機能を継承してるんだ、なんだ誰も言ってないだろうw
妄想狂クンの一人勝手な思い込みだろそれw

Controlを継承してるって所からも、この被害妄想狂クンが問題にしてるような動作は
プログラマならおおよそ推定可能な動作だしなあ。

625:デフォルトの名無しさん
07/02/13 08:33:52
馬鹿って言われて逆上しちゃったんだね

626:デフォルトの名無しさん
07/02/13 09:00:19
多動性障害児カワイソス

627:デフォルトの名無しさん
07/02/13 09:54:21
>>624
お前がMSの回し者ならいいそうな言い訳だなw

そもそもが>>620に書いた通りだぜ、勝手に仕様をぐちゃぐちゃにしておいて
マニュアルの記述に一言もないとはなw

帰ったらちゃんとMSに言っておけ馬鹿野郎めがwww

628:デフォルトの名無しさん
07/02/13 09:58:29
どんどん仕様を目まぐるしく変えておいて、マニュアルには一言も断わりを入れぬまま
プログラマがいちいち全部実験してみて、おーそうか、こういうふうに動くのか、
へー、いろいろとかえるもんなんだね、MSさんね、暇なんだね、いや人間が金に
引っ張れるだけ引っ張ってこれたから余ってる人員ですき放題に毎回あっちだこっちだと
仕様変えて楽しんでは無駄な時間をプログラマに取らせては悦に入ってるわけなんだろな、
生産性の低いドキュメント作っては迷惑の掛け通しのマイクロソフトは何様?

たかがZ80のBasic作ってから商売できてうまくいって図に乗っただけの癖になwww

629:デフォルトの名無しさん
07/02/13 10:01:13
金儲け主義の脱銭奴のビルゲイツの頭には自分らが世間から搾取するための
策略と戦略だけがますは念頭にあるらしいことが、結局はこういう末端の製品の
品質にしっかり現われているってことを自覚しら方がいいと、正当に文句をヤツの
頭の中に届かせてやれよwwwおんどらよ

630:デフォルトの名無しさん
07/02/13 10:04:48
知ったかぶりして、これが正当な仕様だと?いちいち全部テストしてから初めてわかる
動作仕様のプログラム製品なんて価値があるのか?そんなことをしていたらどんどん
世間の生産性は落ちていくぞ。

そうすることへの反省も批判もないからMSに引っ掻き回されてまたつまらない無駄を
これからもしていくようになるのさ。金儲けて有り余ってしかたないんなら、その金の一部
でもましなマニュアルやヘルプを書けるやつを養成して少しでも世間の生産性に実質的に
品質で貢献するようにしてくれよ、いい加減よ!!!


631:デフォルトの名無しさん
07/02/13 10:08:20
高い金払って買ってるんだぜ、何万円も出して買わされてるこっちの身にもなってくれよ、
いい加減よ。こんなド品質のHelpでましに全部プログラム掛けてる人間がどれだけいるんだよ?
全くの欠陥商品でしかないぜ。高い金分捕って売ってるならそれだけの義務があるはずだぜ。

632:デフォルトの名無しさん
07/02/13 10:13:29
まだいるのかよw


ここはお前のくる所じゃないんだw
お母さんが心配してるから、もう病院に帰るんだw

633:デフォルトの名無しさん
07/02/13 10:19:43
ちょっと質問です~!

まずこういうSQL鯖のDBのカラム構造があります。

DataKey(int)(PK) DataValue(decimal(18.9)) DataTime(datetime)

でストアドにこの3つを渡してDataKeyが一致したカラムをSelectして
DataTime=ストアドの引数のDataTime
であればDataValueを更新
ってやってたわけなんですが
これをAdo.NETのDataAdoptorでも何でもかまわないので実現できないでしょうか?
ADO.NETでは内部保持していると異なっていればUpDateとかやってるようですが・・・・

何か条件をつけてやれば出来るのか?というのもMSDNみた感じなさそうだったんで、今一歩思いつきません。
出来ないのであればおとなしくストアドに任せるようにしますが、簡単な更新処理とかをわざわざストアドにして処理変更時に二重にメンテしたくない為、変更したいと考えています。

634:デフォルトの名無しさん
07/02/13 10:25:52
また不親切で膨大なMSDNの海でおぼれ掛けてる不幸な開発者の一人が救助を
求めているじゃないか・・・
いつまでもこういう状態がつづくんだろうな、百科事典ぜーんぶ知らなきゃなんにも
できませーん、てシステムは本当に正しいのかい?>All少しは仕組みを見直した
方がいいに決まってるだろが!

635:デフォルトの名無しさん
07/02/13 10:37:29
>>634
ぶっちゃけ並の人なら
MSDNヘルプに対するヘルプが必要なのは否めないと思う

636:デフォルトの名無しさん
07/02/13 10:42:03
>>635
そうだよな、この仕組みに改善の余地がないとがんばるMSには文句を言うのが
本来なら筋ってもんだよな

あんまり続けると迷惑かかるからやめとくけど、えらそうに最後はMS持ち上げて
終わる工作員気味の人間の工作にはもうホントにうんざりだよorzこの世界は
馬鹿と連発してPGへの心的工作でMSが君臨す片棒担いでる連中がいる気が
本当にするんだよね、そんじゃね

637:デフォルトの名無しさん
07/02/13 11:30:48

(・∀・)

638:デフォルトの名無しさん
07/02/13 11:31:29
>あんまり続けると迷惑かかるからやめとくけど
>あんまり続けると迷惑かかるからやめとくけど
>あんまり続けると迷惑かかるからやめとくけど
>あんまり続けると迷惑かかるからやめとくけど


639:デフォルトの名無しさん
07/02/13 11:48:10
MSに言ってくれたまえ。

640:デフォルトの名無しさん
07/02/13 11:58:25
>>639
コラ!
お母さんがここに来たら駄目だって教えてあげたでしょ!

もう、帰りますよ!


皆さん、うちの>>639がご迷惑をおかけしまして、すみません。J('A` )し

641:デフォルトの名無しさん
07/02/13 12:00:05
ちょwww み・・・皆様方・・・・

おいらの>>633の質問をなにとぞなにとぞ~~

642:デフォルトの名無しさん
07/02/13 12:23:32
>被害妄想狂クン、

そんなに1.1以前のMenuがお気に入りなら、
別に普通に使い続ければ良いだけだよ。

廃止になったわけじゃないんだから。

643:デフォルトの名無しさん
07/02/13 12:30:12
>>641
できるよ。

URLリンク(msdn2.microsoft.com)(VS.80).aspx

DataSetで好きなように編集した後に
DbDataAdapter.Update メソッドで更新でおk。

644:デフォルトの名無しさん
07/02/13 17:42:43
>>628
>たかがZ80のBasic作ってから
8080

645:デフォルトの名無しさん
07/02/13 23:30:25
MouseDownイベントでマウスクリックしたときの処理を書いてるんですけど
長押しクリックには対応してないんですね・・・。
長押しクリックに対応させる方法ってあるんでしょうか?

646:デフォルトの名無しさん
07/02/13 23:32:41
MouseDownでTickCount覚えといて、MouseUpで差をとればいいんでない?

647:デフォルトの名無しさん
07/02/13 23:39:43
>>646
即レスありがとうございます
それならできそうですね!
明日やってみます

648:デフォルトの名無しさん
07/02/13 23:43:43
>>643
遅レスごめ
把握Where句にいれちゃえばどうにでも条件はできちゃうってことですね
あとRowVersionとかも含めて


649:デフォルトの名無しさん
07/02/14 00:36:28
OS:Windows2000 ServicePack4 にて、サービスの登録をしようとすると以下のようなエラーがでます。

>C:\Documents and Settings\Administrator>C:\WINNT\Microsoft.NET\Framework\v2.0.50
>727\installutil E:\exe\remote_server.exe
 …
>インストール段階で例外が発生しました。
>System.ComponentModel.Win32Exception: アカウント名が無効であるか、または存在しま
>せん。あるいは、指定したアカウント名のパスワードが無効です。

>インストールのロールバックを開始しています。


下記のような開発環境や他のマシンにて登録を試した際には上記のエラーは出ませんでした。
(どのマシンにもFrameworkのv2.0.50727がインストールされています。
また、どのマシンもアドミニストレータでログインし登録しようとしています)
OS:WindowsXP Professional Version2002 ServicePack2
OS:Windows Server 2003 ServicePack1

調べたところ [CoputerName\Account] が必要らしいとのことなのですが、
どのようにすればサービスの登録が行えるのでしょか?


650:デフォルトの名無しさん
07/02/14 00:43:05
TextBox に連続したキーボード入力をしているとし、途中キーボード入力が途絶えた事を検知するには、
いかなるイベントとを組み合わせればよろしいでしょうか。。

651:デフォルトの名無しさん
07/02/14 00:52:33
>>650
その連続の定義ってどんな感じなんだろう
マウスクリックが入ったらだめとか
最初にキーが押されてから次のキー押すところまでが1秒以内とか・・・
いろいろあると思うけど

652:デフォルトの名無しさん
07/02/14 01:05:48
そんな間抜けな質問に回答する気になれるあんたを尊敬するよ。

653:デフォルトの名無しさん
07/02/14 01:08:30
>>652
ん~
俺自身もびっくりだ
疲れてるんだろうな
釣りとしか思えないのにw

654:デフォルトの名無しさん
07/02/14 01:31:48
>>427 >>461
誰かー、方法ない?

655:デフォルトの名無しさん
07/02/14 01:45:42
誰か画像処理おしえてくれー

656:デフォルトの名無しさん
07/02/14 01:49:22
>>654
何のためにしたいかわからないが
力になれなくてすまない

>>655
釣りにしても質問大雑把過ぎwwww

657:デフォルトの名無しさん
07/02/14 03:35:38
>>654
PE ヘッダ調べれ
あとコンソール系の API 呼び出し(GetConsoleTitle とか)の成否で判断するとか

658:デフォルトの名無しさん
07/02/14 09:25:10
初歩的ですいません。
Vb2005でクラスを追加した後、そのクラスのデザイナ
画面を出すにはどうしたら良いんでしょう。
ユーザーコントロールや,コンポーネントではなく
クラスの追加でやりたいです。どなたか。


659:デフォルトの名無しさん
07/02/14 09:34:59
Excel操作について質問させてください。

C:\text.jpgの画像ファイルを、Excelの特定の位置へ特定のサイズで表示させたいのですが、
どのようにすればよろしいでしょうか。VB.net2005、Excel2002です。
ちなみにCellへ値を入れる操作等はできます。

ネットで調べても画像関係は載っていなかったので質問させていただきました。
よろしくお願いします。

660:デフォルトの名無しさん
07/02/14 13:10:10
>>659
エクセルのマクロで画像を挿入する処理を記録して、ソースを解析すれば
できそうな気がする。

661:デフォルトの名無しさん
07/02/14 14:39:34
>>658
>クラスのデザイナ画面
ほう、2005になってようやく「真のビジュアル」BASICになったんですね。
そりゃすげぇ。

662:654
07/02/14 15:24:49
>>656
>>657
ありがと。


663:649
07/02/14 15:46:45
とあるサイトにて解決しました。

EXE作成時に、ServiceProcessInstallerのAccountをLocalServiceにしていましたが、

「Windows2000にはLocal Serviceグループは存在しません。」
URLリンク(www.sophos.co.jp)

と、ありました。
これが原因で2003ServerやXPの時は無事で、2000Server時にアカウント名やパスを求められたらしいです。
AccountをLocalSystemに変更したらエラーは発生しなくなりました。

某掲示板とマルチになりますが、お騒がせしました。

664:デフォルトの名無しさん
07/02/14 21:30:50
>>660
あれには苦い思い出が…w

665:デフォルトの名無しさん
07/02/14 23:03:09
vb6.0から2005に乗り換えたばかりで、
クラス配列のプログラム例を試して「こりゃ便利」とか思っている初心者です。
どんどん使ってみようと思っていますが、一つ疑問があります。

変数とメソッドを含むクラスの配列を用意し、配列全体をインスタンス化したとします。
そのとき、メソッドも配列要素の数だけメモリ上に確保されてしまうのでしょうか。
だとすれば、同じ働きのメソッドのコピーがたくさんできることになるので、
激しくメモリの無駄になるのではないかと思います。

それとも、変数などのデータ部分だけ要素数分確保されるような賢い仕様に
なっているのでしょうか。
そのあたりご存知の方おられましたらよろしくお願いします。

666:デフォルトの名無しさん
07/02/14 23:09:14
>>665
クラスをメモリに確保してるんだからすべてにきまってるんじゃないかな?
じゃなかったら各クラス(以後オブジェクト)のメソッドも使えないっしょ?
一部はメソッド使いたくないなら使わない部分だけ構造体にして格納して取り出すときにTypeOfで調べてぶんきさせてもいいだろうし
ぶっちゃけ同じことVB6でもできると思うんだけど・・・
むしろ型を持ったまま配列に放り込めるのが強みだと思ってるんだが…・

それぁ、全部構造体にしてメソッドはモジュールにでも書き出すとかさ
いろいろ手はあると思う。

それに、そのくらいのメモリ気にする時代でもないと思うんだ
それだったらもっと別のところ削れるだろうし

667:デフォルトの名無しさん
07/02/14 23:15:57
>メソッドも配列要素の数だけメモリ上に確保されてしまう
の意味が不明

668:デフォルトの名無しさん
07/02/14 23:20:09
プログラムコードをメモリ上に展開するって話でしょ?
データはインスタンス分確保されるだろうけど、
コード部分は共用するんじゃなかった?

669:デフォルトの名無しさん
07/02/14 23:20:44
コード部分は共通。リフレクション使ってアセンブリを読み込めば出来るかもしれないけどね。
VB6でもクラスの配列は使える。

670:デフォルトの名無しさん
07/02/14 23:21:12
>>667
あれじゃね?
変数10k
メソッド部分5k
とかの計15kのサイズのクラスがあって
それをインスタンスつくってArrayListとかにほりこんだときに
15k、10k、10k、10k、10k
とかで保持してくれないのかな?
ってことじゃね?

普通にないけどさwww
これできたらじゃぁ2個目のクラスはメソッドどうなるんだよwww
てことになるわけだが、そんな常識は無視して考えようwww


671:665
07/02/14 23:25:12
>>666
ありがとうございます。
>じゃなかったら各クラス(以後オブジェクト)のメソッドも使えないっしょ?
たしかにそうですね。

>それに、そのくらいのメモリ気にする時代でもないと思うんだ
もともとマイコンのプログラミングから入ったので、メモリ節約癖がしみついてしまっている自分。
メモリがギガバイトクラスになっても、気にせずにはいられない自分に欝。
こういうあたりでいつのまにか時代に取り残されてしまうんだな。

672:デフォルトの名無しさん
07/02/14 23:28:20
>>671
いやいや、節約は大事だけど
まぁ、導入する環境とかも含めて考えていけば節約する場面もあると思うよ
非接続データ保持したりすればメモリ食うから、超ぼろいマシンでメモリ足りなくなるかもしれないところはきっと接続でやったりするだろうし
ケースバイケースじゃないかな?と

あくまで、本当に無駄のない部分そぎ落としてからの作業になるけど


と素人PGがいってみるwwww

673:デフォルトの名無しさん
07/02/14 23:37:48
>>670
じゃあ Shared メソッドはどうなるんだよ

674:デフォルトの名無しさん
07/02/14 23:42:14
>>673
実体化した場合Sharedの部分もオブジェクトのメモリ部分に格納されるんじゃないかな?

あくまでクラスのインスタンス化されていないものもメモリに格納されていて
実体化はそれのコピーっしょ?

実体化しないSharedメソドはインスタンス化されていない部分を使用しているんじゃないかと考える

675:デフォルトの名無しさん
07/02/14 23:48:35
連投ごめ

一応俺の浅はかな考えだからwww
もし、本当に知ってる人いたら教えてwwww

676:665
07/02/14 23:58:34
自分で質問しておいてなんですが、
私もちょうど本を見てて「共有メソッドってのがあるじゃん!!」と思ってたところでした。
VB2005に乗り換えて最初に買った、林晴比古のVB2005ビギナー編です。

共有メンバと呼ばれる変数とメソッドは、いくつインスタンス宣言をしても
メモリ上にひとつの実体しか確保されない。

と説明されています。

677:最凶VB厨房
07/02/15 09:11:25
(インスタンス)メソッドの実体は何個インスタンス作ろうが常に一つです。

インスタンスメソッドの起動にはインスタンスへのアドレスとそのアドレスから
メソッドへの相対アドレスの二つを必要とします。

678:デフォルトの名無しさん
07/02/15 09:29:46
そのアドレスから の部分間違えた。
他にも微妙に間違えておるわ。

679:デフォルトの名無しさん
07/02/15 10:11:48
フラッシュを用いたブラウザゲームに連動するソフトを作りたいと思ったのですが、フラッシュから文字列データを取得等は可能でしょうか?
例えば、このような機能を実装したいとした場合に可能かどうかという事です。

ゲーム上で「***はレベルが15に上がった」というメッセージが表示された時、
プログラムの方で予め登録しておいた文字列とマッチングを行い、「レベル」が「15」になった事を検地してデータファイルを更新する等の所定の動作を実行するといった感じです。

680:デフォルトの名無しさん
07/02/15 11:28:01
カメラでディスプレイをモニタして画像を解析する

681:デフォルトの名無しさん
07/02/15 11:41:02
マジレスしたら>>679のやりたいことググって見つけた

682:デフォルトの名無しさん
07/02/15 11:57:38
お助けください

・VB6
・SPREAD ver.6.0

【現象】
EnabledをFalseにするとスクロールバーまで固定されてしまいます。

【質問】
スプレッドシートを表示専用(.EnabledをFalse)にしつつ、
スクロールバーを有効にする方法を教えて頂きたいです。

【備考】
.OperationModeでもスクロールバーが固定されてしまう。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch