トップページ⇒tech
1001コメント297KB

VB.NET質問スレ(Part40)

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2013/04/13(土) 21:43:35.69
一応立てておいた

前スレ
VB.NET質問スレ(Part38)
http://toro.2ch.net/test/read.cgi/tech/1325083428/
VB.NET質問スレ(Part39)
http://toro.2ch.net/test/read.cgi/tech/1340849001/
0153デフォルトの名無しさん2013/05/25(土) 11:51:02.48
>>151
お前が>>137でEnum宣言している、そのままでいいじゃねえか
p引数という名前をお前が言う専用感ある名前にすればいいだけじゃね?
何がわからないんだデブ
0154デフォルトの名無しさん2013/05/25(土) 14:24:55.88
>>151
プロシジャと、必ずセットでその引数用のクラス作れ
たとえば
WWWWってSubかFunction作るなら、WWWWArgってクラスも作れ
それをコーディングルールとしとけ

俺ならそんなコード読みたくないが
0155デフォルトの名無しさん2013/05/25(土) 14:46:09.00
自己満足したいだけのようだから多分何を言っても無駄だろう
0156デフォルトの名無しさん2013/05/25(土) 15:37:28.98
>>152
あなたが言ってることは、可愛い女の子と付き合いたいと言ってる人に対して
俺の穴を使えばいい、女と付き合うメリットなんてないと言ってるようなものだと思います。
ぼくは可愛い女の子と付き合いたいし、専用引き数感が欲しいんです。

>>153
逆に聞きますけど、名前を変えるだけで専用引き数感が出るんでしょうか?
あと、体型はいま関係ないんじゃないでしょうか。なぜそんな語尾を使うのか不思議です。ただただ不思議です。

>>155
諦念。
0157デフォルトの名無しさん2013/05/25(土) 16:00:14.32
>>156
お前の感性を他人に聞かれても困る
一生引きこもってろ
0158デフォルトの名無しさん2013/05/25(土) 16:02:32.80ID:WCSp5Xax!
>>156
「可愛い女の子と付き合いたい」は趣味趣向の世界だから理由を問う必要はないが、
プログラミングは技術であって、そこで問われるのは目的に対する手段の合理性だけ。
趣味趣向の入り込む余地はない。
というか、そんなものを持ち込んでもらっては困る。

「専用引き数感」とやらには、いかなる目的に対する合理性も存在しない。
繰り返すが、異議があるならどうぞ。
0159デフォルトの名無しさん2013/05/25(土) 17:20:13.96
いつまでマジレス続けんだよ
0160デフォルトの名無しさん2013/05/25(土) 18:03:18.28
途中からキチガイと入れ替わってるだろ
01611372013/05/25(土) 18:53:22.70
大変遅くなりましたが、答えて下さった皆様
ありがとう御座いました。

クラスだとクラス内に書けて、呼び出しも専用という感じで
分かりやすくて良いので
ファンクションでも出来たらいいなという思いからでした。

引き数によって、処理を分岐させるような時は
一般的にはどうしているもんでしょうか?
Byte型とかで1や0を送って、コードにコメントで
対応する処理内容を書き残したり?

もしや、そもそもそんな分岐は
させない方が良いんでしょうか
0162デフォルトの名無しさん2013/05/25(土) 19:12:42.73
まあ上げてる時点で読む必要無いし
0163デフォルトの名無しさん2013/05/25(土) 21:31:38.24
>>161
擬似的なコードだけどこういう書き方をしたいの?

F(F.Args.One)

Function F(ByVal param As Args)
  Enum Args
    One
    Two
  End Enum
  
  Select Case param
  Case Args.One
    ...
  Case Args.Two
    ...
  End Select
End Function

ポリモで分岐をなくせるならそうするけど、
関数内でパラメータによって分岐するときはあるよ。
Enum使う。Functionの処理をEnumで表したいと思わないので
引数専用感が無くて困ったことが無い。
0164デフォルトの名無しさん2013/05/26(日) 01:57:00.90
専用感は個人が勝手に思っているであって俺らには意味がないって事だよ。
0165デフォルトの名無しさん2013/05/26(日) 10:58:18.54
>>131

設定どおりの動作という観点では正しい動きかも知れませんが、ソフト的にはこちらの想定通りの動作をしていないので
ソフト側がうまく動いていないという点に対してそのような揚げ足をするのは心外です。

貴方の回答をいくつか拝見しましたが、どれも傲慢で不愉快極まりありません。
おそらく業界では名のある技術者なのだろうと存じ、僭越を承知で申し上げますが、貴方が何の目的でいくつかの質問に
書き込みを行っているのかが全く理解できず、いくらその人が優秀な技術者であろうとも、傲慢でネチケットを感じられない方には
コメントをして頂きたくありません。
(もっとも、それだけの技術者であれば、2ちゃんねるのデフォルト匿名のようなふざけたハンドルは使う必要もないと思いますけれど)

すごいな
逆に拍手を送りたい
0166デフォルトの名無しさん2013/05/26(日) 13:08:16.80
質問者: 「WebBrowserだとユーザーの設定によってはPDFを表示できませんよね。
     フォーム上にPDFを表示させるための(WebBrowserを使用する以外に)別方法はありますでしょうか?」

774RR:「ユーザーが表示しないって設定してるんだから問題無いだろ。代案はない」



どうみてもキチガイです。ありがとうございました。
0167デフォルトの名無しさん2013/05/26(日) 13:17:40.26
>>166
>どうみてもキチガイです。
質問者が?
774RRが?
166が?
俺かい。
0168デフォルトの名無しさん2013/05/26(日) 13:42:54.74
質問者だろ?
0169デフォルトの名無しさん2013/05/26(日) 14:01:50.56
やっぱお前が気違いだな
質問者は「ブラウザを使用する以外の方法」を聞いてるのに
0170デフォルトの名無しさん2013/05/26(日) 14:13:30.08ID:ym0zCAVh!
この問題詳しいわけじゃないが、Windows FormはOLEコンテナに対応してないので
難しいんじゃないの。

VB6のOLEコンテナを使えば何とかなるのかもしれないが、ライセンス上の懸念があるし
さすがに15年も前の製品を好んで使いたい人は少ないんじゃないか
0171デフォルトの名無しさん2013/05/26(日) 14:46:45.53
OLEとか言い出すその発想がすでにVB脳

普通PDFリーダーのマネージド実装を探すだろ?
0172デフォルトの名無しさん2013/05/26(日) 15:03:18.57
ビットマップに変換してからピクチャーボックスに表示すれば
いいだけだろ
0173デフォルトの名無しさん2013/05/26(日) 15:29:57.52ID:ym0zCAVh!
技術以前に人間的に幼稚すぎて話にならない
0174デフォルトの名無しさん2013/05/26(日) 17:17:51.80
ななしはキチガイということで文句ないよ
0175デフォルトの名無しさん2013/05/26(日) 17:19:10.30
774RRって有名人なの?
0176デフォルトの名無しさん2013/05/26(日) 21:24:15.92
那奈死も年をとったものよ
0177デフォルトの名無しさん2013/05/27(月) 17:49:52.00
774RRは.netに関しては専門外の筈だから
ただ単に初心者を構いたいだけなんだろう
大して上手ではない、おやじゴルファーの教えたがりと一緒さ
0178デフォルトの名無しさん2013/05/27(月) 17:57:08.63
ひとつ相談させてください。
下記のコードでピクチャーボックスに画像ファイルを読み込んで
ドラッグで移動、マウスホイールで拡大縮小をさせたいのですが
マウスホイールで拡大縮小するときに真ん中を中心に
拡大したいのですが微妙にずれていってしまいます。
何か計算に間違いがあるでしょうか?
http://codepad.org/twBbvKgX
0179デフォルトの名無しさん2013/05/27(月) 20:14:11.79
誤差が積算してるんだろ
0180デフォルトの名無しさん2013/05/27(月) 23:48:59.84
わんくまが氏んだようだ
名無しの祟りだ
0181デフォルトの名無しさん2013/05/28(火) 08:35:13.98
>>179
ありがとうございます。
ScaleTransformを後にやるようにしたらうまくいきました。
0182デフォルトの名無しさん2013/05/28(火) 12:47:31.11
>>172にもあるのですが、
PDFをVB.netを使ってビットマップ変換する手っ取り早い方法があれば教えてください。
0183デフォルトの名無しさん2013/05/29(水) 22:16:34.09ID:u78+zO3T!
ウェブブラウザを起動して自動で

Dim objeBrowser = New SHDocVw.InternetExplorer()
Thread.Sleep(30000); // 一定時間待機
objeBrowser.Quit()


という処理を流しているのですが、
プログラムから Quit がされる前に手動でターゲットとなる objeBrowser が閉じられていると


ex {"起動されたオブジェクトはクライアントから切断されました。 (Exception from HRESULT: 0x80010108 (RPC_E_DISCONNECTED))"} System.Exception

というエラーメッセージが表示されてしまいます。ブラウザが閉じられている状態で Quit を実行しても
エラーが出ない様にする方法とかはありませんか?
0184デフォルトの名無しさん2013/05/29(水) 23:23:25.10
閉じられてるのならQuitの必要が無いんじゃないの?
0185デフォルトの名無しさん2013/05/29(水) 23:31:08.75
trycatchしとけばいいんじゃないの?
0186デフォルトの名無しさん2013/05/29(水) 23:38:21.89ID:u78+zO3T!
>>184
閉じられているかどうあの判定が面倒

>>185
取り敢えずその方法で行くことにしました。
0187デフォルトの名無しさん2013/05/30(木) 09:18:39.07
>閉じられているかどうあの判定が面倒

ふーん……
0188デフォルトの名無しさん2013/05/30(木) 19:44:11.65
マのセンスないな
0189デフォルトの名無しさん2013/05/30(木) 23:17:06.60
スミマセンス
0190デフォルトの名無しさん2013/06/02(日) 12:51:47.71
× 閉じられているかどうあの判定が面倒
○ やり方が解らないおせーて
0191デフォルトの名無しさん2013/06/02(日) 12:55:12.64
trycatchが確実
0192デフォルトの名無しさん2013/06/07(金) 22:43:39.56
お前らsshでファイル転送どうやってる
とっとと教えろください
0193デフォルトの名無しさん2013/06/07(金) 23:41:00.37
sshでファイル転送できるソフト使ってる
0194デフォルトの名無しさん2013/06/08(土) 20:53:35.74
>>193
winscp?
0195デフォルトの名無しさん2013/06/10(月) 22:02:59.30
プログラミングど素人です。
訳あって現在プログラムをしています

ボタンを押したときに、DataGridViewの選択した行を消したいんですが、
どうしたら良いですか?
DataGridView1.Rows.RemoveAtかなと思ったんですが上手くいきません
選択できる行は一行だけにしてあるので、その一行を消すだけでいいんですが

ちなみにSelectionModeはFullRowSelectにされています
VisualBasic 2010 Expressです
0196デフォルトの名無しさん2013/06/10(月) 23:27:40.96
>>195
無料版だからじゃね
01971952013/06/11(火) 00:03:35.79
DataGridView1.Rows.RemoveAt(DataGridView1.CurrentRow.Index)
で何とかなりましたが
もし間違ってたら訂正お願いします
0198デフォルトの名無しさん2013/06/11(火) 00:11:54.04
できたのならそれで間違ってないよ
間違ってたら出来ないからな
0199デフォルトの名無しさん2013/06/11(火) 01:14:53.52
『なにもしない』は何て書けばいいですか?

削除ボタンを押す
↓
確認メッセージ(OK、キャンセル)
↓           ↓
OK         その他(×、キャンセル)
↓           ↓
削除        削除しない、なにもしない
           ~~~~~~~~~~~~~~~~~~~~~~~~~
というのをやりたいんですが、Elseのあとに何て書けばいいのか分かりません
0200デフォルトの名無しさん2013/06/11(火) 01:28:04.30
何も書かなければいい
0201デフォルトの名無しさん2013/06/11(火) 02:02:58.06
>>196
サブっ
0202デフォルトの名無しさん2013/06/11(火) 02:27:20.31
>>195
>>197
>>199
悪いが基礎サイトかチュートリアルでも一通りやってから
プログラムに取り掛かってくれ。話はそれからだ。
0203デフォルトの名無しさん2013/06/11(火) 21:15:57.10
エクセル2013に変えたら、データグリッドから
エクセルシートへの出力が激遅になってしまった。
たった23列3行のデータ出すのに1分以上かかる。
エクセル2010だと数秒なのに…。
0204デフォルトの名無しさん2013/06/11(火) 21:40:46.75
こんなところで愚痴ってないでデバッグしろよVB低能
0205デフォルトの名無しさん2013/06/14(金) 02:26:52.06
>>203
どのメソッドで時間かかってるか調べて何がそのメソッドを遅くさせているのか調べる
0206デフォルトの名無しさん2013/06/14(金) 10:00:20.84
>>203
だいたいにおいてClipboardにコピーしてペーストするようになると早くなるね。
Clipboardを使って良い場合に限るが。
0207デフォルトの名無しさん2013/06/14(金) 15:44:19.32
Excel2010の時も、画像貼り付けが
リンク貼り付けになる不具合あったよな。
ほっといてもMSが対応するだろうと思ってたけど
未だに放置してる。
貼り付け方変えて対応したけど。
0208デフォルトの名無しさん2013/06/15(土) 10:06:06.74
CSVで吐いといてVBAで表作ればよくね
0209デフォルトの名無しさん2013/06/15(土) 11:29:38.46
新しいエクセルだとWebBrowser上で表示も出来ないな。
別ウィンドウでエクセルが起動するわ。
0210デフォルトの名無しさん2013/06/18(火) 09:37:29.10
わんくまが市んだようだ
0211デフォルトの名無しさん2013/06/19(水) 13:06:07.73
32ビットとか64ビットとかを意識しないプログラムのつもりで作ってたんだけど32ビット時代のDLLをコールしないといけんくなった
ハンドルとかIntptrで管理してる値をIntegerな引数として渡しちゃっていいのかな?
0212デフォルトの名無しさん2013/06/19(水) 13:35:26.41
そもそも64bitアプリケーションから32bitのdllはコールできないだろう
0213デフォルトの名無しさん2013/06/19(水) 13:37:46.92
意味がよく分からん
DllImport/Declareなら32bitDLLだろうがIntPtrで定義すればいいだろ
32bitDLLのヘッダが本来HANDLEとかにすべきところをintとかDWORDとかで定義しているってこと?
まあ別にこっちがやることは何も変わらないけど

プラットフォームをx86にさえしとけば問題ない
0214デフォルトの名無しさん2013/06/19(水) 19:47:20.00
あら?そうなのか・・・
ハンドルとか64ビットなのかと思っては
0215デフォルトの名無しさん2013/06/19(水) 21:28:28.17
x86でビルド → 常に32bitプロセス。64bit環境でも32bitプロセスとして起動
x64でビルド → 常に64bitプロセス。つまり32bit環境では動かない
AnyCPUで〃 → 32なら32、64なら64bitプロセスとして起動する

32bitプロセス→IntPtrのサイズは4
64bitプロセス→IntPtrのサイズは8
0216デフォルトの名無しさん2013/06/21(金) 20:41:40.32
>>215
なるほど!わかった!
ありがとう!
0217デフォルトの名無しさん2013/07/14(日) NY:AN:NY.AN
thread.startしたスレッドは普通内部で無限ループにするけど、もしリターンしたら
thread.stopしなくても自動的にストップすると考えていいの。
 
0218デフォルトの名無しさん2013/07/14(日) NY:AN:NY.AN
あたりまえ
0219デフォルトの名無しさん2013/07/14(日) NY:AN:NY.AN
なんであたりまえなの?
0220デフォルトの名無しさん2013/07/14(日) NY:AN:NY.AN
あたりまえなものに理由など無い
0221デフォルトの名無しさん2013/07/14(日) NY:AN:NY.AN
そもそもThreadクラスにStopなんて存在しない
ワーカーメソッドからのreturnがスレッドの終了を意味する
0222デフォルトの名無しさん2013/07/14(日) NY:AN:NY.AN
タスクマネージャでスレッド数見てみれば早い
0223デフォルトの名無しさん2013/07/15(月) NY:AN:NY.AN
GetsDataCmd = cmd
RaiseEvent Setreq(Me, EventArgs.Empty)

クラスからのイベントで、こんな感じでCmdストリングを渡したいのだが、いまは
Me.GetsDataCmdにセットしてMeを渡してる。
折角EventoAgsがあるのでこいつにセットできんの?
0224デフォルトの名無しさん2013/07/15(月) NY:AN:NY.AN
>221
 終了させないといけないの?
0225デフォルトの名無しさん2013/07/15(月) NY:AN:NY.AN
>>223
Setreqって意味分からんイベント名だが
そいつがEventHandler(Of CommandEventArgs)とかそんなイベント発火させる形にする
0226デフォルトの名無しさん2013/07/15(月) NY:AN:NY.AN
>>223
イベントの引数は、そのイベントを定義するときに自分で決める
必要な引数をとるように定義しろ
0227デフォルトの名無しさん2013/07/16(火) NY:AN:NY.AN
>226
 EventArgsを継承してつくらんといかんとははないの?
 ストリングでもなんでも勝手に定義できんの?
0228デフォルトの名無しさん2013/07/16(火) NY:AN:NY.AN
できる
ただしライブラリとして公開するようなのならそんなことすんな
0229デフォルトの名無しさん2013/07/16(火) NY:AN:NY.AN
単なるデリゲートだからな
0230デフォルトの名無しさん2013/07/16(火) NY:AN:NY.AN
はあ? EventArgsってクラスでしょ。デりゲートじゃないよ。
0231デフォルトの名無しさん2013/07/16(火) NY:AN:NY.AN
あっ、Eventの宣言ってデりゲートの宣言と同質ってこと?
0232デフォルトの名無しさん2013/07/16(火) NY:AN:NY.AN
>229
 あ、そういうこと! 目からうろこ。
0233デフォルトの名無しさん2013/07/16(火) NY:AN:NY.AN
HogeEventHandlerは暗黙にDelegateクラスから派生する型。クラスと同レベル
Event Hoge As HogeEventHandlerはメンバ。プロパティと同レベル
HogeはHogeEventHandlerデリゲートのインスタンス

「デリゲート」はデリゲート型を指す場合とデリゲートインスタンスを指す場合の両方があってめんどい
0234デフォルトの名無しさん2013/07/17(水) NY:AN:NY.AN
>>233
>「デリゲート」はデリゲート型を指す場合とデリゲートインスタンスを指す場合の両方があってめんどい
普通は文脈で区別がつく
クラスという言葉だってインスタンスの意味で使われてる場合もあるだろ
0235デフォルトの名無しさん2013/07/17(水) NY:AN:NY.AN
>>234
ねーよ
それはVBerだけ
0236デフォルトの名無しさん2013/07/17(水) NY:AN:NY.AN
慣れれば文脈で十分だけど問題は初心者なんだよなぁ
0237デフォルトの名無しさん2013/07/17(水) NY:AN:NY.AN
初心者にとって型かインスタンスかの違いってあんまり気にしなくて良い気もするが
ちなみにデリゲートってインスタンスなのか?俺のイメージ的には値なんだが
0238デフォルトの名無しさん2013/07/17(水) NY:AN:NY.AN
イメージ言われても…
C#の記法だと分かりやすいか?
EventHandler handler = new EventHandler(methodName);
普通のオブジェクトと変わらんよ コンストラクタ引数にメソッド渡すって違いがあるだけだ

ちなみにC#/VB的には参照型でも値型でもインスタンスで良い
0239デフォルトの名無しさん2013/07/17(水) NY:AN:NY.AN
値型のインスタンス...(たとえば)Integerのインスタンス...しっくりこないな
間違ってないのは解るんだが
でも構造体のインスタンスは割としっくりする。この感覚はなんだろ
デリゲートの実体はSystem.Delegateクラスらしいから、普通のオブジェクトと同じなのも間違ってないんだが
この感覚がVB脳ってやつなのか
0240デフォルトの名無しさん2013/07/17(水) NY:AN:NY.AN
しっくりしっくりしっくりしっくりしっくりしっくりしっくりしっくり
0241デフォルトの名無しさん2013/07/17(水) NY:AN:NY.AN
デリゲートは内部的にはSystem.Delegateクラスから派生した特別なクラスとして実装されてるが、
概念的にはデリゲート型はデリゲート型であってクラスとは別物と考えるのが正しい
クラス型、列挙型、構造体型と並んで型の一種なんだよ
つまりEventArgs型を"EventArgsクラス"と呼ぶのと同じようにEventHandler型を"EventHandlerデリゲート"と呼ぶわけ
0242デフォルトの名無しさん2013/07/17(水) NY:AN:NY.AN
デリゲートやイベントがわからんという奴は
この辺を読んで自分でイベントをスクラッチで実装してみるといいよ
一目瞭然だから
http://msdn.microsoft.com/ja-jp/library/yt1k2w4e.aspx
0243デフォルトの名無しさん2013/07/18(木) NY:AN:NY.AN
Delegateとか
C++のoperator()のように
関数のように振舞えるクラスを作る方法はありませんか?
0244デフォルトの名無しさん2013/07/18(木) NY:AN:NY.AN
Expression?
知らんけど。
0245デフォルトの名無しさん2013/07/18(木) NY:AN:NY.AN
>>243
関数のように振舞えるクラスってのがどんなのをイメージしてるかわからん
C++のoperator()って演算子オーバーロードだよな?
だったらVB.Netでも出来るぞ
0246デフォルトの名無しさん2013/07/18(木) NY:AN:NY.AN
さすがに()演算子のオーバーロードはできないよー
0247デフォルトの名無しさん2013/07/18(木) NY:AN:NY.AN
>>246
C++では括弧が演算子でそれもオーバーロードできるってことか
括弧演算子の使いかたが解らんから何とも言えんが、そこまで特殊な事はさすがに出来んのじゃないかな
0248デフォルトの名無しさん2013/07/18(木) NY:AN:NY.AN
括弧演算子ググったけど、キャストの演算子か
だったらVB.Netでも出来るはず
0249デフォルトの名無しさん2013/07/18(木) NY:AN:NY.AN
型変換はまた別
調べたいなら関数呼び出し演算子とか関数オブジェクトとか調べれ
0250デフォルトの名無しさん2013/07/18(木) NY:AN:NY.AN
C++の話とかどうでもいいけど
単にSharedなメソッドで良いんじゃないのか
0251デフォルトの名無しさん2013/07/18(木) NY:AN:NY.AN
お勧めしないが標準モジュール使うって方法もあるけど
02522432013/07/19(金) NY:AN:NY.AN
やりたいことは、
�@ ()で関数呼出しのように出来る
�A . で独自のメンバにアクセス出来る
です。

標準モジュールの関数やメソッド自体は
�Aをできないので代替手段になりません。

クラスが関数のように振舞う方法がなければ
関数やメソッドに . をつけて、独自のメンバを実装する
方法がないでしょうか。

Delegateを継承しようかと思ったのですが
できませんでした。
■ このスレッドは過去ログ倉庫に格納されています