1 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 10:00:19 ] 前スレ VB.NET質問スレ(Part29) pc12.2ch.net/test/read.cgi/tech/1235206416/l50 テンプレは>>2 〜
116 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 00:03:25 ] >>114 開きっぱなしになってるんだろうね。 具体的にどういう方法で通信をやってるの?
117 名前:114 mailto:sage [2009/06/04(木) 00:20:45 ] >>116 どういう方法と言いますと? 通信方法はこちらからコマンドを送って、相手の汎用機器から返信をもらう形です。 接続処理は普通に.open()と.close()です。 この場合、強制的にケーブルを外すので、close処理が行われないことになりますが。 それで再度openを行っても、おっしゃられるとおり、開きっぱなしになってるんだと思います。 よく分からなかったんですが、意味合い的にポートの開放(Dispose)とかやってみたんですが、これもアクセスが拒否されてしまいました
118 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 19:14:28 ] コントロールをダブルクリックしたときに自動生成されるコードを、 VB6のようにアルファベット順で出来るようにすることは出来ますか?
119 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 10:58:58 ] >>115 前者は、宣言した時点で 101×101 の固定サイズの配列ができ、そのすべてについて いつでもアクセスできる。 0 1 2 100 0 ■■■...■■ 1 ■■■...■■ : 100 ■■■...■■ 後者は、宣言しただけでは「可変サイズの配列」の、101 の配列ができるのみ。 実際にアクセスする前に For i As Integer = 0 To 100 Redim Hairetu(i)(100) Next i などとしないといけないが、使用しない部分は Redim しなくてよかったり、 最初の添字が変わるごとにサイズを変えたりもできる。 0 1 2 100 0 ■■■...■■ (Hairetu(0) は 0〜100) 1 (Hairetu(1) は Nothing) 2 ■■■ (Hairetu(2) は 0〜2) : 100 ■■■...■ (Hairetu(100) は 0〜99) でもメリットはメモリの節約くらい。 (速度にも影響するかもだが)
120 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 18:01:41 ] >>119 > でもメリットはメモリの節約くらい。 Array の各種メソッドが使えるってメリットは大きい むしろ多次元配列こそメリットがないと思うね
121 名前:デフォルトの名無しさん [2009/06/05(金) 20:35:19 ] ジャグ配列(後者)の方が大分速い いろいろ多次元配列は冷遇されてるからそのうち公式に非推奨になるかもね
122 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 20:47:28 ] 探しても見つからないので、教えてください。 VB.netでクラスの敬称などを使用していて、日本語でコメントしてあり、大規模である。 という条件を満たしているものをご存知でしたら、教えてください
123 名前:デフォルトの名無しさん [2009/06/05(金) 20:54:00 ] VB.NETのオープンソースプロジェクト自体ほとんどないから諦めてC#読めるようになるといいよ
124 名前:114 mailto:sage [2009/06/05(金) 22:26:13 ] どなたか分かりませんでしょうか・・・
125 名前:115 mailto:sage [2009/06/05(金) 22:36:22 ] なるほど、そういうことになるんですね 私は前者は、データを格納するためのまんまデータの下駄箱のような配列として使用して 後者は、一時的にSplitなどで連続なデータを格納したいときに使用していました 使い分けてました ちなみに、どちらが多次元配列とジャグ配列は別物なんですか?
126 名前:114 mailto:sage [2009/06/05(金) 22:41:23 ] >>115 多次元配列で二次などの要素数が不定期なものをジャグと
127 名前:デフォルトの名無しさん [2009/06/05(金) 22:55:25 ] メモリの構造が全然違う 多次元配列は連続したメモリ領域 ジャグ配列は配列の配列 .NETでは通常区別する
128 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 17:46:02 ] Microsoft AccessのMDBファイルは、普通にAccessを使ってExcelファイルやCSVファイル のデータをインポートしたり、クエリーの結果をExcelファイル形式でエクスポートした りしてますが、Accessを使わずに、VB.NET等から同様のことってできますやろか。
129 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 09:54:00 ] VB.NETで作成したexeを動かすのにランタイムは必要になりますか?
130 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 09:55:33 ] VBランタイムはいらんが再頒布可能パッケージのインストールは必要だな
131 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 09:56:45 ] ありがとうございます。
132 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 13:53:55 ] C++で作ったコードをVB.netに変換してくれるような機能はありますか?
133 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 13:56:59 ] ありません。
134 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 13:57:39 ] そうですか、残念です
135 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 15:40:38 ] VB.NETでちょっと悩んでいるので質問させてください。 ComboBoxでスタイルをDropDownにした時、テキストボックス部を描画しているイベントは何でしょうか? オーナードロウで描画する際DropDownListであればOnPaintで描画したものがそのまま出るのですが、 DropDownのときはOnPaintで描画したものがテキストボックス部の描画で上書きされて隠れてしまいます。 DrawItemは違うみたいで、ちょっと袋小路です・・・。
136 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 22:01:34 ] >>158 【魔力】書き込むと願いが必ず叶うスレ【強力】409 だろ
137 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 20:04:40 ] ↑ちょっと書き込み位置がズレていないか?
138 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 11:08:11 ] 単なる誤爆だろう。なんだ書き込み位置って。
139 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 12:21:52 ] はいっ コモンダイアログのデフォルトパスを 「ネットワーク全体」にしたいのですが、 参考になるサイトがどうにもみつからないんですけど どのようにすればいいんでしょうか?
140 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 13:45:57 ] ::{208D2C60-3AEA-1069-A2D7-08002B30309D}\ネットワーク全体
141 名前:、 [2009/06/11(木) 21:27:39 ] VB2008で悩んでます。 exeへパイプでデータを流す処理を考えています。 どんどんデータが流れてくるのでexeはループでデータが来るのを待っているのですが そのことによってexeのほかの処理が動けません。どうすればよいですか?
142 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 21:29:35 ] スレッド
143 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 10:50:23 ] VB2008を使用しています。 キーボードを押すと音が鳴るプログラムを作成しています。midiOutなどを使ってやっています。 音は出るのですが、うまくいかないことがあります。 例えば、キーボードの"A"を押すと、"ド"の音が出るようにします。それで、Aを押すと、"ド"の音は出るのですが、 長押しですと、ドーー ドドドドドドド…といった風に途中から連続して音が出てしまいます。 きちんと音を伸ばして鳴らしたいので、何か良い方法はありませんでしょうか?
144 名前:デフォルトの名無しさん [2009/06/12(金) 12:17:53 ] KeyDownで鳴らし始めてKeyUpで止めればいいんだろ そういうことができるAPIがあるかは知らんけど
145 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 15:46:54 ] Public Enum ScanDirection x = -1 y = 0 z = 1 End Enum 列挙型で宣言した値は計算に使って値を変えていくことは可能でしょうか?
146 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 15:52:12 ] 変数使えよ
147 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 16:17:50 ] >>146 ありがとうございました
148 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 20:29:26 ] >>143 ドーッって、音が鳴り終わるまで、入力されても無視するってすればいいんじゃない? そのためには、音が鳴っている状態を取得しないとだと思うけど。 適当にググったら↓使えそうな気がする 【VB.NET】 MCIで音楽再生 その1 tenjiku.exblog.jp/10395825/ MIDI、MP3などの音楽ファイルを再生する dobon.net/vb/dotnet/programing/playmidifile.html
149 名前:143 mailto:sage [2009/06/13(土) 08:50:35 ] >>144 ありがとうございます。KeyUp,KeyDownは使用しているのですが、うまくいきません。 もう少し試行錯誤してみます。 >>148 その方法があったとは・・・。ですが和音も鳴らしたいので、その方法だと和音が鳴らない気が。 むむむ、もう少し考えてみます。 お二方ともご回答ありがとうございました。
150 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 15:15:48 ] >>149 キーイベントを受けたとこで、どのキーがすでに押されているかを判定するってすればどう? 全部のキーイベントを無視するんじゃなくて。 押されていないキーの音は鳴らし、押されているキーの音は何もしない。
151 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 17:58:49 ] >>149 MIDIを使用する(VB.Net) homepage1.nifty.com/MADIA/vb/vb_bbs/200411/200411_04110004.html
152 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 18:14:57 ] >>151 じゃダメだわ、スマソ
153 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 18:19:37 ] ReportViewerコントロール用のレポートファイル( .rdlc )のデザイナでの作成方法について色々解説してあるページとか参考書ってないでしょうか。 レポートウィザードで作れるピボットテーブルをベースに色々と追加したい要素があるんですが、どうやりゃ良いのかいまいちわからない。 一応、やりたいことは今年度のピボットテーブルに前年度の合計とか、前年度比とかの行とか列を追加することです。
154 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 22:14:15 ] MIDIってどうやって音出せばいいのか知らんかったけど、これ面白いね。 勉強になるわぁ。
155 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 22:59:08 ] >>149 MIDIプログラミング eternalwindows.jp/winmm/midi/midi01.html Windows MIDI プログラム入門 ourworld.compuserve.com/homepages/Satsuki_Kojima/winprog.htm MIDIを鳴らす www13.plala.or.jp/kymats/study/MULTIMEDIA/midiOutShortMsg.html 詳説MIDI規格 www.pluto.dti.ne.jp/~daiki/Midi/Midi.html 自作楽器「MIDIテルミン」の製作:CodeZine: codezine.jp/article/detail/172 MIDI音源の利用 www2.pf-x.net/~shink/api_midi.html VB.NET でMIDIOUTをOPENするには? hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200308/03080039.txt 16進数、8進数、2進数の文字列を整数に変換する dobon.net/vb/dotnet/programing/converthex.html
156 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 23:44:12 ] コールバック関数による出力デバイスの状態監視 maglog.jp/midi/Article.html&type=1&subtype=194372&page=1 MSDN midiOutOpen msdn.microsoft.com/ja-jp/library/cc410558.aspx デバイスは送られたデータの再生が終わるとコールバック関数にMM_WOM_DONEメッセージ(WOM_DONE)を送ります。
157 名前:デフォルトの名無しさん [2009/06/14(日) 16:50:16 ] ちょっと質問です text1、text2、text3というチェックボックスがあったとして、 For i = 1 To 3 If text[i].Checked = False Then MsgBox("エラー:text" & i) End If Next という風にしたいのですがtext1の1を動的に変えたい場合はどうすればいいのでしょうか?
158 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 16:55:46 ] 配列に入れとけ
159 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 19:48:26 ] 2002や2003じゃ駄目だがControlsを使うという手もあるかな
160 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 09:24:22 ] VB.NETでマルチコア対応のコードって書けます?
161 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 13:56:30 ] スレッド使えるだろ
162 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 14:36:14 ] 意味分かってないと思われ
163 名前:デフォルトの名無しさん [2009/06/16(火) 12:21:22 ] SQLを実行して、そのデータの表示方法を変えて出力したいのですが、どうすれば良いかわかりません。
164 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 12:29:34 ] 0から全部説明しろってか。 せめて SQLDataAdapter や DataSet の使い方くらい入門書で勉強しなさい。
165 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 20:09:41 ] >>163 そのまま何回やっても勝手に表示方法が変わったりはしません。 どうすれば良いかと言うと、表示方法を変えるプログラムを作るしかないでしょう。 >>164 たぶんこのレベルの話かと
166 名前:デフォルトの名無しさん [2009/06/16(火) 22:45:40 ] 皆さんにお聴きしたいのですが、よろしいでしょうか。 今、VC6.0とVB2005でイベント処理を書こうとしています。 以下の通り書いているのですが、VB側では一向にハンドルが返って来ず 0のままです。 何かおかしい所は有りますでしょうか。是非お知恵をお貸しください。。。 VC6.0でイベント作成 HANDLE hEvent; hEvent = CreateEvent(NULL, TRUE, FALSE, "EVENT000"); VB2005でイベントオープン 宣言 <DllImport("kernel32.dll")> _ Public Function OpenEvent(ByVal dwDesiredAcess As UInt32, _ ByVal bInheritHandle As Boolean, ByVal lpName As String) As IntPtr End Function 呼出 Dim pt As IntPtr pt = OpenEvent(0, False, "EVENT000")
167 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 23:53:21 ] どこにPInvoke使う必要がある。
168 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 01:11:12 ] LastError くらい確認しろよ
169 名前:166 [2009/06/17(水) 01:51:36 ] Daclareでやってみても結果は同じでした…。 LastErrorの値は、確認してみます。中途半端ですみません。 これに限らず、VB2005でAPIを使用する時に文字列を渡すと動作がおかしくなる傾向があるんですよね…。 うまく文字列が渡っていないのか、あるいは文字列を渡す時(Daclare等)の設定の他に、プロジェクト単位での設定等が必要になるのでしょうか? 結局、全てのAPIはVB2005で使用可能と考えて良いのでしょうか? 真剣に悩んでおります。。。 もう少しご教授ください。お願いします。
170 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 01:53:28 ] つーかなー。A か W かも明示的に指定してないし、マーシャリングも指定してないし、 適当に呼んどいて何言ってんだか、って感じだな。
171 名前:162 [2009/06/17(水) 02:18:35 ] Aliasですよね? AもWも明示して試してみたのですが結果は同じでした…。 Marcialの指定は初耳です。どういう形で指定すれば良いのでしょうか? 分かる方から見れば、適当なだけかも知れませんが、不勉強なのは承知の上です。 すみません。教えて頂けますでしょうか。。。
172 名前:デフォルトの名無しさん [2009/06/17(水) 09:20:45 ] VB2008を独習するのに、おすすめの書籍を教えてください これまでVB6.0のフォームとモジュールだけでやってきて、 クラスとかオブジェクト指向とかはネットで読んで 「なんとなくこんなもんだろうか」程度の認識です
173 名前:デフォルトの名無しさん [2009/06/17(水) 09:29:36 ] オブジェクト指向きっちり勉強したいならjavaでもやれば? VBやC#の本ってその辺の概念はスルーまたはあらかじめ理解してる前提で書かれてるのが多い
174 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 09:33:25 ] >>166 >pt = OpenEvent(0, False, "EVENT000") なんでアクセス権に 0 (アクセス権なし) してんだコレ。 Private Const EVENT_ALL_ACCESS As Integer = &H1F0003 pt = OpenEvent(EVENT_ALL_ACCESS, False, "EVENT000") >>167 EventWaitHandle.OpenExisting 使うところだろうけど まあ、どうしてもやってみたかったんだろう。 >>170 この場合は無指定で問題ない。
175 名前:166 [2009/06/17(水) 11:08:28 ] 174さんの言う通り、アクセス権を設定したら取得出来ました。 本当にありがとうございました! >Private Const EVENT_ALL_ACCESS As Integer = &H1F0003 こういうEnumの設定はどこで確認すればよいのでしょうか? MSDN等、どこかに資料があるのでしょうか?
176 名前:デフォルトの名無しさん [2009/06/17(水) 11:15:48 ] win32apiのC言語のヘッダファイル
177 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 11:16:23 ] >>4 の「初心者から中級者のためのVB」のリンクきれてますよ
178 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 11:25:53 ] >>175 Enum じゃないし。 つか、API 呼び出しするのに API の仕様も確認しないとか… >MSDN等、どこかに資料があるのでしょうか? 何を指定すればいいのかは勿論 MSDN ライブラリ等。 ただ、記号定数が実際にどういう値なのかは ヘッダを覗くしかない。 (探すときは Visual Studio のファイル検索を使うと楽) …ていうかね、>>174 でも書いたけど >>167 の言う通り、API 呼び出し使う意味がないんだったら Dim ev as EventWaitHandle = EventWaitHandle.OpenExisting("EVENT000") とした方がいいと思うんだが。
179 名前:166 [2009/06/17(水) 13:37:01 ] なるほど、そういう事ですね。 もうすこし調査してみます。 本当にありがとうございました。名無しに戻ります。 それでは。
180 名前:172 [2009/06/18(木) 09:27:49 ] >>173 今現在、VB2008を学習しなくてはならない事情がありまして 何かカリスマとかバイブル的な書籍、というのは無いものでしょうか 特に学習しなくても、VB6.0の頃とほぼ同じ作り方ができてしまいますが、 それを払拭して、VB2008ならこう構成した方がよい、こう書くべき、 というセオリーみたいなところを勉強したいです
181 名前:デフォルトの名無しさん [2009/06/18(木) 09:43:07 ] じゃC#勉強すればいいじゃん 自動的にVBも使えるようになるよ VBの本である限りVB的なやり方というのはどうしても出てくる VB2008というか.NET的に1番良いのは「C#と同じように使うこと」
182 名前:デフォルトの名無しさん [2009/06/18(木) 15:08:21 ] VB.NET2005を使ってADOとかADOXを使いMDBファイルを作成するPGをwebにアップされている サンプルを見つつ書いてみたのですが、どうしてもエラーが取れません。 ' 他のフィールドの定義 With cat.Tables(strTable).Columns .Append("商品コード", adWChar, 10) End With のadWCharでエラーになります。この型を認識させるにはどこをいじればいいのでしょうか?
183 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 17:34:51 ] GUI(フォーム)をVB、コードをC++で書くことができると知ったのですが、 (ttp://pc12.2ch.net/test/read.cgi/tech/1099112351/1) 方法があれば開設しているサイトなど、教えてください また複数の言語を混ぜてプログラムを作ることをなんというのでしょうか?
184 名前:デフォルトの名無しさん [2009/06/18(木) 19:23:24 ] IE では、「アクティブ コンテンツ」を制限する機能がありました。 「セキュリティ保護のため、このコンピュータにアクセスする可能性 のあるスクリプトやActiveXコントロールを実行しないよう、IEで制限 されています。オプションを表示するには、ここをクリックしてください」 という情報バーが出てくるものです。 この警告機能と、ダイアログを表示してユーザーが選択してから表示する という機能を、WebBrowserにおいても導入するためにはどういった処理を すれば良いでしょう?何か参照推奨のサイト等お教えください。よろしく お願いします。
185 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 22:20:05 ] >>183 C++/CLIでアセンブリ作って参照に追加するだけ と言えば簡単そうに聞こえるけど、C++と.NET両方の知識がないと厳しい。
186 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 22:34:15 ] >>185 ありがとうございます C++/CLIでCILを作るのですね・・ややこしい><
187 名前:デフォルトの名無しさん [2009/06/19(金) 01:45:26 ] 昔のC++のコードを利用したいとかでなければまずメリットはないね ものすごい科学技術計算でもするなら別だけどw
188 名前:デフォルトの名無しさん [2009/06/19(金) 03:46:53 ] javaとか、昔の Basicって、1つの命令の後に、区切り文字 (";" や ";")を書けば、同じ行に続けて次の命令を記述できたよね。 VBって、それがないから、1行に一つの命令しか書けないでしょ? 1行に1つの命令しか書けないって、よく考えたら ものすごく使い勝手悪い言語じゃない?
189 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 04:03:27 ] あるから問題ない
190 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 04:40:56 ] >>188 : で区切ればいいだろ
191 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 10:01:01 ] >>150-152 >>154-156 大変遅くなりました!レスありがとうございます。 どれも参考になるものばかりで、本当にありがとうございました! 頑張って作成したいと思います!!
192 名前:デフォルトの名無しさん [2009/06/19(金) 10:02:21 ] ( ゚∀゚)アハハ八八ノヽノヽノヽノ \ / \/ \
193 名前:149 mailto:sage [2009/06/19(金) 10:02:42 ] ↑↑149です。 連レスすみませんでした。
194 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 13:00:12 ] 現在VB2008 expressでWindowsフォームアプリケーションの多言語化について勉強しています。 C#による多言語対応アプリケーション開発のコツ codezine.jp/article/detail/3288 を参考に、デザイナ、resxファイルを利用して多言語化を行うことができました。 この作業を実際に行ってみて思ったのですが、 .netには、ある言語に翻訳したい!と思った人がアプリ公開者を通さずに翻訳 > 配布 ということが簡単にできる仕組みは準備されているのでしょうか。 実際に多言語対応したアプリを公開した場合、個人レベルだと、 規定の言語で公開(またはVerUP) > 各言語の翻訳者による翻訳 > 翻訳を反映 という流れになると思うのですが、 VerUP等でresxファイル内のデータが増えた場合(翻訳作業が必要な文字列などが増えた場合)、 各言語のresxを(アプリ公開者が)入手 > (アプリ公開者が)ビルド > dll作成 > 配布 という方法で翻訳を反映するのがやはり一般的なのでしょうか。 なければ自前で、実行時に動的にカルチャに応じたXMLを読み込み(あれば)反映、といったような処理で多言語化を実装しようと考えています。
195 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 13:10:11 ] 厳密名付けてなかったら翻訳者が勝手にresxをコンパイルしたdllでも読み込まれるな
196 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 15:39:40 ] DB側の接続文字列に変更があったとき、 DataSetにConnectionStringを追加していくと 前のConnectionStringが残ってしまうのですが・・・。 これ以前のConnectionSringを編集したい、 または以前のを削除したい場合はどうしたらいいのでしょうか?
197 名前:196 mailto:sage [2009/06/19(金) 15:50:19 ] app.configとSettings.settingsを手動で書き換えていいのかな・・・。
198 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 15:55:01 ] OK
199 名前:196 mailto:sage [2009/06/19(金) 17:13:01 ] バックアップ取ってやってみたら app.configとSettings.settingsの書き換えだけで問題なかったようです。 とっとと自分で試せって話ですよね・・・w ともあれ、ありがとうございました。
200 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 09:57:22 ] 環境:VB.net2003 GUIプログラムで、Windowsフォームの中にコンソールのようなCUIなコントロールを表示させたいのですが、 (AllocConsoleみたいに別途コンソールを開くのではなく) そういったコントロール(以前に入力(実行)した内容は変更できない)はありませんでしょうか? (標準でなくてもサードパーティー製でもなんでもいいです) もし無いのであればRichTextBoxあたりでなんとかしてみるつもりです。
201 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 10:39:06 ] フォルダを複数選択するダイアログを作成したいと思っています。 こちらのページ ttp://dobon.net/vb/dotnet/form/folderdialog.html こコピペでフォルダを選択できるようにはなりました。 'FolderBrowserDialogクラスのインスタンスを作成 Dim fbd As New FolderBrowserDialog '上部に表示する説明テキストを指定する fbd.Description = "フォルダを指定してください。" 'ルートフォルダを指定する 'デフォルトでDesktop fbd.RootFolder = Environment.SpecialFolder.Desktop '最初に選択するフォルダを指定する 'RootFolder以下にあるフォルダである必要がある fbd.SelectedPath = "C:\Windows" 'ユーザーが新しいフォルダを作成できるようにする 'デフォルトでTrue fbd.ShowNewFolderButton = True 'ダイアログを表示する If fbd.ShowDialog(Me) = DialogResult.OK Then '選択されたフォルダを表示する Console.WriteLine(fbd.SelectedPath) End If しかし、OpenFileDialogと異なりFolderBrowserDialogにはMultiselectプロパティがないようです。 どうすればフォルダを複数選択できるようになるのでしょうか?
202 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 10:55:49 ] 代案があるかどうかは知らんがSHBrowserForFolderじゃ仕様上複数選択はどうやっても不可能だな
203 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 11:06:55 ] btmtz.mvps.org/vbexplorer/
204 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 11:42:47 ] ありがとうございます。 USBメモリ・外部メール等禁止のため長いコードだと手打ちはしんどいので、FolderBrowserDialogでディレクトリを選択後checked listboxに ディレクトリ一覧を表示、そこで複数にチェックを入れるという形にしようと思います。
205 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 03:15:14 ] 繰り返せばええがな
206 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 19:50:49 ] 一覧表示の親フォームから詳細編集の子ダイアログを開くようなDBアプリを作ってて 親のBindingSourceを子に渡して子の各フォームにバインドさせたいんだけど、 コードで直接書くんじゃなくてデザイナのプロパティで設定する方法ってないでしょうか?
207 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 19:53:30 ] s/子の各フォーム/子の各コントロール/
208 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 20:18:28 ] VB.NETからエクセルのマクロを作成したり データの入力制限を編集することは可能ですか? 指定したエクセルの列に値の重複を禁止する入力制限を追加して DBの主キーのような設定を持たせたいのですが 入力制限の編集をVB.net上で行う方法が見つからないので
209 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 21:18:07 ] マクロの記録で記録できるならできる。 記録できないのも、一部は可能。
210 名前:デフォルトの名無しさん [2009/06/23(火) 19:50:53 ] VBAのマクロを生成できるから何でもできる
211 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 20:23:57 ] 調べてもマクロ呼び出ししか出てこないけど。 VB.net上で書いたソースをどの参照からマクロ登録することが出来るんだろう。 どなたかサンプルソースがあるところ教えてください
212 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 20:38:49 ] >>211 officetanaka.net/excel/vba/vbe/06.htm
213 名前:デフォルトの名無しさん [2009/06/23(火) 22:44:41 ] VB2005でftpクライアントの機能作ってます。 WebRequestMethods.Ftp でサーバにあるファイル名を取ってくるときに、 2バイト文字のファイル名だと化けてしまいます。 化けないで正しいファイル名を取得する方法はないでしょうか?
214 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 22:53:11 ] FTPではマルチバイト文字は未定義なのよね TcpClient or Socket使って自分でFTP喋るしかないんじゃないかなぁ まあどっかにその辺の対応も含んだ野良FtpClientがあるかもしんないけど
215 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 02:26:15 ] 化けるって、どこでどう化けるんだ?
216 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 22:10:40 ] テキストボックスのD&Dで テキストのD&Dは Private Sub TextBox1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1.DragEnter If e.Data.GetDataPresent(DataFormats.UnicodeText) Then e.Effect = DragDropEffects.Copy End Sub で処理できるのですが、インターネットエクスプローラに表示されているWEBページの リンクの文字をD&Dした際に、HTMLに設定されたURLを取得するにはどのように書いたら良いでしょうか?
217 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 22:52:44 ] "UniformResourceLocator"でデータ取得 MemoryStreamにキャストしてそこからRead Chr(0)を探してその直前までをEncoding.Default.GetString
218 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 22:54:22 ] あ、Chr(0)じゃなくていいか、単に0探すだけで
219 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 00:14:36 ] レスありがとございます。 その方法はアドレスバーのURLの左にあるアイコンをD&Dする方法ではないでしょうか? HTMLのリンクになっているテキストはドラッグしても通行禁止のマークのままなのですが・・・
220 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 00:18:44 ] 普通にa要素のD&Dを取れる IEとFxで確認した あ、EffectはCopyだけじゃなくてLinkも入れないと駄目かも
221 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 00:20:03 ] どぼんさんのHPにあるじゃないか ttp://dobon.net/vb/dotnet/control/dropfromwebbrowser.html
222 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 00:20:17 ] ありがとうございます。 DragDropEffects.Copy→DragDropEffects.Link の変更で受け取れました。助かりました。
223 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 02:06:49 ] OSを起動後に起動時の処理(スタートアップのプログラムの起動など)の一番最後に (PCがアイドル状態になったら)自分のアプリを起動したいのですが、 OSが起動後にそのような状態になったというのはどのように調べたら良いでしょうか? ちなみにWindowsXP-PROです。
224 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 14:03:50 ] hint wmic path Win32_Processor get LoadPercentage
225 名前:デフォルトの名無しさん [2009/06/25(木) 14:04:10 ] すみません。自分の開発してるプログラムでつまずいてしまったので教えてください。 現在業務をスケジュール管理するプログラムを作っています。 業務を登録する画面では、1月〜12月、1日〜31日までのチェックボックスを それぞれ作っています。 例えば1月〜12月と1日のチェックボックスをチェックすると、毎月1日の業務 として登録され、スケジュール表に毎月1日だけその業務が表示されるような ものを作りたいと思ってます。 データベースはACCESSを使用しており、月と日のチェックボックスに対応する 項目としてはYes/No型で1月〜12月、1日〜31日まで全て作っています。 今つまずいている点は、日付を指定してDB上からその日付に該当する業務を取得 したいのですが日付によってチェックするフィールドの位置が違う為、 どのようにすればいいか悩んでいます。 例えば6月1日の業務を取得したい場合、DB上で6月フィールドにチェックがあるかどうか の確認が必要になりますが、日付によって確認するフィールドを動的に変える方法を 教えてください。 1月1日の場合〜、1月2日の場合〜とコーディングしたら365日分つくらないと いけないので(こんな案しか思いつかなかったorz)良い案があれば教えて下さい。
226 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 14:16:31 ] DBのテーブルは与えられてるもの?自分でいじれるもの?
227 名前:225 [2009/06/25(木) 14:17:56 ] 連投すみません。 フィールド名を変数で定義出来れば多分出来るかなと思います。 1月の場合、変数に"1月"と代入しその変数=trueのレコードを取得とするような クエリにぶちこめば動くようにしたいです。
228 名前:225 [2009/06/25(木) 14:20:31 ] >>226 DBは自分でいじることが出来ます。 本当にド素人なんでどういったやり方がスマートなのかわかってないので 、こういうプログラムを作るときは普通こういった方法をする と言ったアドバイスを頂けたらと思います。 よろしくお願いいたします。
229 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 14:23:31 ] Accessを使ってるとフォームを作りやすいようなイメージでテーブルを 作ってしまうのだろうけどそこが誤りだろうな。 日付によって読みに行く場所が違うというのが異常だからそこを直すべき。
230 名前:225 [2009/06/25(木) 14:58:45 ] >>229 つまり1月〜12月、1日〜31日のフィールドっていうのが異常って事ですよね? むずかしいです・・・
231 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 16:24:00 ] まず、フィールドってのがRDB上の属性(カラム)なのかGUI上のコントロールなのかよくわからない 可能ならとりあえず現状のスキーマとSQLクエリでも晒してくれ
232 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 16:30:58 ] RDBの流儀でいえばこんな感じのスキーマになると予想 スケジュール表 [ 日付, 業務種別ID, 実業務ID ] 業務マスタ [ 業務種別ID, 業務名, 実業務テーブル名 ] (実業務表) [ 実業務ID, 必要な情報・・・ ] ←業務ごとに作成
233 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 17:39:47 ] >>225 プログラムで動的にSQLを生成して実行する フィールド名も動的に変更できる >>229 今回の要件なら、俺でも1−12月のフラグと1−31日のフラグもつかもしれない まあ、ホントは後で書くスキーマのようにするのが正解だろうけど >>232 登録するのは、業務の繰り返し頻度であって、業務のスケジュールそのものじゃないぞ そのスキーマだと、日ごとスケジュールの生成って作業が必要だな そして繰り返し頻度を変更した場合、今あるスケジュールを全部けして再生成 さらに何年先までのスケジュールを生成していいのか不明 俺の予想スキーマ 業務マスタ(業務ID,業務名,その他必要な内容) 業務頻度月(業務ID,業務実行月) 業務頻度日(業務ID,業務実行日) 指定月日の業務を知りたければ、この三つを業務IDでjoinして 業務頻度月.業務実行月=指定月日の月 and 業務頻度日.業務実行日=指定月日の日 を検索 まああれだ。DB設計の話は板違いだな
234 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 22:34:03 ] DBも気になるけどチェックボックスが大量に並んでいる画面を想像してぞっとした あ、チェックボックスのリストコントロールとかもあるか・・・
235 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 04:16:35 ] 大量って言っても、12個+31個だからなぁ カレンダー系のマスタメンテとかで、31個のチェックボックスを 並べるのなんて結構やってるし まあしかし、>225からここまで1回もvb.netって言葉が出てないじゃないかw
236 名前:デフォルトの名無しさん [2009/06/26(金) 13:36:39 ] ↑ おい、出すなよ。
237 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 16:00:18 ] DB的な使い方をしない前提なら、 スポットで1日分だけ読み込もうとせずに、 1年分くらい全部読み込んでおけってことになるね。
238 名前:デフォルトの名無しさん [2009/06/26(金) 18:18:29 ] VB.NETでスレッドを扱いたいんです。 同時に20個ほどスレッドを起動させ終了を待ちたいのですが、 どうすればいいのでしょうか? .joinでは無理ですよね? よろしくお願いします。
239 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 18:21:09 ] 別にJoinでも問題ないと思うが
240 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 18:49:10 ] そんなにスレッド起動させてどうすんの? SNS巡回ツールでも作んの?
241 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 23:46:59 ] 大量のラベルコントロールを書き換えがしたくて label1 label2 label3...のような感じで連番にして繰り返し処理で 一気に書き換えようと思うのですが思うようにできません target = Cobj("label" & i) のような感じにしたのですが エラーが出てとまってしまいます どうしたらよいのでしょうか?
242 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 00:02:44 ] >>241 label1 label2 label3...をListに入れる
243 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 00:03:16 ] テンプレに入れたいぐらい良く出るな、この類の。 配列に入れとけ
244 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 00:13:42 ] Controls()からLabelをさがせばいいんじゃない For Each child As Control In Me.Controls If child.Text Like "Label*" Then child.Text = child.Text & "でんがな" End If Next
245 名前:デフォルトの名無しさん [2009/06/27(土) 00:34:12 ] 正直、こんな命令があったんだとか こんな使い方があったんだとか 他人のプログラムやサイトを見て知ることが多く それを踏まえてみると自分の書いたコードがとても無駄だったみたいな経験があるんですが みなさんはどうやって、こんな命令があるこんな使い方があるみたいなものを学んでるんですか?
246 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 00:36:46 ] MSDNのサンプルを読破しようと思ったこともありました 挫折しました というわけで他人のプログラムやサイトw
247 名前:238 mailto:sage [2009/06/27(土) 01:31:43 ] >>238 です スレッドが終わるタイミングはまちまちです。 終わったスレッドから終わったあとの処理をしていきたいのです。 .joinだと制御が戻ってこないので困っています。
248 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 01:33:33 ] コンストラクタ内のstatic変数ってそのクラスのオブジェクトすべてで共通じゃないの? オブジェクトに通し番号をつけようと思って以下のように書いたんだが、毎回0になるのだが・・・ Public Class Form1 Private Class Foo Public Sub New() Static Sequence As Integer = 0 Sequence += 1 (毎回0に初期化されてこの時点で1になる
249 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 02:16:37 ] >>248 Static (Visual Basic) ttp://msdn.microsoft.com/ja-jp/library/z2cty7t8(VS.80).aspx >プロシージャが Shared でなければ、その Static 変数を含むローカル変数はインスタンス変数になります。 >そのインスタンス内の変数は、別のインスタンス内の同じ名前を持つ変数とは独立したものです。 各インスタンスで共有したかったらShared使ってこんな感じ Private Class Foo Private Shared Sequence As Integer = 0 Public Sub New() Sequence += 1 Console.WriteLine(Sequence) End Sub End Class
250 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 02:28:03 ] >>249 thnx staticなのにインスタンス別とは・・・
251 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 03:39:00 ] >>247 やっぱ、スレッドが終わるとき自分で終了通知する、とかじゃないかね Dim waitHandles(20) As AutoResetEvent Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load For i As Integer = 0 To waitHandles.Length - 1 waitHandles(i) = New AutoResetEvent(False) Dim workThread As Thread = New Thread(AddressOf worker) workThread.Start(i) Next Dim manageThread As Thread = New Thread(AddressOf manager) manageThread.Start() End Sub Private Sub worker(ByVal obj As Object) Dim i As Integer = CInt(obj) Thread.Sleep(i * 100) '適当に仕事をする waitHandles(i).Set() 'スレッドが終わるときに終了通知 End Sub Private Sub manager() Debug.Print("--------------") For count As Integer = 0 To waitHandles.Length - 1 Dim i As Integer = WaitHandle.WaitAny(waitHandles) '終了通知を待つ Debug.Print("worker {0} done", i) Next Debug.Print("ALL done") End Sub
252 名前:225 [2009/06/27(土) 08:11:33 ] 皆さん、教えていただきありがとうございました。 DBの設計を見直した方が良かったのですが、時間的な関係で今回はこのまま行く 事になりました。 結局プログラムでレコード1件ずつ読み込んで、指定日付の月、日に 対応するフィールドそれぞれのデータがtrueなら取得。 取得したデータを別テーブルに追加していってスケジュール表を作りました。 申し訳ないのですが、別のことでもう少し教えて頂きたい事があります。 スケジュール表を更新した日付等、ちょっとした情報を保存しておきたいのですが、 その為だけにわざわざ新しいテーブルを作るっていうのはおかしいですか? 保存しておきたい情報としては、更新日付、いつから〜いつまでのデータを スケジュール表に取得しているかという情報くらいです。 スケジュール表は3種類あるので保存するレコード数は3件以上には絶対にならないので たった3件の情報の為だけのテーブル作るっていうのは、変なのかなと思いまして 皆さんのご意見をいただけたらと思います。 お願いします。
253 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 11:14:59 ] DBを使うのはやめてOSファイルに書き出すのはどうだろう。 DataSetに全部突っ込んでテキスト(XML)で保存するのもいいアイデアだと思う。
254 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 12:59:33 ] いい加減、VB.NET関係ない話は該当するスレ(板)で聞け
255 名前:225 [2009/06/27(土) 15:13:48 ] >>254 VB.NETで作ってるので、関係ないとは一概に言えないと思います。
256 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 15:30:58 ] 関係ないだろ。
257 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 13:18:40 ] >>252 書いてあることだけみると、他の人のアドバイスを元にDBから作り直せば3時間くらいで作れそうな気がするんだけど、 それでも「時間的な関係で」って結局そのままつくり続けるならここで聞く意味ないんじゃないか? とりあえず更新日付等の情報を保存するためにテーブルを作るのは別に問題ないと思うけど、その程度の情報なら、 更新が起きたときにそのテーブルのレコードをUPDATEするんじゃなくて、INSERTしてログ的な使い方のほうが、そのデータをほしいって言った人の要求に近いんじゃないか。 更新対象のスケジュール日付、更新した人、作業内容(追加、修正、削除等)、更新日 みたいな感じのログにしておけば当面の要求はこなせると思う。 毎月1日実行のスケジュールを追加したら12個ログができるような感じで。 業務スケジュールっていうことだし、多分そんな頻繁に変更がないから、容量もそんなにくわないと思う。
258 名前:デフォルトの名無しさん [2009/06/28(日) 15:03:59 ] 質問させてください。 vb.netで開発したwebサイトを実行環境から確認しようと IISを利用してアクセスしたのですが、 以下のようなエラーが出てしまいました。 BC40056: インポート 'Oracle.DataAccess.Client' で指定された名前空間または型が、 パブリック メンバを含んでいないか、または見つかりません。 名前空間または型が定義されていて、 少なくとも 1 つのパブリック メンバを含んでいることを確認してください。 また、インポートされた要素名がエイリアスを使用していないことを確認してください。 開発環境からは正常に実行できていたのですが、 実行環境からだとこのようなエラーが出てしまい困っています。 どなたか助けてください。 使用しているソフト等 windows xp VWD ODBC ODP.NET Oracle11g
259 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 15:07:36 ] machine.config か web.config に参照設定を記述しろ、ってなかったか?
260 名前:258 [2009/06/28(日) 15:20:02 ] >>259 「参照設定を記述しろ」っていう表示はどこにもなかったです。
261 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 16:03:09 ] otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/win.111/E05791-01/featConfig.htm とかは違う? IIS への発行はどうやったの? 実行環境に、Oracle のクライアントはインストールしてある?
262 名前:258 [2009/06/28(日) 16:17:05 ] >>261 IISへの発行は、コントロールパネルの「プログラムの追加と削除」→「コンポーネントの追加」からIISを追加して、 ネット検索を経て、設定を済ませました。 < ローカルホスト> でIISが表示されるようになっています。 OracleDBサーバーと、実行環境が同じPC上で行われています。 Oracle11gがインストールされているPCなので、 Oracleクライアントは必要ないかと判断しました。 また、リンク先のページを拝見しましたが、いまいち理解ができません;
263 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 16:21:00 ] んで、開発環境と実行環境は別 PC なのね? どちらも 32ビット? Oracle DB が入ってても、クライアントがインストールされてなきゃダメ。 まずはそこを確認してみて。
264 名前:258 [2009/06/28(日) 16:27:54 ] >>263 ありがとうございます。 開発環境と実行環境は別PCです。 どちらも32ビットです。 今からOracleクラインアントを OracleDBサーバーにしているPCにインストールしてみまつ。
265 名前:258 [2009/06/28(日) 16:49:52 ] >>263 確認したのですが、OracleDBサーバーにしているPCに クライアント10gがすでにインストールされていました。
266 名前:デフォルトの名無しさん [2009/06/28(日) 17:52:33 ] 皆さんは帳票の出力はCrystalReportを使用してますか? 現在帳票はACCESSで使用しています。 今回、フォームをVB.NETで作成しなおし、DBはACCESSを使用することにしました。 帳票がかなり複雑でビジュアル的にも良くできているのですが、それを VB.NETで作り直すのがかなり困難だということをひしひしと感じております。 皆さんだったらどうしますか?
267 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 18:00:13 ] クリリポ、Active Reports、iText あたり。
268 名前:258 [2009/06/28(日) 18:09:14 ] Oracleクライアントはインストールされているのですが、 未だに上手くいきません。
269 名前:266 [2009/06/28(日) 18:10:13 ] ActiveReoprts良さそうなんですが会社で買うことが出来ないので 無料ツールはありませんか?
270 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 18:14:35 ] どうもこうもPrintDocumentでガシガシ書くだけだわな
271 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 18:15:41 ] つーかこのage厨は…
272 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 18:21:47 ] >>268 アプリの web.config はどうなってんの?
273 名前:258 mailto:sage [2009/06/28(日) 18:28:44 ] >>268 すみません。 「どうなってんの?」というのは具体的にどの部分のことを指しているのでしょうか?
274 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 18:32:13 ] つーか、参照設定がおかしいんじゃね? って言われてるんだから、 そこを調べろよ。
275 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 18:38:01 ] まぁ、どうやって調べたらいいんですか? とかだろうなw
276 名前:258 mailto:sage [2009/06/28(日) 18:44:03 ] >>274 参照設定は既に設定済みです。 「.NET」タブから一覧を表示させ、 「Oracle.DataAccess」が追加されています。
277 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 18:46:11 ] それは開発環境の話だろ・・・
278 名前:258 mailto:sage [2009/06/28(日) 18:56:37 ] >>277 すみません。 勘違いしておりました。 どの箇所の参照設定なのか教えて頂けますでしょうか?
279 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 19:14:42 ] ここで質問したからには、 他コミュで質問できないからな? 某掲示板や某フォーラムなどですると 「マルチ禁止!」のレスがつくからな 気をつけろよ・・・
280 名前:266 mailto:sage [2009/06/28(日) 19:59:32 ] PrintDocumentとCrystalReportはどちらの方がおすすめですか? 今回私の作りたいのは、1週間のスケジュール表になります。 日ごとに四角の枠を配置し、その中にその日の予定をテーブルから 書き出すことになります。 CrystalReportでとりあえず作ってみたものの、印刷プレビューで表示 すると実際の配置とかなりずれて表示されるので、本当に実現できるのか 不安になってきました。 予定表のテーブルから日をキーにしてレコードを取得後、日(曜日)ごとにDataSetを 作成してデータを突っ込んでます。 1週間分なので曜日のDatasetが7個できる形になります。 それをCrystalReportに渡して、曜日ごとの枠に収まるようにレコードを入れていきたい のですが、全然綺麗に配置出来ないし、途方も無い作業でへこんでます。 だからといって皆さんに愚痴ってもしょうがないんですが、あまりにもレポート機能が しょぼすぎて、ACCESSよりも劣ってるなんて残念でしょうがないです。 基本的にやり方としては間違ってないですか?
281 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 20:11:56 ] ある程度フォーマットが決まってるならクリリポ。 変なフォーマットなら、自由度の高い PrintDocument だな。
282 名前:266 mailto:sage [2009/06/28(日) 20:14:30 ] >>281 PrintDocument使うって事は、コードのみで書いていくんですよね・・・ 例えば、エクセルで作るような表(網掛けなど)も可能ですか?
283 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 20:17:10 ] Box の塗りつぶしでできるレベルだな。 つーか、Access がいい、っていうなら、Access でやれよ。
284 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 20:29:01 ] >>278 Web.configにいろんなDLLの参照設定が書かれてないか? それとサーバにODP.NETはインストールしてるのか?
285 名前:266 mailto:sage [2009/06/28(日) 20:36:31 ] >>283 会社でVB.NETで作るっていることに決まったんで、 ACCESSで作る事ができません・・・
286 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 20:43:33 ] だったら文句言わずにやれよ。 文句言うくらいなら、会社のやつらを説得すればいい。
287 名前:266 mailto:sage [2009/06/28(日) 21:01:55 ] >>286 はぁ?CrystalReportで作ってるってさっきから言ってるだろう。
288 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 21:08:20 ] じゃ、Crystal Reports スレでも行けよ。スレ違いだから。
289 名前:266 mailto:sage [2009/06/28(日) 23:04:43 ] こりゃしっけいいたしました
290 名前:266 mailto:sage [2009/06/28(日) 23:13:36 ] ってCrystalReportすれないじゃないか。騙された。
291 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 12:18:06 ] 先生方〜馬鹿な私にアドバイスをください orz VC++2008のWin32プロジェクトで開発した共有メモリのDLLを VB.net2008から呼び出すプログラムを製作しています。 DLL内部で保持している構造体を参照渡しして共有する仕組みです。 ですが、下記記述だと構造体内部の配列(stSub1〜3)が Nothingの状態になったままです。VB初心者の私にアドバイスをお願いします ちなみにOSはWinXPです。よろしくお願いします。 ※記述は改行数の関係上、次の書き込みに書きます
292 名前:291 mailto:sage [2009/06/29(月) 12:19:57 ] 続き(2/3) 見づらいと思いますがご了承ください orz ------------------------ VC++記述 ------------------------ typedef struct { short s1; short s2; }ST_SUB; typedef struct { ST_SUB stSub1[10]; ST_SUB stSub2[10]; ST_SUB stSub3[10]; }ST_AREA; DLL関数:HANDLE MemOpen(PVOID* Address)
293 名前:291 mailto:sage [2009/06/29(月) 12:22:28 ] ------------------------ VB記述 抜粋 ------------------------ Public Structure ST_AREA Dim s1 As Short Dim s2 As Short End Structure Public Structure ST_AREA Dim stSub1() As ST_SUB Dim stSub2() As ST_SUB Dim stSub3() As ST_SUB End Structure Public stArea As ST_AREA Declare Function MemOpen Lib "xx.dll" (<MarshalAs(UnmanagedType.Struct)> ByRef Address As ST_AREA) As Integer Private Sub BtnOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnOpen.Click Dim iRes As Integer iRes = MemOpen(stArea) End Sub
294 名前:291 mailto:sage [2009/06/29(月) 13:05:52 ] 293のPublic Structureは ST_AREAじゃなくST_SUBだった o..rz
295 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 13:37:07 ] MSDNのアンマネージ コードとの相互運用の中にあるサンプルみれ
296 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 21:11:52 ] そもそも違うプログラム同士で、変数の値などを共有(メモリの共有)をするにはどうしたらいいんでしょうか? どこかに解説サイトないでしょうか
297 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 22:55:08 ] つーか、宣言が全然おかしいじゃん。 メモリマップドファイルとか、プロセス間通信系かな。>共有
298 名前:291 mailto:sage [2009/06/30(火) 09:34:04 ] >>295 ありがとです。 PVOID*なのでクラスにしてちと試してみます >>296 C++ならCreateFileMappingとかあるみたいですよ。 ほかの言語はわかりません。
299 名前:291 mailto:sage [2009/06/30(火) 10:34:29 ] 連続申し訳ないです。。。 C言語なら ST_AREA *pStArea MemOpen(&pStArea); pStArea->stSub1[3].s2 = 10; とかやれば直接書き込みできるのに VBってこういうことできないんですか? IntPtrのようなもので受け取らないとだめですかね?
300 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 10:52:14 ] つ「構造体のサンプル」
301 名前:291 mailto:sage [2009/06/30(火) 13:51:15 ] >>300 先生ありがと! サンプルを元にやってみたけど 他アプリから値を変えても値が変わらない。。。 値渡しになってる? Public Structure ST_SUB Public s1 As Short Public s2 As Short End Structure <StructLayout(LayoutKind.Sequential)> _ Public Class ST_AREA <MarshalAs(UnmanagedType.ByValArray, SizeConst:=10)> _ Public stSub1 As ST_SUB() <MarshalAs(UnmanagedType.ByValArray, SizeConst:=10)> _ Public stSub2 As ST_SUB() <MarshalAs(UnmanagedType.ByValArray, SizeConst:=10)> _ Public stSub3 As ST_SUB() End Structure Public stArea As ST_AREA Declare Function MemOpen Lib "xx.dll" (<MarshalAs(UnmanagedType.Struct)> ByRef Address As ST_AREA) As Integer Private Sub BtnOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnOpen.Click Dim iRes As Integer iRes = MemOpen(stArea) End Sub
302 名前:291 mailto:sage [2009/06/30(火) 13:54:35 ] End StructureじゃなくてEnd Classだ o...rz Openしたときは最後に書き込んだ値が取れます。 VB側から書き込んでも相手の値は変わらず。。。
303 名前:291 mailto:sage [2009/06/30(火) 16:17:43 ] お、落ち着くんだ私。 Declare Function MemOpen Lib "xx.dll" (ByRef Address As ST_AREA) As Integer だな。 Cで書かれてるDLLの引数の型がPVOID*だから構造体でなくクラスで合ってると思うけど オープンした時のみ値が取得できる状況です。。。 助けてティーチャー orz
304 名前:デフォルトの名無しさん [2009/06/30(火) 16:31:44 ] ByValArrayは構造体専用 構造体にしてByRef IntPtrで受けるか、配列の要素を全部フィールドに展開するか
305 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 02:11:46 ] DataSetてどういう場合に使用するものなのでしょうか? mdbファイルにadoを使いデータを抽出(SQL文を使用) この抽出結果を一時的に保管しておく器とかに使うものなのでしょうか?
306 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 07:34:02 ] >>303 > Cで書かれてるDLLの引数の型がPVOID*だから構造体でなくクラスで合ってると思うけど 意味がわからん。P/Invoke のサンプルからやり直せ
307 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 07:34:13 ] >>305 そんな感じ。
308 名前:デフォルトの名無しさん [2009/07/01(水) 10:02:21 ] >>306 ポインタへのポインタが必要だから参照型(構造体ではなくクラス)の参照渡しにすればいいんだよ 理屈は間違ってない
309 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 10:39:35 ] >>305 SQLでの問合せの結果(複数行)をとっとくのがDataTable、 DataSet は DataTable のコレクション+αの機能。
310 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 10:41:48 ] >>308 すごく…おかしいです。
311 名前:デフォルトの名無しさん [2009/07/01(水) 10:57:19 ] おかしいも何も、MSDNに書いてある
312 名前:291 mailto:sage [2009/07/01(水) 11:26:45 ] >>308 さんのおっしゃるとおり ttp://msdn.microsoft.com/ja-jp/library/awbckfbz(VS.80).aspx 上記サイトの アンマネージ シグネチャ マネージ宣言 1 レベルの間接参照 class MyStruct(…); DoWork(MyStruct** x); DoWork(ByRef x As MyStruct) 部分をみて構造体ではなくクラスにしないといけないのかなと判断してます 解釈が間違ってますかね? >>304 さん >構造体にしてByRef IntPtrで受けるか この意味が私の考えで合っているのかわかりませんが、 IntPtr型でポインターのアドレスを受け取り 構造体にキャストして割り当てるということなのでしょうか? それとは別に、クラスにしてByValArray以外の方法(参照渡しができる方法)で 配列を作って引数に渡すことができればなぁと考えています。 考え方がC言語に偏っているので変なことを言ってるかもしれませんが 先生方、どうか温かい目でアドバイスをお願いします m(_ _)m
313 名前:デフォルトの名無しさん [2009/07/01(水) 11:40:47 ] クラスなら配列の要素と同じ数だけフィールド並べるしかないんじゃないの
314 名前:デフォルトの名無しさん [2009/07/01(水) 11:56:18 ] 構造体として定義して、その配列を参照渡し(ByRef)してみるのはどうだろう でも配列渡すならアドレス固定しないといけないから、IntPtrで受けてMarshal.PtrToStructureの方がまだ簡単確実
315 名前:314 [2009/07/01(水) 12:03:44 ] アドレス固定したら結局IntPtrで渡すことになるな 一行目撤回
316 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 13:12:57 ] >>299 >VBってこういうことできないんですか? P/Invoke で外部関数呼び出し時には引数の変換がされるが、それ以外のタイミングで Managed なコードから Unmanaged な領域を弄る簡単な方法はない。 おとなしく Marshal の共有メソッド (Read〜/Write〜等) に IntPtr を渡す方法を試せ。
317 名前:デフォルトの名無しさん [2009/07/01(水) 13:14:58 ] やっと理解できた VBのメンバを通してC側に直接書き込もうとしてたのか マーシャリングでは無理だ VBでは構造体も使えない IntPtrで受けてMarshal.WriteByteでも使って直接書き込むしかない
318 名前:291 mailto:sage [2009/07/01(水) 15:41:43 ] 先生方いろいろとありがとうございました。 以下のように落ち着きました(ST_SUBは以前のまま) Public Structure ST_AREA Puclic BaseAddr As IntPtr Default Public Property stSub1(ByVal index As Integer) As ST_SUB Get Dim Offset As Integer = index * Marshal.SizeOf(GetType(ST_SUB)) Return CType(Marshal.PtrToStructure(BaseAddr, GetType(ST_SUB)), ST_SUB) End Get Set(ByVal value As ST_SUB) ' indexのサイズ超えは省略 Dim Offset As Integer = index * Marshal.SizeOf(GetType(RDS_DATA_AREA)) Marshal.WriteInt16(BaseAddr, Offset, CType(value.s1, Short)) ' ここをまとめたい Marshal.WriteInt16(BaseAddr, Offset + Marshal.SizeOf(value.s1), CType(value.s2, Short)) ' まとめたいよ End Set End Property 'stSub2 と stSub3 も同様 オフセットを間違えないように!! End Structure Public stArea As ST_AREA Declare Function MemOpen Lib "xx.dll" (ByRef Address As IntPtr) As Integer Private Sub BtnOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnOpen.Click Dim iRes As Integer = MemOpen(stArea.BaseAddr) stArea.s1 = 10 'テストですよ End Sub SetのWriteInt16を一行にまとめたいとこですが思いつかなかったのでこんなです。 相手側アプリとの確認も取れました。VBむずかしいです orz ありがとうございました〜
319 名前:291 mailto:sage [2009/07/01(水) 16:00:09 ] XXX = stArea.s1 はできたけど stArea.s1 = 10 はできてなかったorz まぁでも何とかなりそうです^o^
320 名前:デフォルトの名無しさん [2009/07/03(金) 20:13:21 ] XmlDocumentのSaveメソッドで「'」を「'」として書き出す方法ってないのかな?
321 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 20:51:09 ] ウィンドウと内部処理(DLL)を別のプロジェクトで作成しました。 質問は、DLLからFormに張ってあるコントロールのプロパティを変更する方法です。 Labelの文字を変える程度でいいのですが。 よろしくお願いします
322 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 21:19:41 ] >>321 フォームから DLL にコントロールの参照を渡してやれば OK
323 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 22:15:41 ] VS2005です ユーザーコントロールにDataGridViewを貼り付けてColumnを2つ追加しました これにイベントハンドラを記述するとユーザーコントロールのコンパイルは通りますが コントロールの読み込み時にエラーが発生します 'RowsAddedイベントハンドラ Private Sub DataGridView1_RowsAdded(ByVal sender As Object, _ ByVal e As DataGridViewRowsAddedEventArgs) _ Handles DataGridView1.RowsAdded DataGridView1.Sort(DataGridView1.Columns(1), ListSortDirection.Descending) End Sub 列のSortModeがNotSortableに設定されているとき 列ヘッダーのSortGlyphDirectionをDesendingに設定することはできません というエラーが出てるようですが、プロパティではSortModeはAutomaticになってます ほわい?
324 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 22:28:19 ] なってます、ってどうやって確認したの?
325 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 22:34:02 ] >>324 ありがとうございます。 DataGridviewの設定はすべてデザイナでやってますので
326 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 22:37:02 ] 改行したら送信してしまいました つづきです デザイナでやってて、Columnもデザイナであらかじめ追加してます デザイナ上でのプロパティではAutomaticになっております
327 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 22:47:38 ] とりあえず、デザイナで設定したプロパティは忘れて、 'RowsAddedイベントハンドラ Private Sub DataGridView1_RowsAdded(ByVal sender As Object, _ ByVal e As DataGridViewRowsAddedEventArgs) _ Handles DataGridView1.RowsAdded If ...SortMode <> NotSortable Then DataGridView1.Sort(DataGridView1.Columns(1), ListSortDirection.Descending) End If End Sub みたいにしてみるとか、エラーが出たときにウォッチしてみるとか、 その辺で確認してみたら?
328 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 23:07:50 ] 了解っす
329 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 00:02:23 ] うまく行きました! データがない状態の時NotSortableになってんのかな? ありがとうございました
330 名前:デフォルトの名無しさん [2009/07/04(土) 00:19:06 ] >>320 そんなに大きくないならStringWriterで文字列に書き出して置換すれば
331 名前:デフォルトの名無しさん [2009/07/05(日) 14:28:39 ] DataGridViewにdataset内部でリレーションシップを設定したTableA TableBのフィールドを表示したいんです TableAとTableBは1対多結合になります フィールドは同一のDataGridViewで表示したい TaleBを連結したDataGridViewに非連結列を追加してTableAのフィールドを検索して貼り付けることはできそうですが なんかデザイングリッド上でぱぱっとやれそうな気がしておたずねしました 何とぞよろしくお願いいたします
332 名前:デフォルトの名無しさん [2009/07/05(日) 15:31:23 ] ググっても見つからないので質問させてください。 Textboxに入力されたデータから特定の行(ex:15行目から20行目)だけを取り出したいのですが、何か方法はないでしょうか? よろしくお願いします。
333 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 15:36:17 ] >>332 どう検索したのか興味がある Linesから適当に取得すればいいっしょ
334 名前:デフォルトの名無しさん [2009/07/05(日) 15:50:04 ] >>333 初心者故に文字列の取得方法が分かりません。 申し訳ないです。
335 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 16:16:51 ] 答え出てるじゃんw
336 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 16:18:49 ] DataGridViewをほぼ同じような表な形で印刷したいのですが、自分でライン書いて表の中のデータを書くというっ事をしなければならないんでしょうか? DataGridviewをそっくりそのままの形のレイアウトで印刷してくれるようなもっと簡単なのがあってもよさそうなのですが・・・
337 名前:デフォルトの名無しさん [2009/07/05(日) 16:22:09 ] >>335 すいません、Linesはどのように扱えばいいのでしょうか
338 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 16:24:10 ] 表形式で出力できるレポートツールを使う、ってのが一般的かね。 おれはグリッドそのまま出せてもなんもうれしくないから、必要性を感じないな。
339 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 16:28:42 ] >>337 msdn.microsoft.com/ja-jp/library/system.windows.forms.textboxbase.lines.aspx ↑を見て、何がわからないのかきちんと説明しろ。
340 名前:デフォルトの名無しさん [2009/07/05(日) 16:54:21 ] >>339 ごめんなさい これを別のTextboxに出力させる方法が分かりません。 Dim counter as Integer 'Create a string array and store the contents of the Lines property. Dim tempArray() as String tempArray = textBox1.Lines 'Loop through the array and send the contents of the array to debug window. For counter = 0 to tempArray.GetUpperBound(0) System.Diagnostics.Debug.WriteLine( tempArray(counter) ) Next
341 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 16:54:58 ] Form右上の×ボタン押したときに終了するか確認メッセージ出して、 終了の場合は閉じるようにしたいんですが、closingイベント以外で実装 はできませんか? 今やりたい事は、フォームA→フォームBを呼び出してそこから終了 した場合、上記の確認メッセージを表示して両方のフォームが落ちるようにしたいです。 フォームBを×ボタンで閉じる動作を行うとフォームAをcloseという処理を走らせたい のですが、フォームAにも上記のclosingイベントを実装する為 フォームB終了確認メッセージ後に、フォームAの終了確認メッセージが表示されてしまいます。 closingイベント内でフラグ立てて回避出来るかなと思ったら、無限ループに陥ってしまい無理でした。 どのような解決方法があるか教えていただけると幸いです。 よろしくお願いいたします。
342 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 17:19:49 ] FormB : FormClosingでキャンセルかどうか決める FormA : FormBのFormClosedで自分をCloseする FormClosingでFormBが閉じられたときに呼び出された場合確認ダイアログを出さない
343 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 17:20:14 ] >>341 > Form右上の×ボタン押したときに終了するか確認メッセージ出して、 > 終了の場合は閉じるようにしたいんですが、closingイベント以外で実装 > はできませんか? できない。 > 今やりたい事は、フォームA→フォームBを呼び出してそこから終了 > した場合、上記の確認メッセージを表示して両方のフォームが落ちるようにしたいです。 > フォームBを×ボタンで閉じる動作を行うとフォームAをcloseという処理を走らせたい Closing イベントで閉じられる理由を確認すればいいんじゃね?
344 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 17:21:03 ] >>340 ってことは、取得する方法はわかったわけだ。 設定したいなら、「別のTextBox.Text = 取得した値」でOK。
345 名前:デフォルトの名無しさん [2009/07/05(日) 17:27:40 ] >>331 ですけど ソースコードでテーブルをもう一つ作ってマージするって方法は見つけました それが正解でしょうか? コーディングなしで2つのDataGridViewで親子テーブルを作る例はいっぱいありましたが それを単一のDataGridViewで表示するのって逆に難しいんですね
346 名前:デフォルトの名無しさん [2009/07/05(日) 17:37:31 ] >>344 Dim counter As Integer Dim tempArray() As String tempArray = textBox1.Lines For counter = 0 To tempArray.GetUpperBound(0) TextBox2.Text = tempArray(counter) Next こういうことでしょうか? 行数はFor counter = 0 To tempArray.GetUpperBound(0)の数値をいじればいいのですよね?
347 名前:341 mailto:sage [2009/07/05(日) 17:58:28 ] FormBの処理 FormB Closingイベントで確認ダイアログ表示 NOを返す→e.cancel=true (これでキャンセル) YESを返す→FlgをtrueにしてFormA.close FormA 上記のFormA.closeによって、FormAのClosingイベントが呼び出される。 FlgがTrueの場合、Closingイベント内の確認ダイアログはスルー。 私としては、上記の内容でいけると思ってたんですが、 FormA.Closeを実施のところで、何度も確認ダイアログが表示され 無限ループに陥っているようでした。 また、FormBのclosingイベント内に確認ダイアログをもうけないで FormA.closeのみおいてみると何故か無限ループでエラーが出てしまいます。 その際、FormAにはClosingイベントはおいてません。 どなたか理由がわかる方いませんか?
348 名前:336 mailto:sage [2009/07/05(日) 18:18:31 ] >>338 >表形式で出力できるレポートツール とは、どういうものなのでしょうか? クリスタルレポートとかそういうものですか? 私は今、Vb2008を使ってるんですが、コントロールの一覧の中にCrystalreportがないのですが、なにか設定がいるんですかね
349 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 18:44:20 ] >>346 取得する行が決まってるなら、ループで回す必要はない >>347 わかりづらいから、きちっとコード出してみ? >>348 おまえさんの言うとおり、クリスタルレポートとか。 Edition によっては含まれてないんじゃない?
350 名前:デフォルトの名無しさん [2009/07/05(日) 19:45:30 ] >>349 できました ありがとうございます。
351 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 20:33:55 ] 初期画面をログイン画面にしたいのですが、ログイン成功時にログイン画面をクローズして別フォームを表示したらフォームが全て落ちます。助けて下さい。
352 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 20:48:35 ] 別フォームを表示してからログイン画面をクローズする sub mainからログイン画面を表示する
353 名前:336 mailto:sage [2009/07/05(日) 23:12:53 ] >>349 Express Editionなんですが、クリスタルレポートは追加できないんでしょうか?
354 名前:351 [2009/07/05(日) 23:20:33 ] >>352 メイン画面をログイン画面に設定したらログイン画面落とした時点で ほかのフォームも全て落ちちゃうんですよね。
355 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 23:22:20 ] >>353 www.microsoft.com/japan/msdn/vstudio/products/compare/default.aspx ダメだね。
356 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 23:36:56 ] >>354 ログインをメインにするから不味い、ってことだろ。
357 名前:デフォルトの名無しさん [2009/07/06(月) 01:28:08 ] >>331 ですが、データソースを見るとリレーションが効いて 親テーブルの下に子テーブルが見えてるんですが こいつをDataGridViewの単一テーブル上に展開できません tableA fieldID fieldA tableB fieldID fieldB fieldID fieldA fieldB のような表現をしたいのですが・・・やはり無理でしょうか?
358 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 02:13:56 ] 表示用に列一つ追加してExpression使うのが一番楽かな
359 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 02:24:49 ] あ、DataColumn.Expressionな
360 名前:デフォルトの名無しさん [2009/07/06(月) 10:10:53 ] >>358 やっぱりそうですか 誰かに言って貰わないと楽ちんな方法を知らずに回り道してるんじゃないかと心配で 先に進めないもので・・・ ありがとうございました
361 名前:デフォルトの名無しさん [2009/07/06(月) 11:56:20 ] >>331 たびたびすみません。 datasetのデザイナで子テーブルにフィールドを追加しフィールドプロパティのExpressionに TableA.FieldAを設定すると リレーションシップ0が見あたりません そこで parent(リレーションシップ名).FiedlAを設定すると リレーションシップ名が見あたりません となります。datasetデザイナ上では確かにリレーションシップを設定してその名前をコピペしてるので間違いないと思うのですが もしかしてコード上で設定しないといけないのでしょうか?
362 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 12:14:49 ] Expression設定してるところでブレークポイント設定して確認すれ
363 名前:デフォルトの名無しさん [2009/07/06(月) 13:05:59 ] >>362 datasetデザイナ上でプロパティを設定してるだけなので・・・・ よっぽどまぬけなことをやってるのかググっても該当するものは出てこず・・・ orz
364 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 13:19:17 ] 現在のプロジェクトをExpressionで検索してみろよ
365 名前:デフォルトの名無しさん [2009/07/06(月) 13:25:32 ] >>364 やっと意味がわかりました。なるほど・・・ で、やっと設定できました 原因は不明ですが、ビルドしたら親テーブルのフィールドを認識するようになりました お騒がせしました
366 名前:デフォルトの名無しさん [2009/07/06(月) 19:24:59 ] すみません VBからTwitterに文字列を投稿する方法はAPI以外にないでしょうか?
367 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 21:54:39 ] これがWin32APIの事を指していたら、それはそれで面白いかもしれんね。
368 名前:デフォルトの名無しさん [2009/07/06(月) 21:55:30 ] >>367 TwitterAPIの方です
369 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 22:15:26 ] SerialPortにて0.1Sec毎に送受の通信を行っているプログラムなんですが フォームに配置しているボタンを連打したり、データグリッドを更新させたりしてプログラムに一次的に負荷をかけると、その間だけ送受の通信が止まってしまいます。 ためしにForm2を作ってその別のフォームで単独で通信させていてもForm1にあるボタン等を連打して負荷をかけると同じような結果でした。 こういう問題はどういう風に解決したらよろしいのでしょうか? どうかご助言のほうをよろしくお願いします。
370 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 22:35:11 ] 負荷とか関係なく、UIスレッドで通信しているのが原因の予感。 スレッドを分ければ一瞬で解決すると見た。
371 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 22:35:23 ] 別のスレッドで通信を処理すればいいんじゃね?
372 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 22:42:11 ] UIスレッド?ですか VB2008を使っているのですが、スレッドとはどういう事なのでしょうか?
373 名前:デフォルトの名無しさん [2009/07/06(月) 22:50:21 ] マルチスレッドプログラミングってやつ 原則的に時間のかかる処理は別のスレッドを作ってそっちで動かさないとUIが固まります 特別な技術や注意が必要なのでしっかり勉強しましょう
374 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 22:51:31 ] 「ワーカースレッド」でMSDN を検索してこい。
375 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 22:58:14 ] 『.NETマルチスレッドプログラミング 1:スレッドの実行と同期』 codezine.jp/article/detail/144?p=1 『.NETマルチスレッドプログラミング 2:非同期デリゲートとスレッドプール』 codezine.jp/article/detail/139?p=1
376 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 04:24:03 ] ありがとうございます 参考にさせていただきます なんとなくマルチスレッドの動きは分かったんですが このプログラムは送信はタイマーイベントで行っていて、受信はCOMのDataRecivedイベントで行っているのですが この場合、>>369 のように停止させたくはないので両メソッドともマルチスレッド化したほうがよろしいんでしょうか? なかなか複雑そうですね・・。
377 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 07:47:52 ] どうせDataReceivedはSerialPortが用意したスレッド上になるのだから、 データを格納した上でControl.BeginInvokeしておけば、 UIスレッドが原因で邪魔されることは無いんじゃないかな。
378 名前:376 mailto:sage [2009/07/07(火) 19:14:09 ] >>377 >データを格納した上でControl.BeginInvokeしておけば、 >UIスレッドが原因で邪魔されることは無いんじゃないかな。 すみません・・・もう少し詳しく説明していただけませんでしょうか? それと思ったのですが 現状のプログラムがDaraRecivedイベントが発生してデータを受け取ったら、そのデータのヘッダ等を確認するためにDaraRecivedイベント内で処理関数(*1)を呼び出して、最終的に変数にデータを格納する処理にしています そしてフォームに配置したタイマーイベントで、その格納した変数にアクセスしデータを読み取るようにしています。 DaraRecivedイベントから呼び出した上記の(*1)の処理関数もDataRecivedイベントと同じスレッド、つまりフォームが実行されているスレッドとは別で実行されているということなんですよね? ということは、既に受信処理は別のスレッドで処理されていたということなんですよね この場合、フォームに配置したタイマーイベントで行っている送信処理のみがフォームと同スレッドな為にフォーム操作時に停止していると判断して 結果的には送信処理のみを別スレッドにすれば問題は解決しそうですね マルチスレッドについては教わった解説サイトを見て調べるとして ・・・タイマーイベント内の、送信処理を別スレッドにするべきなんでしょうか それともこのタイマーイベント自体を別スレッドにしないといけないんでしょうか? タイマーイベントはフォームを操作したとして途切れることはないのかな
379 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 19:34:19 ] 送信処理を別スレッドにしてみて、改善されるか試してみなよ。 今後のことを考えれば、スレッド使えないと自分が大変なんだからさ。
380 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 19:46:17 ] System.Timers.Timerの方を使えば、 勝手に手持ちのスレッドプールからイベントを起こしてくれるから、 スレッドを一から作る必要は無いんじゃないかな。 UIスレッドとは無関係にイベントは発生するから、止まる事も無いはず。
381 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 22:00:04 ] Oracleと繋ぐときにOracle Clientを使わない方法って無いんですか?
382 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 22:02:18 ] ODP.NETでもODBCでも
383 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 22:19:17 ] >>382 ODP.NETやODBCだと、exeの配布先のマシンに オラクルのクライアントがインストールされていなくても SQLの実行などができますか?
384 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 22:25:49 ] まさか 質問はちゃんと要件をまとめてからしてくれよ
385 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 22:31:15 ] >>384 じゃ、exeの配布先のマシンには Oracleのクライアントソフト(.Net)は必須なんですね?
386 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 22:34:17 ] そもそも今現在受信処理と送信処理はちゃんと(うまく)同期とって動いてるの?
387 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 22:36:04 ] Oracleのインストールは必須 .NETからOracleへのアクセスはSystem.Data.OracleClientやSystem.Data.Odbcなら標準ライブラリに用意されてる > Oracleのクライアントソフト(.Net) って何指してるの?
388 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 22:36:30 ] Oracleのクライアントソフト(.Net)ってなんだよ。 Oracleのネイティブなクライアント(OCIとか)と .NETのプロバイダは別物だぞ。 さらにDataDirectなどの、Oracleのネイティブなクライアントが 不要なプロバイダもあることはある。
389 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 22:39:23 ] ありがとうございます。 納得しました。
390 名前:デフォルトの名無しさん [2009/07/08(水) 16:42:49 ] VB2005でアプリを開発しています。 あるファイルが他のなんらかのアプリケーションで既に開かれているかどうかを調べるにはどうすれば良いでしょうか? ファイル名から、そのファイルを開いているアプリケーションが何なのかを知りたいのです。 開発しているアプリからデータを既存のファイルに上書きでエクスポートしようとした時、 他のアプリでそのファイルが開かれていればエラーになってしまうので、どのアプリがその ファイルを開いているかをユーザに通知したいのです。 どうぞよろしくお願いいたします。
391 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 16:49:29 ] 無理じゃないかな、ハンドルの継承とかあるし
392 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 17:01:02 ] なんかAPIができたときいたことがある
393 名前:390 mailto:sage [2009/07/08(水) 17:28:25 ] >>391 >>392 レスありがとうございます。 とりあえず現時点では「ファイルが他のアプリケーションで使用されていないことを確認してください。」と メッセージボックスを表示しています。 たとえば、開発しているアプリから xls ファイルでエクスポートしてそのファイルが Excel で開かれていれば ユーザは Excel というアプリを自分で確認してくれるのですが、別のアプリでその xls ファイルを読み込んで いる場合、ユーザはその xls ファイルが開かれているということに気づきにくいみたいですので、どのアプリが その xls ファイルを開いているのか通知したいんです... openfiles というコマンドがあるみたいですが、これは非公開APIを使用しているかも...みたいな記述は 見かけました。 ただこのコマンドを使用するにはシステムのパフォーマンスが低下する可能性があるとの事(openfiles.exe が ファイルのトレースを行うのでオーバーヘッドが発生)で、このコマンドを使用するには抵抗があります。 ttp://www.atmarkit.co.jp/fwin2ktips/306openfiles/openfiles.html 何か妙案はないかな...
394 名前:デフォルトの名無しさん [2009/07/08(水) 19:55:41 ] 使い終わったらOFFにすればいいんだろ
395 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 20:47:51 ] >>393 technet.microsoft.com/ja-jp/sysinternals/bb896656 (en-us).aspx これはだめ?
396 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 20:51:10 ] VB2008を使用しています。 Form1とForm2を作成し、Form1からForm2を以下のようにして表示させました。 [Class Main] Public Sub Main() Application.Run(New Form1) End Sub [Class Form1] Private Sub Form1_Load( 略 ) Form2.Show() End Sub Public Sub SetTextBox( str ) TextBox1.Text = str End Sub [Class Form2] Private Sub Button1_Click( 略 ) Form1.SetTextBox("test") End Sub このとき、Form2のボタンからForm1のTextBoxに文字列をセットできないのは Application.RunでNewしているForm1にアクセス出来ていないからでしょうか?
397 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 20:56:46 ] >>393 自分が開いてるかどうかなら COM経由で開いてる文書一覧が取得できなかったっけ? 他PCが開いているかどうかなら 開かれていたらどうしたいのかによるんじゃね? そもそもExcelが排他かけないんだし…
398 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 22:05:21 ] >>396 よくわからんけど Form1.TextBox.Text = "test" は、ダメなの?
399 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 22:09:43 ] >>396 VBは過去のしがらみにより、フォームのインスタンスを生成しなくても フォームにアクセスできる。 この場合のフォームのインスタンスは、既定のインスタンスとか呼ばれてる >Application.RunでNewしているForm1にアクセス出来ていないからでしょうか その通り。Newすると、既定のインスタンスじゃないインスタンスが生成されてる Form2が呼んでるForm1はインスタンス指定がないから既定のインスタンスのForm1 Application.Run(Form1)で既定のインスタンスのForm1を表示させれば思った通りの動作
400 名前:デフォルトの名無しさん [2009/07/08(水) 22:18:24 ] 過去のしがらみというか、オブジェクト指向がわからない人のためにVB2005になってわざわざ導入されたんだよ VBユーザーは怒るべき
401 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 00:07:02 ] >>396 2008は持っていないのですが、VB2005で実験してみたところ、普通に書き込みされました。 Public Class Main Public Form1 as new Form1 Public Sub Main() Application.Run(Form1) End Sub End Class ってやってもダメだろうか。 実験その1 Public Class Main Public MyForm1 as new Form1 Public Sub Main() Application.Run(MyForm1) End Sub End Class Public Class Form2 Private Sub Button1_Click(略 Form1.SetTextBox("test") End Sub End Class Form1は一緒ね。結果は、正常に?書き込み動作された。 MyForm1っていうForm1のインスタンスが、Form1って名前でアクセスできるみたい。 仕様としては嫌だなぁ。 続きます・・・
402 名前:401 mailto:sage [2009/07/09(木) 00:15:44 ] 実験その2 Public Class Main Public MyForm1 as new Form1 Public Sub Main() Application.Run(MyForm1) End Sub End Class Public Class Form2 Public MyForm1_2 as new Form1 Private Sub Button1_Click(略 MyForm1_2.SetTextBox("test") End Sub End Class Form1は例によって一緒。 結果は、書き込みされず。 見えないMyForm2にアクセスしている模様。 ちなみにこの後 MyForm2.Show とすると、書き込み済みで表示される。 これはまぁ普通。 もう少し続きます・・・
403 名前:401 mailto:sage [2009/07/09(木) 00:25:50 ] 実験その2 Public Class Main Public MyForm1 as new Form1 Public Sub Main() Application.Run(MyForm1) End Sub End Class Public Class Form2 Public MyForm1_2 as new Form1 Private Sub Button1_Click(略 MyForm1_2.Show Form1.SetTextBox("test") End Sub End Class Form1は例によって一緒。 結果は、MyForm1のフォームに書き込みされました。 MyForm1とMyForm1_2という二つのForm1がインスタンス化されていて、 Form1という名前ではどちらか判断できないのですが、結果はそういうことで。 最初インスタンス化したClassの別名になっている? 実際の内部挙動はわかりません。 これもイケてないなぁ。 以上、長文スマソ
404 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 01:01:51 ] ↑ 横槍を入れることで疑問を解消させてもらう新しい形で 質問させて頂きます。 2つめの実験(>>402 )で、 どうして書き込みされたフォームが見えないのかわかりません。 MyForm2 というのは、MyForm1_2 のことですよね? 3つめの実験(>>403 )は、 結局、MyForm1にはアクセスしていない、ということではないですか? Formというクラスは、インスタンスを作らなくてもアクセスできる Shared(静的)な要素を持っているのでしょうか。 (>>399 )さんが言っていることは、 デザイナで作成するForm1には、自分自身のインスタンスをあらわす「Form1」という 要素がSharedか何かで自動的に定義される、ということなのでしょうか。
405 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 02:52:21 ] >>400 既定のインスタンスってのは、VB6にはあった .NETになっていったん廃止されて2005で復活らしい >>401 >VB2005で実験してみたところ、普通に書き込みされました 手元に2005ないんで試せないが、そうだとすると、2005と2008で動作が違うといことに 実験の内容から考察するに、2005でフォームをnewすると、 1個目のインスタンスは既定のインスタンス戻してるっぽいな 2008なら1回目のnewから既定のインスタンスと別のインスタンス作ってるっぽい >>404 二つ目の実験でMyForm1_2は、Form2の中でnewされた(Form1の)インスタンス Application.Runされている(=表示されている)のはMainでnewされた(Form1の)インスタンス これは明らかに別物だから>401が言うとおりまあ普通 三つ目の実験だが、 Form1.SetTextBox("test") でForm1って変数はないから、 これは既定のインスタンスに書き込みにいってる MyForm1が書き込まれたってことは、MyForm1のnewで既定のインスタンス取得してると思われ 2008で実験その3やると、どっちのフォームにも書きこまれない これはMyForm1もMyForm1_2も既定のインスタンスとは別のインスタンスだってことだと
406 名前:404 mailto:sage [2009/07/09(木) 05:13:06 ] なるほど、既定のインスタンスがどういうものなのか、よくわかった。 で、2005ではMain クラスの Main メソッドで new されて、かつ Application.Run で使用されたフォームは、 そのフォームクラスの既定のインスタンスになるのか。 つまりこれは既定のインスタンスになるための十分条件なわけだけど、 最低限必要な条件って、上記のうちどれだろ。。。 ま、とりあえず横槍質問はこのくらいにしときます。
407 名前:396 mailto:sage [2009/07/09(木) 09:23:18 ] >>398-406 レスありがとうございます。 >>399 詳しい説明をありがとうございます。 Application.Run(Form1) で期待通りの動作が出来ました。 >>401 実験をありがとうございます。 VB2005 と VB2008 で動作が異なっている事が分りました。
408 名前:デフォルトの名無しさん [2009/07/09(木) 09:34:02 ] VB.NETはBasicの後継言語と聞いたので質問なのだが、 N88Basic にあった、Play 文はどこにいったんですか? 昔、Play文で作曲しまくっていたので、 VB.NETでもどうしてもPlay文を使いたいのです。 どうか、お願いします。
409 名前:デフォルトの名無しさん [2009/07/09(木) 09:41:35 ] 後継言語ではありません 全くの別物です だいたい、そういう組み込みの「〜文」などというのはVB.NETにはほとんど存在しません .NETのライブラリにも無いのでWin32API使いましょう
410 名前:390 mailto:sage [2009/07/09(木) 09:52:38 ] >>394 ON/OFFを切り替える度にPCの再起動が必要になります。 これは実運用上、非現実的です。 >>395 プロセスが利用しているDLLを表示するためのコマンドラインツールですよね? ちょっと目的とは異なるかと思うんです... >>397 COM経由で開いているファイルの一覧を取得することができるんですか!? ちょっと調べてみます。 環境的にはスタンドアロンの場合が多いです。 私が開発しているアプリから xls 形式でエクスポート上書き保存できない場合、 スタンドアロン環境でかつ Excel は起動していない時、ユーザは「なんで?」と なってしまうんです。他アプリが該当の xls ファイルを掴んでいるケースが あったりするので、ユーザに「xxx.exe でその xls が開かれていますよ。」と 通知したいんです。
411 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 11:18:53 ] >>406 なんかちょっと勘違いしてるっぽいが フォームの「既定のインスタンス」ってのは、そのインスタンスを保持する変数がなくても 明示的に(newで)作成しなくても存在する特殊なインスタンスのこと 普通のオブジェクトだと、保持する変数がないインスタンスはGCで回収される 明示的にnewされた普通のインスタンスが「規定」になるわけではないよ
412 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 12:02:40 ] >>397 取得できるのは自プロセスが開いた一覧だね
413 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 13:31:24 ] >>410 technet.microsoft.com/ja-jp/sysinternals/bb896653.aspx こいつでファイル指定して開いてるプロセス検索できる こいつがどうやってるかわからんが、同じことやれば可能なはずだ
414 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 15:47:11 ] >>413 openfiles.exeと同じことだろ >>410 ttp://oshiete1.goo.ne.jp/qa1652898.html
415 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 16:13:00 ] >>414 Process Explorerは、openfiles.exeみたいに(設定変えて)再起動しなくても使えるみたいだが?
416 名前:390 mailto:sage [2009/07/09(木) 17:09:04 ] >>412-415 レスありがとうございます。 >>413 のご指摘のようなことを自前で実装したいのですが仕組みがわからないです。 せめて Process Explorer にファイル名をパラメータで渡して結果を受け取る、みたいな ことができれば嬉しいんですが。 エンドユーザはコンピュータに不慣れな人が多いので、なるべく必要な機能を自前で 実装してあげたいのです。 というか、このような機能の需要て少ないんでしょうかね。 .NetFramework4.0あたりで機能を実装してくれたら...ないか。 ひとまず>>414 氏が提示してくれたリンクを見ながら闘ってみます。
417 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 19:35:11 ] Dim StartQuery As New EventQuery( _ "SELECT * FROM" & _ " __InstanceCreationEvent WITHIN 1 " & _ "WHERE TargetInstance isa ""Win32_Process""") StartWatcher = New ManagementEventWatcher(StartQuery) AddHandler StartWatcher.EventArrived, AddressOf Me.ProcessArrived Private Sub ProcessArrived(ByVal sender As Object, ByVal e As EventArrivedEventArgs) msgbox("Arrived") Me.RefreshList() End Sub プロセスの一覧を表示していて新規で何かが起動したら更新するというようにやってるんだけど "Arrived"メッセージは出るけどRefreshListが呼ばれない 特にエラーも何も出ない たぶんMeの参照先が違ってるんだろうけどこれはどうすればいいの?
418 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 19:44:12 ] RefreshListが呼ばれないとどうやって判断したのさ 取り敢えずMsgBoxはDebug.Print辺りに置き換えてステップ実行 多分別スレッドでイベントハンドラが呼び出されてるから
419 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 19:47:28 ] >>418 RefreshListの中にmsgboxとconsole.write両方を入れてみたけど反応なし エラーも何も出ない 別スレッドで呼び出されてるのは分かってるwその回避方法を聞いてるのw
420 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 19:52:29 ] だからまずステップ実行して確認しろよ
421 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 19:52:53 ] そこまでわかってるなら MeにContol.Invoke使ってUIスレッドでRefreshList()呼べばいいじゃん
422 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 20:00:51 ] >>421 そういうものがあるのを今見つけて試してる
423 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 20:06:48 ] 出来たw
424 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 21:47:25 ] >別スレッドで呼び出されてるのは分かってるwその回避方法を聞いてるのw 聞いてないだろどう見ても、あほかよ
425 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 22:58:43 ] >>424 Meの参照先が違うって書いてるのにそれが読み取れないってどんだけ素人だよw あーちなみにVB.Netまだ1週間目w
426 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 23:07:07 ] 別スレッドで参照先が異なるとかどこの世界のスレッドだよ
427 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 23:37:15 ] ちょっとVB.Netしろうとの俺に教えてくれ Meの参照先ってインスタンスだよな インスタンスとスレッドって同じなのか?
428 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 23:41:21 ] 何を言っているのか分からないぐらい全然違うもの
429 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 23:45:15 ] >>427 >インスタンスとスレッドって同じなのか? 違うよ
430 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 00:18:44 ] IEのアドレスバーの左側のeのurlのアイコンを コントロールへD&DしてURLを取得する方法について >>216 で教えて頂いたのですが このアイコンをアプリケーションのexeファイルのアイコンにドロップして アプリケーションを起動した場合に、urlを取得する方法を教えて頂きたいです。 ファイルやフォルダのドロップの情報の取得は cmds = System.Environment.GetCommandLineArgs で確認できたのですが、urlのアイコンの場合は この中には入らないようです。
431 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 00:27:48 ] そもそもドロップでexe実行できたっけ?
432 名前:デフォルトの名無しさん [2009/07/10(金) 01:52:37 ] >>427 ・インスタンスとは・・・ 例えば、クラスを自分で定義する場合、 public class MyClass 〜 end class と記述する。で、このクラスを form1 内で使う場合、例えば次のように記述する。 dim mc1 as new MyClass dim mc2 as MyClass mc2 = new MyClass これで、mc1、mc2 というのが、クラス名「MyClass」のインスタンスということになる。 new +「クラス名」で、そのクラスのインスタンスを作ることができる、というわけ。 インスタンスというのは、変数やクラスを代入するための入れ物、と思っておけばよいはず。 as の後ろにくる MyClass とか integer とかは、別箇所で定義されているクラス名(型名)でしかない。 実際に値を代入してプログラム内で参照するのは、そのインスタンスである。 だから、一つのクラスにいろいろな値をセットしたものを別々に保持できる。(mc1 と mc2 のように) ・スレッドとは・・・ プログラムの実行単位?とでもいったらいいのかな。 スレッド内のプログラムは、上から下に順番に実行される。 条件分岐やループで実行順が前後することはあっても、 一つの行を実行し終わるまで、次の行は実行されない。 スレッドを意識したプログラミングをしていなければ、通常は そういた状態になっている。(シングルスレッド) スレッドを二つ作れば、それぞれのスレッドでプログラムが上から下に順番に実行され、 ユーザーから見ると、同時に二つの行を実行しているように見える。 ファイルを読み込むとか、TCP/IP通信をするなど、時間のかかる処理を実行する場合に、 あらかじめその処理部分だけを別スレッドとして記述し、必要時にそのスレッドをスタートさせることによって、 時間のかかる処理を実行しながら、他の処理も同時に処理できるようになる。(マルチスレッド)
433 名前:427 mailto:sage [2009/07/10(金) 05:13:03 ] Meが参照するのはインスタンスでいいんだよな? >たぶんMeの参照先が違ってるんだろうけど これはつまり、別インスタンスを参照してるってことだよな んでこれから >別スレッドで呼び出されてるのは分かってる になるのはなんでかわからんのだが スレッドが違えばインスタンスは別のものなのか? インスタンスはスレッドごとに生成されるの?
434 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 06:42:26 ] インスタンスってのはプロセス固有のWindows管理IDのことだな普通なら スレッドはプロセスが異なるので別のインスタンスになる 通常のWindows概念でのインスタンスでいいのなら VBのフォームはすべて同じインスタンス スレッドは別 DLLも別 インスタンスが違うと何が起こるかというとスタックメモリが別になる つまりグローバルな変数やクラスへは感嘆には相互にアクセス出来ない
435 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 08:17:13 ] その説明は紛らわしすぎる。.NET殆ど関係ないし。 >>433 Meが参照するのはインスタンスでOK。 そして通常、インスタンスはプロセス単位で生成されることになる。 まあ、.NETのアプリケーションドメインを利用すれば、 単一プロセス内に完全に分離した環境を複数作ったりもできるのだけど、 普通は関係ないな。
436 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 09:30:33 ] >>434 >インスタンスってのはプロセス固有のWindows管理IDのことだな普通なら お前の「普通」が判らん。 VBに限らず一般にOOPLで「インスタンス」といえば、プロセス上のメモリに 割り当てられた、オブジェクトの実体。 >スレッドはプロセスが異なるので別のインスタンスになる もう喋るなw
437 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 10:37:41 ] VB2005 環境 XPPro、C2D E8400、3GBRAM、HDD80GB フォーム50個位あるプロジェクトいじってるんだけど 起動とかいろいろ遅い(起動30秒くらい、MSDNも起動20秒くらい、全般的にもっさり) ストレージがネックだと思うんですが、 大容量のHDDよりかSSDにしたほうがいいですかね? SSDで開発してる方、体感的に速くなりましたか?
438 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 11:26:47 ] >ストレージがネックだと思うんですが、 俺には >フォーム50個位ある これを最初に一気に作ってるからだと思えるんだが。
439 名前:438 mailto:sage [2009/07/10(金) 11:28:14 ] …いや、勘違い。IDEの起動が遅いっつってんのか。
440 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 11:37:41 ] CドライブにSSD使ってるけど取り敢えず我慢できないほどの遅さはないなぁ 初めからSSD入れてるからHDDとのまともな比較はできないけど DocumentExplorerでSystem.Windows.Forms.RichTextBoxのメンバ一覧開くのに3秒弱ぐらい これは単に飼い慣らされてるだけか
441 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 11:56:09 ] HDDも壊れる時は2〜3年くらいで壊れちゃうけど 開発でSSDは、ちょっと怖くない?
442 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 13:25:44 ] >>437 デザイン画面を開きまくってないよな? 開発用にわざわざSSDで入れ直すなら RAMディスクの方が簡単でよくね?
443 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 13:54:33 ] >>441 一応SLCにしてる メモリも無駄に積んでるからスワップもまずしないはず プロジェクト自体はHDDにおいてるし 投資ほどの効果があったかというと首をひねらざるを得ないのは事実 まあPCに金使うのも趣味の一環だから良いけどさ
444 名前:427 mailto:sage [2009/07/10(金) 14:00:25 ] Windowsでvb.netでの一般的な話でいいんだけど プロセスてのはほぼプログラムのEXE単位だよな んでスレッドってのは実際にCPUが仕事する単位で、 プロセスが一つ以上のスレッドをもって管理しながらプログラムを実行してる インスタンスは、プロセス単位で生成(管理)される ここまでOK? >>434 2行目以降がまったく理解できん >スレッドはプロセスが異なるので別のインスタンスになる スレッドは...インスタンスになる? スレッドはプロセスが異なる...? >VBのフォームはすべて同じインスタンス たとえばフォームを何回かnewしても、それはすべて同じインスタンス? >スレッドは別 何と別? >DLLも別 何と、何が別?元のexeとスレッドが別ってこと? >つまりグローバルな変数やクラスへは感嘆には相互にアクセス出来ない これは、自分と同じクラスの異なるインスタンス間では、って話? グローバルってのはそのクラスでpublic定義だってこと? それともそのクラスからみて上位のレベルで定義されてるってこと?
445 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 14:06:41 ] 434はスルーして良し
446 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 14:08:38 ] >>442 > デザイン画面を開きまくってないよな? 10個位開いてたので1個にしてみると80%くらいの時間になりました。 気づくと色々開いちゃってるのでこまめに閉じるようにしたほうがいいですね。 > 開発用にわざわざSSDで入れ直すなら > RAMディスクの方が簡単でよくね? Excelを大量に読み書きする処理作っててRAMディスクは使ってるんですが プロジェクト一式RAMに置いてもそう変わらなかったです。 開発環境自体も置くのはちょっと容量が厳しそう。 ありがとうございます。 お手軽に劇的な改善は難しそうな感じですかね。 VB6メインでやってて最近復帰したんですが、 その頃に比べてPCの性能は飛躍的に向上してるはずですが、 なかなか難しい物ですね。
447 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 14:32:09 ] どう考えても2010のインテリセンスは重すぎだと思う。
448 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 15:30:21 ] >>436 だたの先頭アドレスを実態と呼ぼうがIDと呼ぼうが個人の自由だが
449 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 15:32:55 ] Newするとき、しないときの見極めは 覚えるしかないのでしょうか?
450 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 15:39:14 ] マルチプロセス 複数の「プログラム」が別々のオブジェクトを参照しながら動いてる。 自分と隣の部屋のやつが、たまたま同時にスパゲティ食ってる状態。どんな食い方しても喧嘩にならない。 マルチスレッド 複数の「プログラム」が同一のオブジェクトを参照しながら動いてる。 自分ちで、兄弟どうしが一緒にスパゲティ食ってるようなもの。スパゲティの取り合いで喧嘩になる。
451 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 16:05:19 ] >>448 そうだな。便所の壁にでも書いとけ。
452 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 16:20:06 ] >>449 それって>>407 の話?
453 名前:デフォルトの名無しさん [2009/07/10(金) 17:20:57 ] 参照型のメンバを含む構造体を定義しています。 その構造体型の変数間で代入を実行しても 当然のことながら参照型のメンバはコピーされません。 C++ならば代入演算子をオーバロードすればよいのですが、 VB2008ではできません。 参照型のメンバもコピーされるようにするにはどうしたらよいでしょうか? よろしくお願いいたします。
454 名前:449 mailto:sage [2009/07/10(金) 17:24:23 ] >>452 違います。 StringやInteger は、Newをしないで使えますよね? Mathクラスは、New自体が出来ないので、 その見極めは覚えるしかないのかなと思ったので。
455 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 17:30:45 ] >>453 構造体はCのとは性質も使いどころも違うから気をつけてな。 そういうものは通常は参照型で作ってICloneable.Clone。
456 名前:453 [2009/07/10(金) 17:40:31 ] >>455 早速ありがとうございました。 ICloneable.Cloneは来週にでもちょっと調べてみます。
457 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 19:42:07 ] VB2005 デザイナでは見えないのに、 プロパティウインドウのドロップダウンに出てくる コントロールを選んで削除したいのですが、 LocationやSizeをいじっても出てきません。 どのようにすればいいでしょうか。
458 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 19:45:02 ] 直接書き換えれば良いじゃない。 どうせただのテキストなんだし。
459 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 20:08:18 ] >>454 ・Integer は値型なので New 不要。 ・String は参照型だけど他とちょっと違ってて、 文字列を代入することでコンストラクタが呼ばれるので その場合は New 不要。 ・Math に限らず、「共有メソッド」を呼び出すときは New 不要。
460 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 20:10:35 ] >>457 「ドキュメント アウトライン」 (表示メニューの その他のウィンドウにある) を出しといて フォームのデザイナを開くと、コントロールやら コンポーネントが表示されるので、そこで選択して削除。
461 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 20:21:45 ] ありがとうございます。 >>458 Designer.vb書き換えですか。 数が20個ぐらいあるので出来ればもっとスマートな方法があればと思ったんですが…。 >>460 なぜかそれでも出てこないんです。 他のコントロールはいくつかのPanelにすべて乗せているのですが それをすべて削除してドキュメントアウトライン上はFormしかない状態でも プロパティウインドウのドロップダウンには相変わらず出てきてしまいます。 とりあえず必要なコントロール(が乗っているPanel)をごっそり別の空Formに移して コードも丸ごとコピペという無理やりな方法で対処しました。
462 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 23:12:40 ] 質問です。 Manu.exe Sub.exe の2つのプログラムがあるとします。 Manu.exeからProcess.StartでSub.exeを起動しているプログラムがあるのですが、 SubをDll化してManuから参照し、呼び出すのに比べて負荷は大きいでしょうか? Subは必ずManuから呼ばれるのでSubをDll化してManuから普通に参照するように変えたいのですが 作った人が問題がなければ変えたくないと言っているので変える理由がほしいのです。 よろしくお願いします。
463 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 23:35:49 ] そりゃプロセス作るのは一仕事だけどな 何で変える理由がないのに変えたいんだよ
464 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 23:58:40 ] 別のexeだろうと、Publicで公開されているアセンブリにはアクセス可能。 exeなんて単なるブートストラップです。偉い人には(ry
465 名前:デフォルトの名無しさん [2009/07/11(土) 00:31:55 ] 入出力の受け渡しに一時ファイルを使ってるなら、 相手を直接呼ぶのに較べてものすごーく非効率
466 名前:462 mailto:sage [2009/07/11(土) 02:05:06 ] 2つのプログラムを例にあげましたが、 Sub.exe的なプログラムがこれから50個くらいできる予定でいます。 1exe=1ソリューションです。 >> 463 >プロセス作るのは一仕事 やっぱり負荷はかかるのですね。 管理がめんどそうなので変更したいと言ったのですが 却下されました。なので変更するための新たな 別の理由がほしかったのです。 >> 464 今のつくりだとMainのところにもフォームを呼び出す前に ごにょごにょ書いてあるのですが、MainもProcess.Start を使わずに呼べますか?
467 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 02:20:53 ] フォーム1個だけのソリューションを50個作って、全部exeにする?? ・・ありえんわ 何でそんな腐った設計にしたんだ・・・。
468 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 02:30:11 ] fork至上主義な人なんだろうか…… で、.NETで同じようなやり方がわからないから個別のアプリにしたとか。
469 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 02:37:36 ] そもそもプロセス分けたら普通に不便だろ。 データのやり取りとか何もないわけ?
470 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 02:39:56 ] >>467 え?普通そうしないの? 1ソリューションに全部入れちゃうの?
471 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 03:15:14 ] >>470 そりゃ必要に応じてプロジェクト分けるし、ある程度独立してたり他で使うやつとかはソリューションも分けるけど Form毎にソリューション作ったり、全部一緒にしちゃう(小規模なのは例外)なんて事は普通やらんだろ。 Form毎にソリューション分けてexeにして、Process.Startしてるやつなんて見た事がない。
472 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 03:18:00 ] >>466 その50個のフォームで一つの業務アプリになるのか? もしそうなら、一つのEXEでいいと思うがな アプリ配布に50個のexe配布とか、exeファイルのバージョン管理50個とかやっとれん >>470 もし50個のexe作るとしても、50個のプロジェクトは作るが、 ソリューションは一つで済ますのが普通じゃないかと思うのだが
473 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 09:01:26 ] VB6の頃は酔う言う作り方もしたな。.NET以降では意味がない。
474 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 09:05:51 ] >酔う言う *そういう 共通部分のモジュールをソース単位で共有してたり
475 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 16:49:13 ] >>470 アセンブリは分割しても、特に理由がない限り プロセスを複数にしないのが普通だと思うが。
476 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 03:59:45 ] Formを閉じるとき Me.close のみで Me.dispose をしなかった場合、どのような問題が発生しますか?
477 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 04:27:31 ] ガベコレが起きるまでリソースが解放されない。 まあほっといても、いつかはガベコレがリソースを解放してくれるわけですがね。 普通、Formが抱えてるリソースなんて、そんな多くないと思うし。 背景画像とか?
478 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 04:36:31 ] ダイアログフォームと非表示のMDI子フォームでない普通のモーダレスフォームなら、 CloseでDisposeされる。 この辺の動作はややこしいんでMSDNをよく見たほうがいい。
479 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 16:45:20 ] >>472 フォーム毎にexeを分けることで、業務が稼動中でもアプリを終了させずに アップデートや不具合対応が出来るからとかなんとかで、そんな話もありました。
480 名前:デフォルトの名無しさん [2009/07/12(日) 18:05:45 ] それなら共通部分をDLLに括りだすこともソース単位で共有することもできないよね? コピペコードだらけになるんだろうな
481 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 18:37:02 ] 今までVB6を使っていて、Visual Studio 2008に最近切り替えたのですが、 WinSockが見当たらなくなりました。 ひょっとして何か別のコントロールに変わってしまったのですか?
482 名前:デフォルトの名無しさん [2009/07/12(日) 18:41:09 ] コントロールなんかない System.NET名前空間やSystem.NET.Sockets名前空間にあるクラスを使う
483 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 19:08:32 ] >>480 リンクとして参照すれば共有できるよ。
484 名前:デフォルトの名無しさん [2009/07/12(日) 19:16:37 ] それで>>429 に対応しようとするとバージョン管理が大変すぎるだろ
485 名前:484 mailto:sage [2009/07/12(日) 19:22:33 ] >>479 の間違い
486 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 19:27:41 ] >>482 レスありがとうございます。 System.NET名前空間やSystem.NET.Sockets名前空間について調べてみましたが、 具体的な使い方がよくわかりませんでした。 プロジェクト→クラスでの追加したうえで、Socketを利用する、ということですか?
487 名前:デフォルトの名無しさん [2009/07/12(日) 19:32:48 ] 必要なクラスのインスタンスを作って使う これだけでわからなないなら、オブジェクト指向を勉強しろとしか言いようがない
488 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 23:48:15 ] DBの接続先をウィザードを使って設定したのですが、 なんらかの不具合が発生してDBに接続が出来なかった場合に エラーを返すような処理を作りたいです。 例えばDBに接続するところにtyr〜catch文を入れようと思うんですが、 自動で作られている部分の為、どこにあるかわかりませんでした。 どのあたりで、DBに接続している処理が記述されているのでしょうか?
489 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 00:01:58 ] >>488 メニューの[デバッグ]-[ステップ イン]で見ていけばわかるんじゃね
490 名前:488 mailto:sage [2009/07/13(月) 00:16:19 ] >>489 ちょっと試してみます。 ちなみに自動で作られた処理の部分を書き換えるのって 問題ないですよね?
491 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 00:39:31 ] 文字列の中から特定の文字列がいくつあるか数える関数を教えて
492 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 02:17:12 ] >>491 正規表現で探し出して、カウントする変数をインクリメントすりゃいい
493 名前:デフォルトの名無しさん [2009/07/13(月) 07:52:53 BE:1857300285-2BP(0)] VB初心者です。 VisualStudio2005 VBにて開発を行っています。 先輩のソースに似せようとしているのですが、 処理の起動方法がわからなくて困ってます。 フォームありのソリューションにて、下記のフォーム起動方法を Public Class Program <STAThread()> _ Shared Sub Main(ByVal CmdArgs() As String) ・・・・ Application.Run(New ClassName(param)) ・・・・ end sub end class Public Class ClassName Public Sub New(ByVal param As string) 処理 End Sub End Class consoleのソリューションにて、 Application.Runに替わる関数を見つけられません。 同じように実行するにはどうしたらいいのでしょうか?
494 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 10:11:09 ] >>493 Application.Run() は MSDN にも 「アプリケーション メッセージ ループの実行を開始する」 と書かれているように、イベント・ドリブンなアプリケーションのときに使うもの。 コンソールアプリなら、その Main の中に必要な処理を書けばよい。
495 名前:デフォルトの名無しさん [2009/07/13(月) 10:38:03 ] 現在、.NETアプリケーションでWebBrowserコントロールにおいて フォルダのExplorer表示を出しています。そうすると必ずあの青色の 「タスクメニュー」が現れてきます。これを消す方法を探しています。 C#, C♯, C#相談室 Part53 pc12.2ch.net/test/read.cgi/tech/1245150671/199 にて質問してはおりましたものの回答得られませんでした。もし方法ご存知 の方おられましたら、ご指導のほど何卒よろしくお願いします。
496 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 11:01:21 ] >>480 DLLは使わずに、共通部分のソースファイルを共有してた。 それを修正するとかは出来ない決まりになってた。 >>484 バージョン管理は大変だったと思う。 担当したのが一部のフォーム(exe)だったから 出来上がったら渡すだけだったしね。
497 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 11:12:53 ] VB6の頃そのままのやり方を続けてることがあるよね。 システムハンガリアンを使わされるのはつらいよぉ。
498 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 21:10:40 ] >>495 知らんけど、BHO とか使わないと無理じゃね?
499 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 21:26:54 ] ハンガリアンってコントロール名に使ってもよろしくないの? btnとかtxtとかlblとか 未だに使ってるんだけれども… ダメなら初心者の内に勉強しなおしたい
500 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 21:29:32 ] 別にOK
501 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 03:34:45 ] btnやtxtはアプリケーション的に意味があるからOK。 最近だと入力支援があるうえ画面も広いからbuttonHoge, fugaTextと コントロール名をそのままくっつけることも多い。 無意味なのはクラスのインスタンスにclsHoge, objFugaと名前をつけることだな。
502 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 09:23:22 ] まあ実際は仕事だと変な規則のまま 伝統みたいになってるところが多いよなあ
503 名前:453 [2009/07/14(火) 17:07:24 ] 遅くなりましたが、ICloneable.Clone で試作してみました。 ディープコピーするには、 a = b.CloneCopy() みたいに、クローンを作成して代入しかないんですね。 結局、ディープコピーの方法を用意してあげても a = b が、禁止できない以上、バグの温床になりそうです。 なぜ、VBは代入演算子のオーバロードができないんだ。使えない。
504 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 17:07:55 ] System.IO.Directory.Delete(currentfolder) If System.IO.Directory.GetDirectories(parentfolder).Length = 0 Then System.IO.Directory.Delete(parentfolder) End If というように空になったら親フォルダをも削除したいのですが ときどき空になっても空と認識しない場合があります。 フォルダの削除が終わるのを待機するにはどうしたらいいでしょうか?
505 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 17:24:56 ] >>503 代入先の変数の型で代入の動作が変わる方がよっぽどバグの温床だろjk
506 名前:453 [2009/07/14(火) 17:37:59 ] >>505 喧嘩をするつもりはないですが、 この型は、a = b でもいいけれど、 こっちの型は、a = b はダメ! というのも、実際のところ運用が難しいなと思っただけです。 ようするに、参照型を含む構造体は作るなということですね。
507 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 19:34:59 ] > ようするに、参照型を含む構造体は作るなということですね。 何の関係もない まあ>>500 が考える構造体と.NETが想定してる値型は別物なんだろう
508 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 20:28:10 ] 構造体もインターフェースの実装ができるのだから、 素直にICloneableを実装すればいい。
509 名前:デフォルトの名無しさん [2009/07/14(火) 21:05:06 ] まあCloneが必要になるなら、多くの場合、構造体を使う意味がない (使うべきでない) クラスを使うべき
510 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:10:19 ] ICloneable.Clone()はobject型だからboxingが発生しちゃうんだよね。 C++などで構造体を使うケースは、まずクラスを使うものだと思って間違いない。
511 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:26:00 ] せめてクラス/構造体ではなくC++/CLIみたいに参照型/値型って命名だったら… 453には無力だけど勘違いは多少減ったかも知れない
512 名前:デフォルトの名無しさん [2009/07/14(火) 21:26:01 ] >>506 の指摘はあながち的外れではないわな 構造体を使うのが間違ってる もともと参照型なら問題にならない
513 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:29:37 ] vb.netではC言語で言うところのポインタはないのですか? 名前が違うだけで中身が同じ構造体を処理したいんだけど。
514 名前:デフォルトの名無しさん [2009/07/14(火) 21:32:07 ] >>511 C++/CLIでは参照クラス/値クラスだよ 参照型/値型とクラス/値型は意味が違う >>513 参照型 クラス
515 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:37:28 ] C++/CLIのは文書で説明してもややこしいだけだな。 参照型 ref class/ref struct 値型 value class/value struct classとstructの違いはメンバーのスコープのデフォルトがprivateかpublicかの違いだけ。 値型はユーザー定義(構造を持った)値型とプリミティブ(基本)型の2つ。
516 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:41:47 ] >>513 ない
517 名前:デフォルトの名無しさん [2009/07/14(火) 21:42:51 ] enum classも忘れないであげてください プリミティブ型というとプリミティブ型も構造体だろとか言う奴がでてきそうだが .NETではプリミティブ型は実際に存在する 型情報を擬装してるだけ
518 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:43:11 ] C++/CLI持ち出すんだからそれは当然知ってる VBが参照型と値型をわけるのにClass/Structureってキーワードを使ったのが残念だったという話 >>513 そんな古くさいことは古くさい言語でやってれば十分です、みたいな
519 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:46:00 ] そういえばVBにはunsafeはなかったね。
520 名前:デフォルトの名無しさん [2009/07/14(火) 22:10:11 ] >>513 考え方が違うんだ コピーが渡るかポインタが渡るかは型の種類によって決まる。 前者は値型、後者は参照型と呼ばれる。構造体は値型。 ポインタ渡しされるようにするには構造体ではなくクラスとして定義する
521 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 22:12:34 ] で、クラスとして定義すれば、 > 名前が違うだけで中身が同じ構造体を処理したい は実現できるの?
522 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 22:18:37 ] StructLayout属性、FieldOffset属性で何とかなるが、 メモリ上のイメージを意識するようなプログラムは、 プラットフォーム呼び出しなどをのぞき極力避けるべきだな。
523 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 22:21:30 ] へー。できるんだ。知らなかった。 StructLayout/FieldOffset 属性って P/Invoke のときにしか使えないもんだと思ってた。 >>513 じゃないけど、勉強になったよ。教えてくれてありがとう。
524 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 22:36:23 ] VBの超手抜き機能、遅延バインディングを忘れてはいないか?
525 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 22:56:29 ] VisualStudio使ってるとイチイチ警告出るからウザイ
526 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 23:01:54 ] VB2010では「DLRを利用したメタプログラミング」と言い張れます
527 名前:デフォルトの名無しさん [2009/07/14(火) 23:56:13 ] MethodInvoker を使って子スレッドから親コントロールの値を変える一番簡単なサンプルコードをお願いします C#だとあるんだけど構文が特殊でぜんぜんわかりません TextBox1.text="hoge" TextBox2.text="hogehoge" これをやりたんです お願いします
528 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 00:03:57 ] C#のソースがあるならネットにコンバータが転がってるから変換してみれ
529 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 00:16:12 ] 俺はこう書いてるけど、やたらめんどくさいね。C#だともっと簡単なんだっけ? Delegate Sub hogeDelegate(ByVal c As Control, ByVal s As String) Sub SetText(ByVal c As Control, ByVal s As String) c.Text = s End Sub Sub ThreadSafe_SetText(ByVal c As Control, ByVal s As String) c.Invoke(New hogeDelegate(AddressOf SetText), c, s) End Sub で、使うときに ThreadSafe_SetText(TexxtBox1, "hoge")
530 名前:デフォルトの名無しさん [2009/07/15(水) 00:24:36 ] スペシャルありがとうございます! ちょっとやってみます! C#は仮想関たら使って意味がわかんないんですが、かえってこの方が意味がわかりやすいですね
531 名前:デフォルトの名無しさん [2009/07/16(木) 02:31:27 ] 画面をキャプチャーして高速で画像を処理したいのですが 画面をモノクロでキャプチャーすることは出来ますか? やりたいのは キャプチャーしたデータを2色に変換 手持ちの2色の画像データと比較して類似部分を調べる というものなのですが、キャプチャーの段階で2色ができれば 変換の手間が省けるかなと思いました。 100*100ピクセルくらいのサイズの画像を 一秒以内に何十枚か処理したいです。
532 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 03:22:41 ] VS2008 でプログラム内からGridViewを複製し、 複数個のGridViewを表示しようとしているのですが、 そもそもGridViewにはDataTableみたくCloneメソッドは用意されていないのでしょうか? というのも、プログラム内からGridViewのインスタンスを作成し、行>列・・・色 等を 作成していけば確かにGridViewを動的に作成する事はできるのですが、 面倒です。 DataTableにはDataTable.Cloneというメソッドが用意されているのに、 GridViewにはGridViewの構造をコピーするメソッド(機能)は用意されていないのでしょうか?
533 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 09:39:30 ] >>531 >一秒以内に何十枚か VB単体だと難しそうだねえ。 どっかでライブラリ (DLL) 探してきて (勿論、C/C++ で自作も可) P/Invoke で呼び出すとかした方がいいかも知んない。 >>532 マルチすんな糞が
534 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 09:59:27 ] APIべったりでできないことはないだろうけどVB関係ないしVBでやる意味もないな 画像処理はせめてポインタ使える言語でやった方が…
535 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 10:05:14 ] OpenCVでいいじゃないか
536 名前:デフォルトの名無しさん [2009/07/17(金) 09:27:16 ] 教えてください #Region定義行や関数の頭としっぽの左側にソースを隠すことができる +マークがありますけど、この呼び方はなんというのでしょうか? キーボードショートカット操作で隠したり表示させたりする方法を 検索したいのですが用語がわからず困っています。
537 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 09:39:36 ] >>536 コードをアウトライン表示する/非表示にする
538 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 18:14:54 ] フォームのプロパティにStartpositionがないのですが、どうしてですか?
539 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 00:16:04 ] 作り手がそうしてるから
540 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 02:59:07 ] >>538 あるよ
541 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 21:16:58 ] System.Net.Dnsでは、アドレスとホスト名しか参照できないみたいなんですが、 txtレコードをクエリするいい方法ないですか? 外部コンポーネントで何かないか、 WindowsAPIで呼び出してできる例とかあれば良いんですが それ以外で思いつくのは NSLOOKUPを呼び出す ソケットでDNSクエリ自作 ぐらいだが、どっちもあんまりやりたくない
542 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 21:31:27 ] nslookupもどきが可能になるコンポーネントがあったような・・・ これだったかな? www.codeproject.com/KB/IP/dnslookupdotnet.aspx
543 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 22:44:33 ] iphelper API でできた気がする。確か、MX は引けた。
544 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 12:22:30 ] 非常に初歩的で申し訳ないのですが テキストボックス(複数行)の最終行を取得するにはどうすればよいでしょうか? TextBoxのヘルプ等見たのですが見つけられませんでした。 感覚的には lastLine = tboInput.GetLastLine() のような感じで求められるのではと思っているのですが。 ご存知の方ご教示お願いします。
545 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 12:40:18 ] ズバリってのはないと思った 末尾の文字位置から行を求める方法とか… lastLine = tboInput.GetLineFromCharIndex(tboInput.Text.Length - 1)
546 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 12:42:18 ] あ、行の文字列の取得なのか >>545 で得られるのは行インデクスです
547 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 12:45:41 ] Lines()プロパティでいったん全行を取得してどうこうするのは無駄が多いかな Dim allLines() As String = textbox.Lines() lastLine = allLines(allLines.Length -1)
548 名前:544 mailto:sage [2009/07/19(日) 13:36:30 ] >>545-547 早速のレスありがとうございます。 >あ、行の文字列の取得なのか 分かりにくくて済みません。まさに最終行のインデックスです。 ですから>>545 のご回答が教えたいただきたかったことになります。 今ほどプログラムに組み込んだところうまくいきました。 大変助かりました。ありがとうございました。 >>547 も参考にさせていただきます。
549 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 02:39:47 ] MaskedTextBoxで時間の入力欄を作っております。 入力欄をhh時mm分という表記にしたのですが、hhを入力した後、 カーソルを"時"の後ろに自動で動くようにしたいと思っています。 (mmからbackspaceで戻った際も同様にカーソルを移動させたい) ACCESSでは特にプログラム組まなくてもそのような動作が出来ていたのですが 、VB.NETでは自分で実装が必要ですよね? どのようにすればいいか教えてください。 お願いいたします。
550 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 05:11:47 ] 共有ファイルサーバー上にAccessのmdbファイルを置いて、 各PC上からVB.NETで作成したアプリで接続するような形のシステム を作っているのですが、ネットワークが繋がらない等の理由で DBにアクセス出来なかったときにエラーを返す処理をどのように すればよいかわかりません。 現在は、下記のような方法で起動時にDBのテーブルからデータが正常に取得 出来なかった場合、エラーを返すようにしています。 try 〜TableAdapter.Fill(〜dataset.〜テーブル) catch Msgbox("〜テーブルからデータを取得できませんでした") end try この場合だと、DBに接続出来なかったのか、テーブルに不正なデータが入っていて 取得出来なかったのか判断がつきません。 現在DBへ接続しているのかという状況を返すメソッドがあれば教えてください。
551 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 13:31:12 ] >>550 ふつー、catch でexception拾うだろ。
552 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 13:35:09 ] まあ最初の2行で既に失敗臭がするけどな。
553 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 14:01:39 ] >>552 俺も最初の2行でもう読む気うせたw
554 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 15:42:09 ] >>553 Accessって時点で地雷臭しかしないからな
555 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 15:45:08 ] Accessというよりmdbを共有するってのがな
556 名前:550 mailto:sage [2009/07/20(月) 17:26:18 ] >>555 じゃあどうすればいいんですか? DBサーバーは会社で立てれないんでmdbファイルを共有くらいしか 思いつきませんでした。 納期は迫ってますが、自社から依頼された開発なのである程度は自分で 仕様決めてよいので今からでもなんとか変更できます。 アドバイス下さい。
557 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 17:28:38 ] DB サーバーを立てられない、ってことなら、壊れるのを覚悟で mdb でいいだろ。
558 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 17:41:09 ] >>556 そうだな。 じゃあ、せめて同時には一人しかアクセスできないようにするかな。
559 名前:550 mailto:sage [2009/07/20(月) 17:52:42 ] >>558 すみません。 書いてませんでしたが、同時アクセスは出来ないようします。 基本的にスタンドアロンで問題無いシステムなんですが、 各自のパソコンから使えるようにしたかったので、mdbファイルを 共有ファイルサーバー上に置くようにしました。 コーディングはほぼ完了したのですが、同時アクセス出来ないような仕組みは特に 作ってません。 mdbファイル側で共有設定してないから2台以上の接続があったら勝手にはじいてくれる と思ってるのですが、処理を組み込んだ方がいいですか?
560 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 17:56:13 ] 処理しないと例外で落ちるだろ
561 名前:550 mailto:sage [2009/07/20(月) 18:03:24 ] >>560 そのような処理のやり方がわからなかったので、 現状ではtableadapter.Fillの時点で例外を拾ってエラーを吐くように してます。 エラー吐いたらDBを他で使ってるか、データがおかしいか、ネットワークがおかしいから 時間が経ってから使用するようなルールにしようと思ってます。
562 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 18:17:39 ] つーか、mdb ってデフォルト共有アクセス可だろ?
563 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 18:25:10 ] つーかポスグレのがいい
564 名前:550 mailto:sage [2009/07/20(月) 18:28:56 ] >>562 デフォルトでは共有アクセスできないと思います。
565 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 18:33:18 ] つーか、mdbって使ったこと無いww
566 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 18:35:29 ] >>564 特に指定しない限り、別のモード (たとえば、adModeShareExclusive) を設定しない限り、 ADO の接続は共有更新アクセス モードで開かれます。 嘘乙
567 名前:550 mailto:sage [2009/07/20(月) 18:45:55 ] >>566 そうなんですか? 俺の環境では出来なかったような気がしたのですが、すみません間違ってたようです。 ということは現在の作っているシステムだと、おそらく2ユーザー以上が同時に接続 出来てしまうものと思われますので、DBのユーザーテーブルにログイン中を示すフラグを 持たせる事で回避させることにしました。 他ユーザーがログイン中だとエラー吐いて画面をクローズさせる処理で問題ありませんか?
568 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 18:50:21 ] 意味わからん。最初から排他で開けばいいだけのこと。
569 名前:550 mailto:sage [2009/07/20(月) 18:56:59 ] >>568 自分の作り方だとTableAdapter.Fillの1行でDBのOpenから取得まで 全て行っているので、どこに排他で開くコードを記載していいか わからないんです。 納期まであまり時間が無く、簡単な方法が思いつきません。 TableAdapterのプロパティのあたり弄ればいけますかね?
570 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 19:02:02 ] あー。データセットだと開けっ放し、ってわけには行かないな。すまん。
571 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 19:04:17 ] まあ、とりあえずそのまま納品しろw
572 名前:550 mailto:sage [2009/07/20(月) 19:04:58 ] おそらく下記のようなコードになるんですよね? Dim cn As ADODB.Connection cn = New ADODB.Connection cn.Mode = adModeShareExclusive cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=C:\〜.MDB;" これでDBを開くまではわかるんですが、 この後、TableAdapeterのFillメソッド使うのって有りですか? open使った場合にはcloseまできちんと書くやり方にしなければいけませんか?
573 名前:550 mailto:sage [2009/07/20(月) 19:10:22 ] >>570 DataSetだと排他モードで開いておくと言うのは駄目なんですね。 やっぱりログイン中のフラグを設ける方向で考えます。 >>571 社内で使用するプログラムなのでこのまま納品して白を切ってもいけそうですが せっかく作るんで修正します。 納期に遅れたところで上司の給料がカットされるくらいなんで全然問題ないですw
574 名前:541 mailto:sage [2009/07/20(月) 21:10:32 ] >>542 情報サンクス しかしこれ、登録しないとダウンロードさせてくれないのか... 英語の規約とか読むの大変 >>543 ちょっとしらべてみた範囲ではやり方がわからなかった プラットフォームSDK入れろとかなんとか、 ちょっと手軽に使うってわけにはいかないみたいだ いろいろ探して、.NET 3.5のC#でDNSクエリするやつみつけた んでそれ使ってみたんだが... .NET Framework3.5って、Windows2000で動かないという事実を発見して挫折中
575 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 21:19:42 ] msdn.microsoft.com/en-us/library/ms682100 (VS.85).aspx でいけそう。
576 名前:541 mailto:sage [2009/07/20(月) 21:42:55 ] >>575 ありがとう WindowsAPIですね。たしかにいけそうだが これを.NETから呼び出すのも結構苦労しそうだ ほかにもいくつか.NETでDNSクエリするの見つけたんで検討中 .NET Frameworkでサポートしてほしいとこだが... WindowsAPIは最後の手段にします
577 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 21:50:59 ] 何が苦労なんだか。P/Invoke すればいいだけだろ。 pinvoke.net/default.aspx/dnsapi/DnsQuery.html とかあるし。
578 名前:550 mailto:sage [2009/07/21(火) 03:38:40 ] アプリ使用中のユーザーにフラグを設けるという案は駄目でした。 アプリが例外エラーで落ちたときにフラグをオフに出来ないからです。 なにかいい方法がありましたら教えてください。
579 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 06:10:28 ] アプリが例外エラーで落ちたときにフラグをオフにするようにしとけばいいのでは?
580 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 08:05:36 ] フラグじゃなくロックファイルを作成すればいいんじゃね? 起動したらロックファイルを作り、終了したら削除。
581 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 10:30:34 ] >>540 ないんです…。 あるプロジェクトのフォームプロパティにはあるんですが、別のプロジェクトのプロパティには無いんです。
582 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 15:59:36 ] >>580 何も解決してないからw >>578 起動時にミューテックス作成&取得。 失敗したら誰かが使用中だと解るし、プロセスが終了したら勝手に解放される。
583 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 17:44:47 ] ミューテックスってネットワーク越しでもおkなの?
584 名前:541 mailto:sage [2009/07/21(火) 19:59:35 ] >>577 このサイトいいですね 構造体やら列挙やらをVB.NET用に書き換えるのに苦労するかと思ったんだ まあ慣れた人なら機械的に変換していけるんだろうけどね
585 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 22:05:35 ] >>583 だめ。 バカだなぁ、おまえら。そういうときのために DB サーバーがあるんだろ? ・・・あれ?
586 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 22:09:21 ] だから共有フォルダにロックファイル作ればいいんだお
587 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 23:45:08 ] ミューテックスってデバッグ時に■で終了しても解放されるの?
588 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 00:05:16 ] ファイル開いてるときに強制終了したってファイルは閉じといてくれるだろ? そういうことだよ
589 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 00:52:07 ] 普通に排他で開いたらいいだけじゃないの? TableAdapterとかDataSetだからダメって何言ってるの? ところで、なんでADODBなんだよ。 TableAdapterの中見てみろ。
590 名前:587 mailto:sage [2009/07/22(水) 01:48:22 ] >>588 thx
591 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 18:41:40 ] ActiveReport 3.0で質問があります。 ページフッタのFormatイベント内で 最大ページ数を取得するにはどのようにしたらよいのでしょうか?
592 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 21:02:43 ] サードパーティ製品はスレ違い サポートに電話して聞け
593 名前:550 mailto:sage [2009/07/23(木) 02:56:47 ] >>589 排他で開いても、Datasetに取得した時点でDBの接続は切れるんで そのあと、他からもアクセス出来てしまいます。 とりあえず、皆様にはいろいろアドバイス頂きましたが、 時間も無い為、DB上のレコードにフラグを立てて使用中かどうか判断 することにしました。 強制終了して、フラグが立ったままになったらアプリを起動出来ない ちょっと痛いシステムとなってしまいましたが、バレなきゃOKです。 まだ直す時間はあるので、もしアドバイスがあったらお願いします。
594 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 08:16:35 ] それだと結局1レコードは読まないといけない訳だ やっぱロックファイルのがいいんでね? で突然死対策に1秒ごとに空更新でもして 他のプログラムはファイルがあったとしても、更新時間見て 10秒以上たってたら死亡判定とか
595 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 08:19:56 ] 監視用プログラムを別に作って常駐させとけばいんでない?
596 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 08:44:51 ] そんな面倒くさいことするか!? このメモリ浪費家がッ
597 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 08:49:49 ] 起動時にロックファイルをライトオープンで開いて 終了時にクローズするようにすれば 突然死してもファイルはクローズされるんじゃない? 多重起動の判定はロックファイルをライトオープンできるかどうかで。
598 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 09:06:09 ] できた Public Class Form1 Private sw As System.IO.StreamWriter Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Try sw = New System.IO.StreamWriter("\\共有PC\共有フォルダ\lockfile.txt", False, System.Text.Encoding.GetEncoding(932)) Catch ex As Exception MsgBox("他の人が使ってますお") Application.Exit() End Try End Sub Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed Try sw.Close() Catch ex As Exception End Try End Sub End Class
599 名前:デフォルトの名無しさん [2009/07/24(金) 10:52:42 ] デザインモードで表示するとエラーになって赤い帯が上に出て エラー情報としていろいろ内部コードが表示されるやつですが、 あの情報には「〜.Designer.vb」のどこの行がNGなのかが 不明なので、どこを直せばいいのかわからない場合が多い。 こういうとき、再コンパイルしてるときもあるが、ダメなときは 開発環境自体を立ち上げ直して直るときもある。 しかしそれでもダメな場合も多い。こういうときは皆さんどんな風に して原因突き止めていますか、よろしければご指南を頂きたく。 よろしくお願いします。
600 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 14:29:29 ] .Designer.vbを直接修正するしかない
601 名前:599 [2009/07/24(金) 14:59:40 ] >>600 ですよね、で、その場合、そのどこがNGなのかの情報が、あのたくさん 出てくる内部コードの情報には出てない場合がほとんどなのでした。 どこがNGなのかがわかれば対応できるのですが、皆目情報がなくて困って いるのでした。
602 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 16:03:21 ] エラー一覧のエラーとか警告に出るけどなぁ
603 名前:599 [2009/07/24(金) 17:06:40 ] >>602 >エラー一覧 今使っているのはVS2005なのですが、デザイナー画面が出るところに ------ パスの形式が無効です。 非表示 場所 System.IO.Path.NormalizePathFast(String path, Boolean fullCheck) 場所 System.IO.Path.NormalizePath(String path, Boolean fullCheck) 場所 System.IO.Path.GetFullPathInternal(String path) 場所 System.Reflection.AssemblyName.GetAssemblyName(String assemblyFile) 場所 Microsoft.VisualStudio.Design.VSTypeResolutionService.AddProjectDependencies(Project project) 場所 Microsoft.VisualStudio.Design.VSTypeResolutionService.AssemblyEntry.get_Assembly() 場所 Microsoft.VisualStudio.Design.VSTypeResolutionService.AssemblyEntry.Search(String fullName, String typeName, Boolean ignoreTypeCase, Assembly& assembly, String description) ・・・ ------- こういった内部コードが現れては来るのですが何行目が悪いという情報がなく、 「エラー一覧」の中には特に表示されないのでした。どこがNGなのかわかれば ありがたいのですが、それが出て来ないのでした・・・
604 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 18:53:06 ] もっと下の方見たらどこかに自分のクラス名があるだろ その一つ上の行のメソッド名をDesigner.vb内で検索
605 名前:599 [2009/07/24(金) 19:23:30 ] >>604 どうもです!探してやってみます!・・・と思って、今もう一度デザイナー を起動したら・・・、ありゃ?何にも他のことしてないのにナンデだろ?? 直ってちゃんと出てる。。。なんだろぉ〜。 この次またNGになったらその仕方で見てみます。助かりました、大変 ご迷惑、おかけしてすみませんでした。。。 あれーそれにしても・・・。
606 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 10:57:36 ] VB.NET2003で Dim app As New Excel.Application Dim books As Excel.Workbooks Dim book As Excel.Workbook Dim sheets As Excel.Sheets Dim sheet As Excel.Worksheet のように定義すると、端末によってNew Excel.ApplicationやExcel.Workbooksが定義されていませんというようなエラーがでます。 Imports System.Runtime.InteropServices Imports Microsoft.Office.Core は記述してあり、Microsoft Excel 11.0 Object Libraryは追加してあります。 どの端末もVB2003はインストール済みで上記の設定はしてあるのですが、端末によってこのエラーが出るときと出ないときがあります。 このエラーがでないようにするにはどうすればいいのでしょうか?
607 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 11:08:32 ] Office がインストールされてないんじゃね?
608 名前:606 mailto:sage [2009/07/25(土) 12:26:01 ] >>607 ありがとうございます。 Officeはインストールされています。 上記のような現象が起きている方はいませんか?
609 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 12:40:21 ] あとは、PIA がインストールされてないとか?
610 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 13:59:09 ] OfficeのPIAは、.NET1.1以降が予めインストール済みの環境で Officeのインストールを実行しないと入らないからなあ。
611 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 14:18:40 ] >>606 Microsoft Excel 11.0 Object Libraryへの参照をプロジェクトに追加したときに VSが自動的に生成するCOMラッパークラスの入ったdll(生成されるファイルのファイル名は忘れた) が実行環境にインストールされてないんでしょ。 プロジェクトエクスプローラを「全てのファイルを表示」にしてる? っていうか、こんな初歩的なことも知らないとしたら相当ヤバいな。
612 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 14:30:29 ] >>611 Interop.Excel.dll Interop.Office.dll あたり?
613 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 18:25:49 ] >>589 だからコネクションは自分で明示的に開けばいいの。 なんのためにConnectionプロパティが生成されると思ってんだ。 TableAdapterだからって接続したままに出来ない理由はない。
614 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 18:27:05 ] >>589 じゃなくて>>593 だった。 自分に突っ込んでどうする…
615 名前:606 mailto:sage [2009/07/25(土) 19:13:53 ] >>609-612 ありがとうございます。 Interop.Excel.dll Interop.Microsoft.Office.Core.dll は存在して、参照設定から見えていたと思います。 >OfficeのPIA 他の人もアセンブリの問題で色々苦労していたようなので、これが原因なのかもしれません。 Dim app As Object Dim book As Object Dim sheet As Object app = CreateObject("Excel.Application") こんな感じだと正常に動作するようなんですが…
616 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 19:35:52 ] >>615 ところでそれってソース開いたときにエラーとかじゃ無くって 実行するときにエラーってことだよね? 念のため
617 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 20:08:07 ] >>615 人の話ちゃんと聞こうよ。 参照設定は大丈夫か?なんていってないでしょ。 実行環境の話をしてるんだよ。 その2つがユーザーのマシンにもちゃんと入ってるの? いやまず間違いなく入ってないんだってば・・・
618 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 21:06:43 ] 開発環境 VS 2008 アプリケーション固有のメッセージを外部ファイルとして保存して、 プログラム側で起動時に読み込むようなものを作成しています。 上記のプログラムを作成するための定石、または、.NET Framework標準の クラスなどが存在していますか? ご存知の方がいれば、教えてください。 現在は外部ファイルをXMLにして、 DataTableのReadXMLで読み込む手法をとっています。
619 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 21:08:51 ] ResourceManager とかだな。 プロジェクトのプロパティから追加すれば、簡単に扱えるよ。
620 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 21:11:39 ] その固有のメッセージってのはアプリのインストール後にテキストエディタとかで修正したりするモンなの?
621 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 21:15:49 ] VB2008EEでExcelにデータを書き出すソフトを作っています。 使う人によってExcelのバージョンがまちまちなのでCOMは使わず以下のような感じです。 Dim xlApp As Object Dim xlBook As Object Dim xlSheet As Object xlApp = CreateObject("Excel.Application") xlBook = xlApp.Workbooks.open(パス) xlSheet = xlBook.Worksheets(1) xlSheet.Cells(1, 1).Value = "あああ" '※1 xlSheet.Cells(1, 2).Value = "いいい" '※2 xlApp.DisplayAlerts = False xlBook.Save() xlBook.Close() xlApp.Quit() xlSheet = Nothing xlBook = Nothing xlApp = Nothing GC.Collect() データを入力する部分で、※1だけなら問題ないですが※2を追加するとプロセスが残ってしまいます。 何が原因なのでしょうか。 開発環境のExcelは2000です。
622 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 21:24:44 ] 思いっきりCOM使ってるよそれ vb.net excel プロセス でググるといろいろ出てくる ちゃんと作るのは非常に面倒だからそこだけWSHのVBSなんかで書いてもいいよ
623 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 21:42:22 ] >>619 情報ありがとうございます。 試してみます。 >>620 テキストファイルで修正できることを前提にしています。 開発終了後にそんな日が来るとは思いませんが、 どっかのエロいアーキテクトが書いたらしい規約に従う必要があるので……
624 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 21:45:48 ] >>622 レスありがとうございます。 COM参照を先にするかあとにするかだけで処理は一緒って認識で合ってますか?オブジェクト使う度に解放が必要と。 WSHは使ったこと無いので調べてみます。
625 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 21:49:39 ] いやGCに頼るのは不確実だからMarshal.ReleaseComObjectを使って 必ず逐一全て手動で解放する必要がある
626 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 23:07:25 ] >>616 ソリューションファイルを開いたときに、New Excel.ApplicationやExcel.Workbooksの所に波線が引かれ、コンパイルができないのです。 >>617 dllが存在しないと、参照設定のExcelとかInterop.Microsoft.Office.Coreのところに三角のマークが出るような気がしました。 確かに全てのファイルを表示にはしていなかった可能性があるので、obj配下にdllが存在しなかったのかもしれません。
627 名前:606,626 mailto:sage [2009/07/25(土) 23:12:27 ] 参照設定のExcel等の所に三角マークが出ていなかったので、Interop.Excel.dll等は存在するものと思ったのです。
628 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 23:17:26 ] >>625 できました。ありがとうございました。 ちなみに>>621 はMSのサンプルを真似たものなんですが、結局全然違うコードになりました。 あのサンプルは一体何だったんでしょうか…。
629 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 23:22:08 ] >>626 それ一番最初に書くところ みんな実行時だと思ってたんだから でね、それは単に参照が無いだけだから
630 名前:606 mailto:sage [2009/07/25(土) 23:26:56 ] >>629 ありがとうございます。 プロジェクトのディレクトリごとコピーしているので、obj配下にdllはあるのではないかと思います。 参照設定でも三角マークは出ていませんし。 全く同じコードをプロジェクトごとコピーしたのに、端末によってコンパイルができない理由がわからないのです。
631 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 00:00:18 ] >>630 あーもう じゃ「参照が有効になってない」って言えばいい? 一度参照削除してもう一度登録しなおしてみ?
632 名前:606 mailto:sage [2009/07/26(日) 00:15:33 ] >>631 どうもです。 一度参照設定のExcel等を削除して登録し直したのですが、それでも駄目でした。 どうも端末依存でアセンブリの問題があるらしいので、それが原因のような気もしているのです。 他の人も逆に私がコンパイルできない端末でないとコンパイルできないようなことを言っていたし、 端末固有の設定がおかしいのかもしれません。
633 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 00:25:12 ] 2003時代にエクセルを参照したプロジェクトを複数の開発環境に持ってくことを 何度かやったことがあるけどそんな問題は起こった記憶がないな。 まさかとは思うけど、 (1) 環境ごとにエクセルのバージョンが違う (2) エクセルそのものがインストールされてない なんてことはないよね?
634 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 00:34:48 ] >>633 ありがとうございます。 エクセルはインストールされていて、両方2003だったと思います。 コンパイルできない端末には確かFlex Gridがインストールされているなど、特殊な設定がなされているのです。 自宅では問題なくコンパイルできていますし、やはり端末依存の問題なのかもしれません。 Marshal.ReleaseComObjectを使っても逆に不安定になったりするし、.NETからエクセルを動かすのは難しいなぁ。
635 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 00:48:31 ] あー それは複数のassenblyファイルがある場合だわ 消したらいいよ。
636 名前:550 mailto:sage [2009/07/26(日) 01:14:25 ] >>598 それよさそうですね。 ちょっと試してみようと思います。 ただ問題は、ロックファイルの出力先が固定になっている部分です。 mdbファイルの場所を移動しても探せるように、Connectionstringをいじれる仕様なので、 ロックファイルの出力先アドレスをxmlファイルに保存しなきゃいけないかも知れません。 納期が近い為、そこまで手が回りませんが参考になりました。 どうもありがとうございました。
637 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 01:17:10 ] >>635 AssemblyInfo.vbではなく、確かWindowsディレクトリ配下にアセンブリファイルがあり、それが端末によって異なっているせいで 端末によってコンパイルできたりできなかったりするような話は聞きました。 Dim app As Object Dim book As Object Dim sheet As Object app = CreateObject("Excel.Application") こんな感じに書くとコンパイルできるようなので、もうコードを書き直すしかないのかなと思っています。
638 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 01:43:08 ] >>636 普通app.configに書かない?
639 名前:550 mailto:sage [2009/07/26(日) 01:44:08 ] >>598 ただいま、試験的にプログラムを作って動かしたんですが、完璧ですね。 streamwriterをcloseしない限りは、そのアプリが専有で開いてるから 他からのアクセスが出来ないってことですね。 プログラムが異常終了しても自動的にlockfileへの専有が外れるから 他からのアクセスが可能になるということですね。 これかなりいいと思います。 ありがとうございました。
640 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 02:01:26 ] >>639 当初の質問と関係なくなってるなw
641 名前:550 mailto:sage [2009/07/26(日) 02:33:32 ] lockfileを隠しファイルにしたかったんですが、隠しファイルにすると VBから見えてないのか、Streamwriterで例外エラー拾いますね。 たいした問題じゃないので我慢するしかないですねこれは・・・
642 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 20:18:52 ] 排他Openできるんならコネクションを開いたままにしとけばいいって何度も言ってるのに なんでわざわざ独自に作りこむのかね。
643 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 20:24:27 ] その方法がわからないからだろハゲ
644 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 20:58:34 ] 全コードで TableAdapter の Connection 書き換えれば 排他で開きっ放しに出来るだろうけど手間考えたら >>598 みたいな方法が一番簡単だな
645 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 21:09:33 ] そもそもその排他オープンが安全なのかが怪しいんだよね それなら別次元の排他処理をしてしまうのもあり だいたいちゃんとするならDBサーバーを入れるべきだし。
646 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 06:22:32 ] Dim psi As New System.Diagnostics.ProcessStartInfo Dim p As System.Diagnostics.Process Dim ssPath As String = "C:\Program Files\Microsoft Visual Studio\VSS\win32\ss.exe" Dim ssDir As String = "C:\Program Files\Microsoft Visual Studio\VSS\win32" Dim ssUser = "user" Dim ssPwd = "user" Dim GetPath = "D:\work" If ssPath.IndexOf(" ") > 0 AndAlso ssPath.Substring(0, 1) <> """" Then ssPath = String.Format("""{0}""", ssPath) End If 'ComSpecのパスを取得する psi.FileName = System.Environment.GetEnvironmentVariable("ComSpec") '出力を読み取れるようにする psi.RedirectStandardInput = False psi.RedirectStandardOutput = True psi.UseShellExecute = False 'ウィンドウを表示しないようにする psi.CreateNoWindow = True 'コマンドラインを指定("/c"は実行後閉じるために必要) psi.Arguments = "/c " & ssPath & " get -gtm " & sName & " -GL" & GetPath & " -Y" & ssUser & "," & ssPwd '起動 p = System.Diagnostics.Process.Start(psi) result = p.StandardOutput.ReadToEnd こんな感じでVSSから最新バージョンを取得しているのですが、データベースのパスを指定したいと思い、 psi.Arguments = "/c set SSDIR=" & ssDir & " && " & ssPath & " get -gtm " & sName & " -GL" & GetPath & " -Y" & ssUser & "," & ssPwd のようにset SSDIRを追加すると取得できなくなってしまいます。 どこが間違っているのでしょうか?
647 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 07:40:11 ] &で文字列連結すんな
648 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 08:02:57 ] >>647 ildasmで見ると、String.Concatで連結されているのが確認できるよ。 こういう一連の連結に使う分には何ら問題は無い。
649 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 08:06:19 ] && だと環境変数は引き継がれないみたいだね
650 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 08:22:00 ] 連結後に更に連結するなら、せめてString.Formatを…。 読みにくくてかなわん。
651 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 08:36:24 ] 少しヒント cmd /c"set AAA=XXX && echo %AAA%" %AAA% cmd /V:ON /c"set AAA=XXX && echo !AAA!" XXX
652 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 23:07:00 ] 複数のBMPの画像をAVI動画に変換する方法を大まかにおしえて
653 名前:646 mailto:SAGE [2009/07/28(火) 00:10:18 ] みなさんありがとうございます。 週末に試してみようと思います。
654 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 01:10:35 ] >>652 1.Windows ムービー メーカー を起動する 2.対象の画像を読み込む 3.ムービーの発行でDV-AVIを選んで実行 4.AVI動画が完成\(^o^)/
655 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 22:21:11 ] ODP.NETを使用し、パッケージをコールしてDataSetを取得し、 コンボボックスのDataSourceにDataTableを入れたのですが、 中身が表示されません。 DisplayMemberとValueMemberプロパティにも項目名を設定しています。 セットした後に、SelectedValueとSelectedTextの値を見ると、 SelectedValueには値が入っていますが、SelectedTextには値がありません。 パッケージをコールすると、 表示する用の文字列と裏で持つ用の文字列を複数レコード取得します。 調べても、問題ないと思うのですが何が悪いのでしょうか? combo1.DataSource = DataTable combo1.ValueMember = "AAA" combo1.DisplayMember = "BBB" 試しに、AAAとBBBを逆にセットしてみたのですが、やはりSelectedValueの方しか値が入っていません。 よろしくお願いします。
656 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 22:26:57 ] DataTable には値が入ってるの?
657 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 22:27:00 ] SelectedTextはコンボボックスのテキスト入力部の、コピーとかのために「選択」してる文字列だから
658 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 22:32:58 ] >>656 DataTableには値がちゃんと入っています。 デバッグでも確認しましたし、DataGridViewに突っ込んで確認しています。 >>657 そこは調べ不足でした。SelectedItemで確認するのが正しいですね。 最悪、ループでAddしていくしかないですかね…
659 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 22:37:50 ] もう少し、ちゃんとしたコード出してみ。 DataTable の指定とかおかしそうな気がする。
660 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 22:43:14 ] >>659 ソースが手元にないので、覚えている範囲で書きます。 Using ds As DataSet = (オラクルパッケージをFillメソッドで実行) Using dt As DataTable = ds.Tables(0) combo1.DataSource = dt ←このdtをDataGridViewに入れ、値が入っていることを確認 combo1.ValueMember = "AAA" combo1.DisplayMember = "BBB" End Using End Using こんな感じです。
661 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 22:48:35 ] Disposeしてどうするあほかよ
662 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 23:31:00 ] >>661 うわっ、すいません。初歩的な所で… なぜ、DataGridViewは表示されたままだったのでしょうか?
663 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 11:41:38 ] String.Formatの書式について教えて下さい。 String.Format("合 計 {0,12:\\###,###,##0}", dTotal) → 合 計 -\9,000 String.Format("合 計 \{0,12:###,###,##0}", dTotal) → 合 計 \ -9,000 String.Format("合 計 {0,12:\\-###,###,##0}", dTotal) → 合 計 -\-9,000 dTotalがマイナスの場合は-1をかけて、 String.Format("合 計 {0,12:\\-###,###,##0}", dTotal)とすれば 合 計 \-9,000になるのですが、それ以外の方法で 表示させるにはどうしたらいいでしょうか?
664 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 11:45:45 ] セクション区切り記号 ; を使えば正負でそれぞれに書式指定できる 使い方はカスタム数値書式指定文字列のページ見れ
665 名前:デフォルトの名無しさん [2009/07/30(木) 13:01:18 ] VBNETの入門書2冊読破したんだけどどうすればいい?
666 名前:663 mailto:sage [2009/07/30(木) 13:03:44 ] ありがとうございます。 おかげさまで出来ました! もっと勉強します。
667 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 13:53:02 ] 自動更新で下のやつがきたんだけど手動でダウンロードできないんでしょうか? できるのであれば方法を教えてください Visual Studio 2005 Service Pack 1 セキュリティ更新プログラム(KB971090)
668 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 14:00:15 ] KB番号ググりゃ見つかるだろ
669 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 14:08:44 ] >>667 それクソ時間かかるよな。SP1 のときも思ったけど。
670 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 14:51:40 ] なんか、やってることはほぼ再インストールと同じなんだそうだ。 だから、DLしてもどっちみち時間かかる
671 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 17:10:06 ] >>669 そうそう だから手動でダウンロードしたいわけなのよ
672 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 17:25:13 ] www.microsoft.com/downloads/details.aspx?familyid=7c8729dc-06a2-4538-a90d-ff9464dc0197&displaylang=ja 249MBワロタ
673 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 17:33:05 ] .NETからEXCEL使ってなんかやるとき、STAThreadじゃなくてMTAthreadだと、 なんか問題あったりするんでしょうか? EXCELのオブジェクトを作成したスレッド以外から使ったりはしない前提です。 なんかイマイチこの辺を理解してないんです。
674 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 17:49:22 ] >>672 ありがとうございます