VB.NET質問スレ (Part19 ..
[2ch|▼Menu]
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でもスクロールバーが固定されてしまう。

683:デフォルトの名無しさん
07/02/15 12:11:47
そんなの販売元に訊けよ

684:デフォルトの名無しさん
07/02/15 12:13:54
そもそもスレ違いだ

685:デフォルトの名無しさん
07/02/15 12:34:18
西京味噌イラネ

686:デフォルトの名無しさん
07/02/15 12:44:37
>>676
これだからハルピコ本は…

Shared だろうが何だろうが、同一クラスのメソッドやプロパティが
インスタンス毎に生成されたりはしない。

687:デフォルトの名無しさん
07/02/15 14:49:29
アプリケーションの設定情報の管理方法について
URLリンク(www.microsoft.com)

↑この方法で設定を読み出し・書き込みするときに
My.Settings.My_WidthのMy_Widthを変数にすることは出来ないのですか?
例えば
HENSUU=My_Width
My.Settings.HENSUU
こんな感じに・・・

設定する項目が多いとその数だけTextBoxが必要になりますよね?

688:デフォルトの名無しさん
07/02/15 15:00:36
>>687
My.Settings.My_Width = HENSUU じゃ駄目なのか?

689:デフォルトの名無しさん
07/02/15 17:15:14
Dim mProcess As New Process()
mProcess.StartInfo.FileName = "notepad.exe"
mProcess.StartInfo.UseShellExecute = True
mProcess.StartInfo.WindowStyle = ProcessWindowStyle.Minimized
mProcess.Start()
なら最小化されるのに、
mProcess.StartInfo.UseShellExecute = False
だと、なぜか最小化されません。そういうものなのでしょうか?
mProcess.StartInfo.UseShellExecute = True
で、最小化で起こすことはできないのでしょうか?

690:デフォルトの名無しさん
07/02/15 18:11:00
>>687
My.Settings("My_Width") = 10

691:679
07/02/15 20:08:28
>679ですが、自分なりに調べてみましたがわかりませんでしたorz
そのゲームというのは自分の作品では無いのですが、それでも文字列や数値データを取得する事というのは可能なものなのでしょうか・・・
カメラは無しでお願いします

692:デフォルトの名無しさん
07/02/15 23:57:49
>>691
そのFlashが吐き出してくれなきゃまず、普通には無理だろうな
当たり前のことだが・・・

Flashが外部へ何らかのインターフェイスを持っているなら出来るがな
昔時間ない案件の時に適当にテキスト吐かせて無理やりやったことあるけど

693:デフォルトの名無しさん
07/02/16 00:34:36
アプリケーションの設定を soapformatter で保存しています。
が、xmlns がそのアプリケーションのアセンブリ名になり、
他のアプリケーションから読み書きできません。
どうしたらいいのでしょうか?

694:デフォルトの名無しさん
07/02/16 01:18:25
VBAだとTest1とTest2のマクロを一括で処理するには
プロシージャー名を記述すれば出来ますが
VB.NET 2005では、どう記述したら良いのでしょうか?

例)
Sub 一括()
Test1
Test2
End Sub

Sub Test1()
End Sub

Sub Test2()
End Sub

695:デフォルトの名無しさん
07/02/16 01:35:35
最近のPGはインスタンスごとにメソッドの実体ができるのかどうかとか、
本気で悩むくらい、常識的な感覚もなくなってるのか…


696:デフォルトの名無しさん
07/02/16 01:45:14
だってここVB.NETスレだよ?


697:デフォルトの名無しさん
07/02/16 08:19:19
>>695
常識的なプログラマならそんなアホな悩みを持つかよw

インスタンスメソッドなんて、実体はインスタンスへのポインタを引数にとる「関数」
に過ぎない、とOOP勉強して1時間で気づくだろ普通w

698:デフォルトの名無しさん
07/02/16 08:31:26
そういうもんだろうと予想はするけど、
本当に実装がそうなってるかどうか気になるってのは別におかしくないだろ

699:デフォルトの名無しさん
07/02/16 10:11:55
インスタンスごとにメソッド実体を持つなんて、
ちょっと考えられない。
ものすごく特殊な機能を実装している言語とかランタイムなら、
確かに絶対ないとは言い切れないが、少なくとも.NETレベルの
機能でそれはありえない。
ていうか、上で書いたのはそもそも、みんなインスタンス単位で持ってると
思ってるような書き込みが最初に続いていたからで。


700:デフォルトの名無しさん
07/02/16 10:15:45
少なくとも、まず共有されてると予想するのが先でしょ。
10000この配列にインスタンス格納したら
メソッドの実体が10000個できるのかよ。
メモリいくらあっても足りない。
継承してるメソッドとかどうなるんだよ。


701:デフォルトの名無しさん
07/02/16 10:17:48
>ていうか、上で書いたのはそもそも、みんなインスタンス単位で持ってると
>思ってるような書き込みが最初に続いていたからで。

すまん、読み返してみたらそれほどではなかった。


702:デフォルトの名無しさん
07/02/16 10:26:02
ちなみに、インスタンス毎に確保される、データ以外の領域ってのはちゃんとある。
型オブジェクトへのポインタと、同期テーブルインデックス。
32ビット環境では占めて8バイト分がとられる。


703:694
07/02/16 15:21:54
とりあえずCallで解決しました。
Call Button1_Click(Button1, e)

異なるイベントで、同じ処理を流用するとき
他に良い方法はありますか?


704:デフォルトの名無しさん
07/02/16 15:48:17
メソッド作って好きにに呼びゃあいいだろ


705:デフォルトの名無しさん
07/02/17 00:32:27
viEmuのアンインストール方法を教えて

706:デフォルトの名無しさん
07/02/17 00:35:31
事故怪血しました

707:デフォルトの名無しさん
07/02/17 07:51:57
URLを指定して該当ページのソースを読む事って出来ますか?
出来るとしたらどんな関数を使えば良いのでしょうか、教えて下さい

708:デフォルトの名無しさん
07/02/17 07:55:12
>>707
WebRequest クラス

709:665
07/02/18 21:27:35
665です。
2日たって来てみたら、なにやら詳しそうな方のレスがついていて
ありがたいです。
>>697 >>792 を読んで、ホッとしました。
やっぱり無駄にメモリを食わない仕様になってるんですね。


710:デフォルトの名無しさん
07/02/19 00:12:34
>>792よろぴく


711:デフォルトの名無しさん
07/02/19 01:43:16
>>792 は難しそうなので
>>689 をよろしく


712:デフォルトの名無しさん
07/02/20 16:46:37
VBA実行処理中に経過時間をリアルタイムで表示させるには、どうしたらいいですか?

713:デフォルトの名無しさん
07/02/20 17:06:19
スレ違いです

714:デフォルトの名無しさん
07/02/20 17:08:34
えっ!VB.NETでVBAを操作する場合なのですけど?

715:デフォルトの名無しさん
07/02/20 18:37:46
>>712
Background Worker

716:デフォルトの名無しさん
07/02/20 20:46:01
AがBでもCでもない時、という条件を
A <> B AndAlso A <> C
と書いてるんですが、もっとスマートな書き方はあるでしょうか?

717:716
07/02/20 20:47:34
すみません、>>716まちがえました。
A <> B And A <> C
です。よろしくお願いします。


718:デフォルトの名無しさん
07/02/20 21:30:35
おれの経験じゃ、こういうピントがずれたことにこだわる傾向のある奴は
プログラマ向いてない。

719:デフォルトの名無しさん
07/02/20 21:54:24
それからさー、Helpのリンクがどんどん切れて行くんだが、
なんとかならんのかこいつは!!!

720:デフォルトの名無しさん
07/02/20 21:55:54
>>718
んなことない。
初心者は大抵そう。

721:デフォルトの名無しさん
07/02/21 01:45:26
質問です。

一覧系の画面を作るのに、Spreadを使用しているのですが、
特定の列を固定することはできるのでしょうか?
(エクセルのウィンドウ枠固定みたいな感じにしたい)
プロパティを探してもそれらしき設定が見つかりません。

.NET標準のDataGridというコントロールには列固定を設定する
プロパティがあるんですが、Spreadじゃできないんですかね…

722:デフォルトの名無しさん
07/02/21 08:28:51
グレープシティのSPREADのこと?
俺は使った事ないからわからないな。

あの分厚いマニュアルに書いてない?
CDの中にPDF付いてなかったっけ?

723:デフォルトの名無しさん
07/02/21 09:42:55
>>715
時間のかかる処理をバックグラウンドで実行するには?BackgroundWorkerコンポーネント
URLリンク(www.atmarkit.co.jp)

724:デフォルトの名無しさん
07/02/21 11:24:00
質問があります。
VC++.NETで作ったDLL(ソースあり)があり、デバグモードで実行しています。
これに、VB.NETで作ったプログラムからデバグモードでアタッチしたいのですが、
どうすればいいのでしょうか?

725:デフォルトの名無しさん
07/02/21 11:53:05
で、できた…!DLLのアタッチ、自力でできました!
一応どうやったか書いておきますね。

1.VB側、exeをビルドして終了(もしくは放置)
2.VC++側でDebugモードでDLLビルド→自動的に出てくる『ActiveXコントロールテストコンテナ』は無視
3.VBで生成したexeを実行
4.VC++側のメインメニュー→「デバッグ」→「プロセス」を選択
5.VBで生成したexeのプロセスを探し出しクリック→「アタッチ」ボタンを押す
6.良くわからんけど「Native」にチェックを付けてOKボタンを押す

この時点でexeとDLLがくっついて一連のプロセスとして扱えます。
あるボタンをクリックし、その主処理がDLLにあるとすればそちらに制御が流れますので
ブレイクポイントを張っておけばそこで処理が止まり、ステップ実行してデバグ可能
になります。

726:デフォルトの名無しさん
07/02/21 11:54:50
>>725に一応補足します。
レジストリにVC++から生成されるDLLへのパス指定をしているのは言うまでもありません。

727:デフォルトの名無しさん
07/02/21 12:22:32
つうか、ソースあるなら1つのソリューションにしちゃえばいいじゃん。
それで依存関係つければ別に。

728:デフォルトの名無しさん
07/02/21 12:27:16
>>727
もう安定稼動しちゃってるから今更構成を変えるのは怖いのです…。

729:デフォルトの名無しさん
07/02/21 12:28:01
>>723
COMはスレッドセーフじゃないと思うんだがw

しかし、こういう得意げに一行コピペする奴の神経ってわからん。
いや、むしろ精神分析の対象だと思う。
少しも大げさでなく。

730:デフォルトの名無しさん
07/02/21 12:31:54
分らないのだったら書き込まなくてもいいよ。患者さん

731:デフォルトの名無しさん
07/02/21 12:35:52
2chでレスしてる相手の神経をいちいち推測しようとするほうがよっぽど分析対象に近いと思うがw

732:デフォルトの名無しさん
07/02/21 12:39:14
喧嘩はやめて〜♪

733:デフォルトの名無しさん
07/02/21 12:41:02
>>728
プロジェクトは構成だけど、ソリューションは論理単位ですよ。
なので、別にプロジェクトを変えないでも2つのプロジェクトを1つのソリューションとして定義するだけ。

734:デフォルトの名無しさん
07/02/21 13:40:25
>>729
意味がわからん、もう少し詳しく説明しなさいw

735:728
07/02/21 14:29:15
>>733
や、それはそうなんだけどCVSのバージョン定義とかなんとかめんどいのよ。
やった方が将来的にはいいってのは分かるんだけど、
まだ慣れてないんで、なんか現状とは違うものにしちゃいそうな俺。

736:デフォルトの名無しさん
07/02/21 16:03:18
>>729
>>2

737:デフォルトの名無しさん
07/02/21 16:38:33
わろた

738:デフォルトの名無しさん
07/02/21 17:07:18
初歩的な質問です。
 -5.067の値を-5.0670E+000と書き換えるやり方を教えて下さい。
 お願い致します。

739:デフォルトの名無しさん
07/02/21 17:24:31
ToString("E4")

740:デフォルトの名無しさん
07/02/21 17:48:46
>>738
質問者が初歩的な質問なんていうなよw

741:デフォルトの名無しさん
07/02/21 19:03:34
むしろ高度じゃね?

742:デフォルトの名無しさん
07/02/21 19:12:06
>741
んなこたぁ〜ない

743:デフォルトの名無しさん
07/02/21 23:37:08
ちとお尋ねします。

Private Structure 構造体名
Public Dim String1 As String
Public Dim String2 As String
.....
End Structure

Public Function 関数() As String
Dim 構(n) As 構造体名

構(0).String1 = "なんとか"
構(0).String2 = "かんとか"
...
構(1).String1 = "書き込む"
構(1).String2 = "やめる"
...

上記の宣言と同時に配列に値を入れていく方法ってありますか?

Dim 構造 As 構造体
Dim 構() As 構造体名 = {(構.String1 = "なんとか", 構.String2 = "かんとか"), _
(... }
こういうのはダメでした。正しい方法あれば教えてください。
VB暦はだいたい100時間くらいです。

744:デフォルトの名無しさん
07/02/21 23:38:44
構造体にコンストラクタを記述する

745:デフォルトの名無しさん
07/02/22 00:04:53
>>743
やり方は幾らでもあるが、一番オーソドックスなのは
構造体の中に「初期化した自分自身」を返す共有(Shared)メソッドを書く方法だろう。

別に構造体でなくクラスでも構わない(まあ特別な理由がない限りそうだと思うが)
ならコンストラクタに初期化の処理を書いてもいい。

っていうか、初心者はまず本の一冊ぐらい読めよ。
そんでもってちょっと考えれば誰でも思いつくようなこと(例えばこの質問がそうだが)
を質問するのは恥ずかしいことだと思った方がいいよ。

746:デフォルトの名無しさん
07/02/22 00:19:33
なんか
面白いvb.netで作られたアプリない?


747:デフォルトの名無しさん
07/02/22 00:27:16
>>743
Structure ABC
    Public Sub New(s1 As String, s2 As String)
        Str1 = s1
        Str2 = s2
    End Sub
    Public Str1 As String
    Public Str2 As String
End Structure

Module XXX
Sub Main
    Dim a() As ABC = { New ABC("111","111"), New ABC("222","222") }
End Sub
End Module


748:743
07/02/22 00:34:39
>>744 >>745 >>747
皆様ありがとうございます。精進します。

749:738
07/02/22 11:39:21
>>739
 ありがとうございました。これで安心です。

750:デフォルトの名無しさん
07/02/22 13:21:54
あるフォームのPanelコントロールに動的に追加されるテキストボックスがあり
その動的に追加されたテキストボックスのValidatedイベントに
あるプロシージャをAddHandlerしてある状態です。

このときあるプロシージャで入力チェックを行い
ダメならエラープロバイダを表示したい
OKならエラープロバイダを表示しない
としたいのですが、
今一歩わからないところがあります。


1.SetErrorで表示させたエラープロバイダは単純にVisible=Flaseにしたのでかまわないのか・・
スッゴイ初歩的なことですみません。

2.やっぱりあるコントロールのインスタンスを作る時にエラープロバイダのインスタンスも作成し、それをセットするべき?
(今はFormに貼り付けたエラープロバイダをセットしています。)

イマイチ説明がぐちゃぐちゃなきがしますが・・・

751:デフォルトの名無しさん
07/02/22 19:05:44
何も行動を起こさないうちから分からないとかほざいてる
お前さんの存在こそ分からないよ

752:デフォルトの名無しさん
07/02/23 00:40:03
サブフォーム開いたり閉じたりした後にメインのComboBoxにフォーカスあてる(クリックする・Tabキーでフォーカス移動する)だけでnull参照エラーがでます
何しても解決できない
ボスケテ

753:デフォルトの名無しさん
07/02/23 09:52:32
フォーム2をモードレスで開いたり閉じたりする場合は
グローバルに宣言をしても良いの?

クラスはグローバルに宣言することは良くないって聞いてたんで
この機会にちゃんとした方法を覚えておきたい。

754:デフォルトの名無しさん
07/02/23 10:12:30
モードレスでも呼び出し元がいるなら、そいつがインスタンス管理すればいいし。
そうじゃなく、アプリ内で完全に各画面非同期なら、アプリ自身の管理プロセスクラスの変数でしょ。
グローバルじゃなくてもいけるし、グローバルでもいける。


755:デフォルトの名無しさん
07/02/23 11:22:50
つーか.netにグローバルはない


756:デフォルトの名無しさん
07/02/23 11:30:12
Moduleだけでプログラムを書く。

757:753
07/02/23 12:50:08
グローバルと言うかパブリックです。
そのパブリックもモジュールに宣言したものをグローバルと言いました。
紛らわしくてごめんなさい。

>>754
アプリ内で各画面非同期です。
管理プロセスクラスと言うのがあるんですか?
ぐぐるで探してみたけど見つけれませんでした。

>>755
モジュールもクラスと考えればそうなりますね。

>>756
それはちょっと勘弁願いたい。

758:デフォルトの名無しさん
07/02/23 16:52:01
育児イライラどう発散してる?育児板
スレリンク(baby板)

763 名前:名無しの心子知らず[] 投稿日:2006/11/18(土) 13:06:17 ID:g2BG3ATp
娘@3ヵ月にあたりちらす。ビンタやお湯に顔面つけたり、
定規をビシッと背中にふりおろしたり、オムツ一枚にして冷たい床の上に寝転ばせたりマチ針で歯茎さしたりw

765 名前:名無しの心子知らず[] 投稿日:2006/11/18(土) 13:13:44 ID:wPPSorpM
>>763
気持ち分かるよ。イライラするよね。育児って。
私はわざとどなったりして息子を怯えさせちゃうよ。
今日は怯えて指しゃぶり過ぎて指がすっごい内出血しちゃった。

766 名前:名無しの心子知らず[] 投稿日:2006/11/18(土) 13:41:34 ID:g2BG3ATp
>>765
わかってくれてありがとう。
本気で死なない程度や跡が残らない程度に毎日してるよ。
たまに気がむいたら可愛がるけどね!
さっきなんか一瞬だがドライヤーの熱風背中に浴びせたよw
マチ針は血が出て焦ったけどね。
おすすめは、熟睡してるところにいきなり勢いよく高い高いがいいよ。
驚愕の顔で泣くのがたまらんw
あとおしりの谷間の産毛をむしりとる。
痛いみたいでよく泣いてるけど跡が残らない♪

759:デフォルトの名無しさん
07/02/23 18:30:38
>>757
言ってることが酷く頓珍漢だから、殊勝に初歩から勉強することをお勧めする

760:753
07/02/23 23:49:38
>>759
VB6厨です。
サポート有りと無しじゃ(サポート受けるかは別として).NETが有利なんで
必要にせまられて頑張ることになってます。

クラスをもう一度勉強しなおしてきます。


761:デフォルトの名無しさん
07/02/24 01:37:24
1、あらかじめカンマで区切られた文字列をカンマごとにバラバラにして配列に入れる。
2、"で囲まれたものは1つにまとめて入れる。 "a,b,c,d,e"こんなのは1個とする。
3、"が変な場所にあったり、足りないものはとりあえず無視する。

こんな条件で書いてみたんですが長いので短くきれいに改良したいのです。
どこをどうなおしたらいいんでしょうか。
記憶を頼りにメモ帳で書いたので文法もロジックも間違ってるところが
多いと思いますのでよろしくお願いします。

762:761です
07/02/24 01:38:47
Public Function ABCList(ByVal ABC As String) As List(Of String)
  ABCList = New List(Of String)
  Const Comma As Char = CChar(",")
  Const WQuotation As Char = CChar("""")

  Dim ArrayOfABC() As String = ABC.Split(Comma)
  Dim CountABC As Integer = ArrayOfABC.Length
  Dim ”あり As Boolean = False
  Dim Temp As String = ""
  Dim i As Integer

763:762つづき
07/02/24 01:39:44
  For i = 0 To CountABC - 1
    If ArrayOfABC(i).先頭が” Xor ArrayOfABC(i).最後尾が” Then
      If ArrayOfABC(i).先頭が” Then
        If i < CountABC - 1 Then
          Temp &= ArrayOfABC(i)
          ”あり = True
        Else
          ABCList.Add(ArrayOfABC(i))
        End If
      Else
        If i <> 0 Then
          Temp &= CStr(Comma & ArrayOfABC(i))
          ABCList.Add(Temp)
          ”あり = False
        Else
          ABCList.Add(ArrayOfABC(i))
        End If
      End If
    ElseIf ”あり Then
      Temp &= CStr(Comma & ArrayOfABC(i))
    Else
      ABCList.Add(ArrayOfABC(i))
    End If
  Next

  Return ABCList
End Function

764:デフォルトの名無しさん
07/02/24 15:10:44
>>762
あんまり正規表現つかったことないんで間違ってたらごめん
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim texts As String() = MySplit(TextBox1.Text)
    For Each Text As String In texts
      Console.WriteLine(Text)
    Next
  End Sub

  Private Function MySplit(ByVal input As String) As String()
    Dim pattern As String = "([^,]*("".*"")+[^,]*,)|([^,]*,)|([^,]*$)"
    Dim matches As MatchCollection = Regex.Matches(input, pattern)
    Dim texts As New List(Of String)

    For Each m As Match In matches
      texts.Add(m.Value.Trim(","c))
    Next
    Return texts.ToArray
  End Function

765:デフォルトの名無しさん
07/02/24 15:45:18
2005ならTextFieldParserが使えるな

766:デフォルトの名無しさん
07/02/24 16:01:00
そんなのあるのか
でもVBの名前が付いてるとなんか使う気しねえw

767:デフォルトの名無しさん
07/02/24 16:49:23
俺は気にせず使ってる。
使わない方がいい理由があんまりない。

768:デフォルトの名無しさん
07/02/24 17:08:23
/novbruntimerefつけてコンパイルしないと勝手にMicrosoft.VisualBasic.dll参照してるでしょ

769:デフォルトの名無しさん
07/02/24 17:57:37
メソッドを作る
URLリンク(homepage1.nifty.com)

770:761
07/02/24 18:26:03
皆さんどうもありがとうございます。知らんことばっかりなんで勉強します。

771:デフォルトの名無しさん
07/02/24 18:26:47
VB関数は何か馬鹿にされているような気がして使う気になれないな〜。

772:デフォルトの名無しさん
07/02/24 21:25:18
カスタムコントロールを作くたんですが、Formに貼付けたタイミングで。。。

Private Sub Button1_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
何か処理...
End Sub

↑見たいに(業務ロジックを書くにあたって)必要なイベントを自動的にFormに書く事ってできないでしょか?
Clickイベントの中にテンプレートコードも同時に出力して、お前らそれ使ってロジック書け見たいなこと
やりたいんですが。


773:デフォルトの名無しさん
07/02/24 22:05:39
コントロールからは出来ない。

フォーム側の基本クラスを抽象化すれば、似たことは出来るけど。
その場合、フォームがフォームデザイナで表示できない(=実体化できない)ので開発が難しい。



774:デフォルトの名無しさん
07/02/24 22:46:52
っていうか、そんな定型的な処理なら最初からコントロールに
組み込んでおけばいいじゃん。

775:デフォルトの名無しさん
07/02/24 22:48:25
>>772
テンプレート使えばいいんじゃないの?

776:デフォルトの名無しさん
07/02/24 22:53:14
2005ならオナペットを差し込めばコピペと同じだべ。

777:デフォルトの名無しさん
07/02/25 00:27:07
VB.NETを使用し、PageUpなどの任意のキーを、
一定間隔で押下させるソフトウェアを作成しています。

目的の動作をするプログラムは完成し、IEなどのアプリでは
正常に動作をしています。

ですが、FPSゲームなど、特定のアプリではキー入力が
受け付けられていません。

SendKeys.SendWait()、win32api.keybd_event()どちらを使用しても
結果は同じでした。
どのようにすれば、このようなアプリにもキー入力ができるのでしょうか?

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

778:デフォルトの名無しさん
07/02/25 00:50:01
>VB関数は何か馬鹿にされているような気がして使う気になれないな〜。
馬鹿にされ「る」ような気がして、じゃなくて
馬鹿にされ「ている」ような気がして
ってどういうことだよw

779:デフォルトの名無しさん
07/02/25 01:13:15
>>771
出来ないやつほどそういう事気にするのなw
普通使って簡単にできるものなら利用するだろ。
ま、趣味でプログラムやってる人はご自由に。

780:デフォルトの名無しさん
07/02/25 01:48:31
恐らく半分冗談で言ってるんだろうから
なんもそうムキにならんでもいいだろうに

781:デフォルトの名無しさん
07/02/25 01:53:50
>>777
特定のゲームでそういうことが出来ないようにしてるんじゃないか?

782:デフォルトの名無しさん
07/02/25 02:03:04
じゃなくてDirect Inputは(当たり前だけど)ウィンドウメッセージとして
キー入力を受け取っているわけじゃないからそりゃSendKeysじゃうまくいくはず無いよ。

俺はどうやれば>>777みたいなことが可能か見当もつかないけど、
ひょっとしてDDKとか使わないと不可能なことだったりしてね。

783:772
07/02/25 11:36:09
皆さんどうもです。

>>776
2005なのでこのやり方でヤッテみます。

784:デフォルトの名無しさん
07/02/25 17:42:19
空のファイルを作りたいんだけど、この2行でOKかな?(close、disposeされる?)
.NET Framework 2.0、VB2005Exp使用

Using hStream As System.IO.FileStream = System.IO.File.Create("C:\hoge.txt")
End Using



785:デフォルトの名無しさん
07/02/25 21:28:09
例外さえ気にしないのなら、
System.IO.File.Create("C:\hoge.txt").Close()
で十分だが。

786:デフォルトの名無しさん
07/02/26 09:41:19
ListViewItemsコレクション みたいな Array 系の持ってる CopyTo でコピーしてくれるのはアイテムの場所を知らせる情報だけでしょうか?
CopyTo をした後に元のアイテムの項目に変更があった場合、コピー先にもそれが反映されています。
本当の意味での CopyTo を実現するメソッドまたは、方法はございませんでしょうか。。。よろしくお願いいたします。


787:デフォルトの名無しさん
07/02/26 10:34:59
DownloadFileメソッドでダウンロードする場合
指定したURLが存在するかしないか確認する方法は?

788:デフォルトの名無しさん
07/02/26 12:39:32
>>786
基礎的な知識の習得をスキップして、何でもかんでも理解してもいない
対処療法で場当たり的にやり過ごそうとか思ってるから
そういうわけのわかんないこと言うんだよ。

なんやねん、本当の意味でのCopyToって。
俺様のその時その時のやりたいこと基準で本当とか決めるなよw

789:デフォルトの名無しさん
07/02/26 14:00:01
>なんやねん

790:デフォルトの名無しさん
07/02/26 14:12:14
浅いコピー、深いコピーのことだろうよ。
自分も大して知識があるわけじゃないのに偉そうにする奴って痛いよ。

791:デフォルトの名無しさん
07/02/26 14:27:11
>>788
>>2



792:デフォルトの名無しさん
07/02/26 14:31:15
>>788
◎対症療法
×対処療法

793:デフォルトの名無しさん
07/02/26 14:31:46
>>788
つ「対症療法」

794:デフォルトの名無しさん
07/02/26 14:51:16
>>788の人気にshit

795:デフォルトの名無しさん
07/02/26 15:16:22
URLリンク(dictionary.goo.ne.jp)

796:デフォルトの名無しさん
07/02/26 15:30:14
質問に答えてやれよw

>786
"MemberwiseClone"を調べてみて

だが>787はほかの人頼む

797:デフォルトの名無しさん
07/02/26 17:08:51
しゃーないなw

>>787
「WebResponse 404」でぐぐってみて
自分はめんどくさいからTry〜Catchでエラーに無理矢理させちゃう

798:デフォルトの名無しさん
07/02/26 20:03:18
integer 型の計算について質問です

dim aa as integer
aa = (19 / 20) + 1
これが2となるのですが、1とするためにはどうすればよいでしょうか?
aa = Cint(19 / 20) + 1
でも駄目なんですよね。。。
integerって整数型ですよね。。。

aa = Cint(10 / 20) + 1 // aa = 1
aa = Cint(11 / 20) + 1 // aa = 2

799:デフォルトの名無しさん
07/02/26 20:08:45
Math.Floorじゃダメか。

800:798
07/02/26 20:20:24
>>799
ありがとうございます。
aa = System.Math.Floor(19/20) + 1
とすることで、求めた値を得ることができるようになりました。

801:デフォルトの名無しさん
07/02/26 20:25:39
Fixでもええんじゃないか

802:デフォルトの名無しさん
07/02/26 21:09:40
今更2003に手を出さされたが
2005のDataGridViewみたいにDataGridは列固定できないのかよ・・・・

やっぱオーナードロー嫌なら2つDataGrid並べるしかないのか?


803:デフォルトの名無しさん
07/02/26 21:21:09
>>798-801
798は「何がしたいか」、つまり求められている仕様についてについて
何もいってないのによく回答できるよな。
質問者が馬鹿なら回答する奴もどうかしてるよ。

804:デフォルトの名無しさん
07/02/26 21:32:48
>>803
> aa = (19 / 20) + 1
> これが2となるのですが、1とするためにはどうすればよいでしょうか?

↑これが「仕様」じゃないとでも?

805:デフォルトの名無しさん
07/02/26 21:35:32
馬鹿だろw

例えて言えば、「(x, y) = (0, 0)を通る直線」っていうのが
直線を一意に規定してると思うか?w

806:デフォルトの名無しさん
07/02/26 21:40:26
全然例えになってないじゃんw

807:デフォルトの名無しさん
07/02/26 22:36:42
客先から出てくる仕様ってのはしばしば>804のような物ではある。

808:デフォルトの名無しさん
07/02/26 23:19:46
俺的予想
>>788=>>803=>>805
こういう奴が暴れるプロジェクトは大体失敗する。

809:デフォルトの名無しさん
07/02/27 09:26:35
斜に構えた批判屋、揚げ足取りってウザイよね。
得意になってるけど、まあ勝手に言ってればって。

810:デフォルトの名無しさん
07/02/27 17:02:48
こんにちは。VB6からVB.net 2003に転向しようとしていて苦しんでいる初心者です。
windows XP環境で下記のようなツールを作成していますがうまくいきません。

@フォーム(form1)上にボタン一つ(button1)配置
Abutton1を押すと、現在のシステム時刻を変数に代入
Bその際、代入された時刻が13:00〜15:00の間だった場合はその時刻を表示

下記のようにコーディングしてみたのですが、さっぱり動きません。
どうすれば正しく動くのか教えていただけますでしょうか?

Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click

Dim dtNow As DateTime = DateTime.Now
Dim tsNow As TimeSpan = dtNow.TimeOfDay

If tsNow >= #1:00:00 PM# And tsNow <= #3:00:00 PM# Then
MsgBox(tsNow.ToString())
End If

End Sub

811:デフォルトの名無しさん
07/02/27 17:10:02
まず最初に、特に事情が無い限り今からやるなら2005が良いと思うぞ。

質問のほうはたぶん…
.NETはVB6とは違って、Sub button1_Click()を作っただけでは動かない。
プロパティウィンドウのイベントの欄に追加されていないと駄目。
雷みたいなマークね。

812:デフォルトの名無しさん
07/02/27 17:29:20
>>811
今テストしたらイベントはちゃんと動きますね。
というか>>810に貼ったコードだとビルドできないことが判明・・・

2003は実は発売直後くらいに買ったのですが、どうしても扱いなれたVB6ばかり
使ってしまって、今更になってあせって勉強を始めた始末です。
2003と2005ってそんなに違うものなのですか?

813:デフォルトの名無しさん
07/02/27 17:50:31
2005はデグレ。

814:デフォルトの名無しさん
07/02/27 17:56:22
>>811
適当なこと書くなよ。ちゃんとHandlesが書いてあるだろ。

>>810
DateTimeは日付情報も持ってるから条件が真にならないんだろう。
DateTime構造体のHourフィールドとか見るようにしないと駄目。
2005と2003は、特に縛りが無いなら2005を使った方が将来性がある。

815:デフォルトの名無しさん
07/02/27 17:59:01
>>811
コレがゆとり教育ならぬ2005使いの現実。

816:811
07/02/27 18:16:35
超寝ぼけてた
そうね。Handlesね。C#と混同した上によく見てなかった。

817:デフォルトの名無しさん
07/02/27 18:22:15
>>810
#...#ってDateTimeリテラルだから、TimeSpanと比較しちゃいかん。

818:デフォルトの名無しさん
07/02/27 18:27:21
TimeSpan じゃダメだろ。
Dim dtNow As DateTime = DateTime.Now
If dtNow.Hour >= #1:00:00 PM#.Hour And dtNow.Hour <= #3:00:00 PM#.Hour Then
    MsgBox(dtNow.ToString())
End If

819:デフォルトの名無しさん
07/02/27 18:29:49
エレガントじゃない希ガス

Dim tsNow As TimeSpan = DateTime.Now.TimeOfDay
If tsNow >= #1:00:00 PM#.TimeOfDay And tsNow <= #3:00:00 PM#.TimeOfDay Then
MsgBox(tsNow.ToString())
End If

820:デフォルトの名無しさん
07/02/27 18:42:53
なんて低レベル過ぎて泣けてくるなw

821:810
07/02/27 18:48:27
>>818さんのコードでいけました!
Timespanのまま比較すると「演算子'>='は、型'System.Timespan'に対して定義されていません」
と出て、ビルドできなかったのですが、Timespanに関する認識が相当間違っていたようです・・・。
皆さん、本当にありがとうございました。

822:デフォルトの名無しさん
07/02/27 22:50:06
>>811
のレスみて思った

とりあえず一通りさらっとでいいからMSDN読めよ と
まだ移行してる連中が多いとしたら・・・

public sub main
dim formA as new form1
formA.show
end sub

これでフォームがすぐ消えてしまいます!助けて!
みたいなの出そうじゃね?www

823:デフォルトの名無しさん
07/02/27 23:10:15
19 \ 20
にしようよ…


824:デフォルトの名無しさん
07/02/28 08:15:54
けんかにならにように、皆さんの意見を入れました。w
CInt(System.Math.Floor(Fix(19 \ 20)) + 1)

825:デフォルトの名無しさん
07/02/28 09:53:28
んなあほな…泣

826:デフォルトの名無しさん
07/02/28 10:23:07
質問です。
DataGridViewで、CheckBoxを表示させておりますが、特定列のCheckBoxのEnabledをFalseにする方法はないか探しております。
ReadOnly=Trueにすることで、入力を受け付けない(クリックしてもチェックのON/OFFは出来ない)ようにはできましたが、クリック自体はできるので少々気持ちわるいです。
いい技があればご教授くださいませ。

環境はVB2005proです。

827:デフォルトの名無しさん
07/02/28 10:57:10
キャンセルせいよ・・・・・

828:デフォルトの名無しさん
07/02/28 23:01:46
private void dataGridView1_CellMouseEnter( object sender, DataGridViewCellEventArgs e )
{
 if( e.ColumnIndex == 0 )
 {
  Random ran = new Random(DateTime.Now.Millisecond);
  System.Windows.Forms.Cursor.Position = new Point(
   System.Windows.Forms.Cursor.Position.X + ran.Next( 500 ) - 250,
   System.Windows.Forms.Cursor.Position.Y + ran.Next( 500 ) - 250 );
 }
}

ごめんうそ


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

5387日前に更新/270 KB
担当:undef