1 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 23:03:01 ] ここは Visual Basic 〜6.0 の質問スレです。 質問者は使用しているOS、VBのバージョン、サービスパックのバージョン、 「何がしたくて、どうしたけど、どう困っているのか」を明確に書きましょう。 VB.NETは別物なので専門スレで、VBA、APIの質問もそれぞれのスレで。 ○ 質問者の心得 一.質問する前にMSDNやGoogle、過去ログにも目を通してみる。 二.VBScript、インストーラーなどはこのスレでOK。 三.質問は第三者にもわかりやすいよう簡潔かつ具体的に。 四.荒らしは相手しない。 ○ 回答者の心得 一.答えられない質問は無駄に罵倒せずスルー。無理するな。 二.代用法を強制しない。 三.回答する上で必須ではない情報をむやみに聞き返さない。 四.荒らしは相手しない。 五.VB情報募集中。 六.回答は質問者が理解できるよう具体的に。 MSDN Online Japan ホーム www.microsoft.com/japan/msdn/default.asp Visual Studio 6.0 Service Pack 6 msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/default.aspx Google www.google.co.jp/ ※「まず自分で調べる」クセを身につけよう。
97 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 23:28:04 ] そのうまくいかない原因を究明するほうがいいと思うぞ。 急がば回れって言うし。 あと、VBSでできるんだったら、VB6でも全く同じようにできる。 せいぜいWScriptオブジェクトがないくらい。
98 名前:95 mailto:sage [2008/03/27(木) 01:30:19 ] >>96 すいません >>97 VBSはネットでフリーであったのでそれを使用しました。ゆえにVBへの記述方法 がまったくわかりません。 (検索はしましたがVB VBSやVB6.0 VBSなど)VBSとVBがかぶっているからか変換の方法が見当たりませんでした。 原因が現在わからないので困っています。今回初めて不具合が出たもので。 >>96 ファイルを圧縮するVBSをbatで動かします。そのbatはVBで作成しています。 作成したbatの起動も同じVBでしています。 batでは以下の記述をしています CD VBSのパス CScript.exe MakeZIP.VBS ZIPファイルのパスと名前 圧縮するtxtのパスと名前1 圧縮するtxtのパスと名前2 … exit ですこれをshellで起動しています。 しかし今回作成されたzipファイルには後ろに記述していた11ファイルの内9ファイルしか 圧縮されておらず。残りの2ファイルはzipファイル内に存在しませんでした。(zipファイルと同じフォルダに拡張子のないファイルが1つ作成されてました) ファイル名が長いわけでも、特殊文字が使われているわけでもありません(パスも同じです) そこで、圧縮が正常にできているかを判断したいと考えました その方法として圧縮したファイル件数を調べることができないかを考えました。 よろしくお願いいたします
99 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 01:35:38 ] >>98 VBSはVBのサブセットなんだから、VBS→VBは 変換なんて考えなくても、そのまま一字一句変えずに使えると思ってもいいくらい。 まずは試してみたか?
100 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 01:38:53 ] コマンドラインの文字長には制限があったような気がするけど?
101 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 12:37:36 ] 1ファイルずつ追加していけば
102 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 19:21:07 ] VBAのサンプルでも使えばよかろう
103 名前:95 mailto:sage [2008/03/27(木) 22:49:35 ] レスありがとうございます。 >>99 はじめにfunctionを入れてみましたがいまいちどう起動したら よいのかわからずに挫折しました。(標準モジュールに追加?) >>100 まったく同じデータ(パス)で行っています。
104 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 23:15:08 ] >>103 コマンドラインの文字長制限はそう言う意味じゃないよ >CScript.exe MakeZIP.VBS ZIPファイルのパスと名前 圧縮するtxtのパスと名前1 圧縮するtxtのパスと名前2 … とあるけど、例えば CScript.exe MakeZIP.VBS c:\dirnameA\dirnameB\dirnameC\dirnameD\dirnameE\dirnameF\dirnameG\ZIPFile.zip c:\dirnameA\dirnameB\dirnameC\dirnameD\dirnameE\1.txt c:\dirnameA\dirnameB\dirnameC\dirnameD\dirnameE\2.txt (12.txtまで同じ事を繰り返す) ↑のような長ったらしいパスで使ってるなら途中で途切れて当たり前 CScript.exe MakeZIP.VBS c:\ZIPFile.zip c:\1.txt c:\2.txt (12.txtまで同じ事を繰り返す) にしたら行けるかもしれない。それでも長いから途切れるもしれない 「CScript.exe」の後ろに続く部分が長すぎると途中で切れるってこと よく送るメニューに入れて使うソフトがあるけどあれもたくさんのファイル(例えばWindowsフォルダに存在する全てのファイルとフォルダ)を選んで送るってやると 「指定したデバイス、パス、またはファイルにアクセスできません。適切なアクセス許可がない可能性があります。」 というエラーが出る。仕様だからこれは回避できない
105 名前:デフォルトの名無しさん [2008/03/28(金) 21:10:22 ] 16進数のカラーコードを赤・緑・青の3要素に分解するにはどうすればいいの? 例えばボタンの表面のデフォルトカラーって「&H8000000F&」だけど、これをRGB に分ける方法ってある? 要はRGB関数の逆をやりたいんだけど。。。
106 名前:95 mailto:sage [2008/03/28(金) 23:56:20 ] >>104 ありがとうございます 今回その症状がまた出たので報告します 今回は9→11→11→11と12個全部をどうしても圧縮してくれませんでした。 104さんが言うように文字が切れているというのでしたら 最後に記述したパス(txt)が含まれないはずです。しかし 含まれていないデータは真ん中に記述されていました。 また作成したバッチを手起動すると12個全てが圧縮されました。 このことからshell関数がおかしな動作をしていると思うのですが 書き方は ret1=shell("CScript.exe MakeZIP.VBS c:\ZIPFile.zip c:\1.txt… ",1) ShellEnd (ret1) で標準モジュールで ttp://hanatyan.sakura.ne.jp/vbhlp/tap_PrgEnd.htm に書いてある文章を private→public に変更して書いています。 変更の仕方がまずかったのでしょうか? VB6.0 SP3 ですよろしくお願いいたします
107 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 23:57:10 ] 小学校の算数だろそんなの。。 VBの場合、どうせ共用体もポインタも使えないんだから演算で求める方法を考えてみ。 まず十進数で考えてみてみ。 君は6ケタの数字の上位2ケタを取り出す方法がわからんの? 10,000で割った商を求めるだけだろ。 Hexだって同じことじゃん。
108 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 00:00:00 ] >>105 っていうかこれRGBの値じゃないだろう>「&H8000000F&」
109 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 01:14:20 ] >>105 RGBの分解方法はヘルプに載ってる。 &H8000000F&はシステムカラーの番号であって、RGB値ではない。
110 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 03:08:18 ] >>106 エラーが出てんじゃないの? WScript.exeで実行してみ ていうかなんでCScript.exeなの?
111 名前:95 mailto:sage [2008/03/29(土) 07:43:58 ] >>109 MakeZIP.VBS の初めにそのような記述があったのでそのまま使用しています。 ありがとうございます。変更してやってみます
112 名前:デフォルトの名無しさん [2008/03/29(土) 09:50:53 ] >>109 レスありがとうございます。 確かにRGB値だったら16進6桁だと思っていたのでおかしいなとは思っていたのです。 ただ薄い水色(&H00FFFFC0&)だとRを192(=C0)、GとBを255(=FF)としてRGB関数を 呼び出すとちゃんと薄い水色になるので対応しているように思えたのです。 とりあえずWEBでシステムカラー値とRGB値の対応表を探してみますね。。。(-_-)
113 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 10:10:48 ] システムカラーは固定色じゃないが
114 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 13:54:20 ] つ ttp://msdn.microsoft.com/library/ja/jpsysinf/html/_win32_getsyscolor.asp
115 名前:112 [2008/03/29(土) 21:36:43 ] >>114 これです!まさにこれ! ありがとうございます。マジで助かりました!。・゚・(ノД`)・゚・。
116 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 11:06:40 ] >>105 Red = RGB値 And &h0000FF Green = ( RGB値 And &h00FF00 ) \ 256 Blue = ( RGB値 And &hFF0000 ) \ 65536 だった気がする
117 名前:デフォルトの名無しさん [2008/04/02(水) 21:21:58 ] VB6でのコードの書き方で質問があります。 If hoge = 1 then i = i+1 End if というふうに複数行で書くのと、 If hoge = 1 then:i=i+1 というふうに1行で書くのとでは多少でも処理の速度は変わりますか?
118 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 21:28:33 ] そりゃあインタプリタの時代だったらかわったけどさ EXEで同じコードが吐かれれば速度は同じさ
119 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 21:31:09 ] >>117 最適化で同じ処理になると思います。 間違ってたら他の人指摘お願いします。
120 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 21:53:38 ] >>118 ,119 なるほどコンパイルすると結果は同じなのですか、 ありがとうございました。
121 名前:デフォルトの名無しさん [2008/04/03(木) 20:42:26 ] WinXP,Vistaではウィンドウのタイトルに 「abcdefg」のように表示されている物が なぜか2000環境で実行すると 「ABCDE~~」のように化けてしまいます。 なぜでしょうか? 実行ファイルの横にランタイムも配置しているので 環境でおかしくなるとは思ってなかったんですが。
122 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 20:57:09 ] >実行ファイルの横にランタイムも配置している ? Sidebyside COMのこと?
123 名前:121 mailto:sage [2008/04/03(木) 21:23:24 ] >>122 表現が悪かったです。 実行ファイルの配置してある階層に msvbvm60.dllや、VB6JP.DLLなど、 VB6ランタイムを一通り置いています。 こうすることでランタイムをシステムから読み込ませないようにするためです。
124 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 21:23:37 ] >>121 VBランタイムの言語DLL(VB6JP.dllだったかな)は 「読み込まれた」MSVBVM60.dllと同じフォルダにないといけない。 システムフォルダのが読まれてるんじゃない?
125 名前:デフォルトの名無しさん [2008/04/03(木) 21:23:44 ] ブラウザのリンクをドラッグして処理を行いたいんですけど、 OLEDragDropイベントでDataの中を見てみると 「データの形式が一致しません」エラーが発生します。 リンク先の情報をVBで取得するにはどうすればいいのでしょうか?
126 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 21:34:21 ] >>125 もしかしてfiles見てる? リンクはテキストだぞ。GetFormatとGetDataしてみ。
127 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 21:42:16 ] >>123 っていうかどう見ても馬鹿で不勉強なんだからベタにディストリビューションウィザード使えよ。 エンジンの仕組みを理解してもいない、するつもりもない奴が「俺様チューニング」 ぶっこいて動きませんって馬鹿も休み休み言えよ。
128 名前:121 mailto:sage [2008/04/03(木) 21:54:57 ] >>127 「ディストリビューションウィザード」って実行環境に作ったソフトを インストールできる環境で利用可能なものですよね? ネットワークフォルダから実行するため今回は利用していません。 もしかして勘違いしていますか?
129 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 22:08:01 ] >>128 煽り合いもいいが、先にやることあるだろw
130 名前:121 mailto:sage [2008/04/03(木) 22:14:37 ] >>129 いや、もし他に方法あるんなら純粋に知りたかったので伺いました。 悪意なんてないです。 >>124 そういう意味ではmsvbvm60.dllも実行ファイルと同じ階層に配置してるので 大丈夫、、、と思ってるのですが。 でも文字がおかしくなるのでシステムから読まれているとも考えられますね。 だとしたらなんでなんでしょうか。
131 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 22:18:25 ] >>128 勘違いしてるのはお前さんだろアホか
132 名前:121 mailto:sage [2008/04/03(木) 22:20:15 ] >>131 そうなんですか? 勘違いを指摘してもらえるとスキルあがりますので それはそれでありがたいのですけど。。
133 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 22:33:52 ] >>130 ちなみに両方とも俺(124=129)だがw Windowsは基本的に同じDLLは2度と読まない。(無駄だから) なので、先に読まれてるDLLがあればそれを再利用する。 (たとえアプリと同じフォルダに同じDLLがあってもだ) さらに、Win2000は確か読み込むDLLの優先度をアプリと同じフォルダか システムフォルダかを選択出来る設定があったはず。 それらをお前さんがそれらを把握してないならそれが理由な可能性が高い。 把握してるなら先にMSVBVM60.dllを使うアプリが起動してるからだろう。 あとね、煽り合いする暇があるなら俺の助言をちゃんと考えろよな。 直接的な答えが出せないからあーいう受け答えになってんだろうけども、 煽りもある意味助言だぜ?
134 名前:121 mailto:sage [2008/04/03(木) 23:24:03 ] >>133 すみません、 実は単純に>>128 の時点で>>124 を見落としてたんですよね。。 なるほど。 >Windowsは基本的に同じDLLは2度と読まない。 これは知ってました。 >なので、先に読まれてるDLLがあればそれを再利用する。 これも知ってました、が、 今回の件と脳内でリンクしていませんでした。 ということで当然>>121 の動作は予想できるあり得る動作ですね。 対処方法はOSの設定変更、もしくはインストーラー等で システムにDLLを組み込むことですね。 納得しました、ありがとうございます。
135 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 00:13:50 ] >>133 その性質はKnownDllsに限られるはず。
136 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 12:47:35 ] VBで作られたもので有名なのって なんかありますか(^^)
137 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 13:14:19 ] >>136 pc11.2ch.net/test/read.cgi/tech/1134464762/
138 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 19:08:57 ] 板違いでしたらご容赦を。 homepage1.nifty.com/taka_homepage/download.htm にある#1 -End Of Destiny- をしていたところ、今日になって「実行時エラー'5':プロシージャの呼び出し、または引数が不正です。」 と出て起動できなくなってしまいました。 検索をかけてみるとsupport.microsoft.com/kb/811469/ja がでてきたので 互換モードにしてみたのですが解決せず。新しく落としなおしても、保存したフォルダの 置き場所を変えても効果なしでした。 VB製ソフトの現象のようなのでここで質問させていただきました。よろしくです。
139 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 01:30:19 ] >>137 ありがとう。 最近からVB始めたんで色々コードを見てみたいんです。
140 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 08:11:15 ] >>138 最小化してプログラムを終了すると次回起動したときに 実行時エラーになるね。 たぶん単純なプログラムミスだと思う。 作者にメールしてみるといいよ。
141 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 19:38:15 ] >>140 レスどうもです。 自分でできる解決策というのは何かないのでしょうか? 作者は恐らく新作とかで忙しいでしょうし、試しに2作目もやってみたところ同じエラーが出たので 修正も煩雑になりそうですし。 最小化して終了した記憶はないのですが、ウィザードリィ風ゲームなので強制終了は 何度もさせました。
142 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 22:49:07 ] >>141 レジストリから画面サイズや座標なんかの読み込みで落ちてるとか? 消すか標準値に書き直せばいけそうな気がする
143 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 07:58:48 ] VB参考書4冊セット auction.item.rakuten.co.jp/10232889/a/10000193 これだけそろってれば完璧かな?
144 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 08:06:01 ] >142 おそらくそんな感じ >141 自分で解決したいのだったら Regmon で、どのレジストリを使ってるか 監視してみるといい cowscorpion.com/Registry/Regmon.html
145 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 09:54:34 ] >>142 適当にレジストリを見てると、LeftとTopという項目(画面位置?)が-48000などと 変な数字になってたので一度消してみたところ起動することができました。 どうもありがとうございます。 >>144 これでログとると不要なレジストリとか消せそうですね。 今度何かあった時に使ってみます。ありがとうございます。
146 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 21:44:43 ] >>95 さんと同じような内容なんですが(検索してたらここにきました)、 自分はMakeZIPをVB6に組み込んで使用しています。 しかし、どうしてもZIPファイルの中身を確認する方法が見当たりません。 確認したいことは圧縮されているファイル数です。 ほかにもサイズ、名前などがわかればベストなのですが どなたか方法を知ってる方はここにはおられませんか?
147 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 21:57:21 ] VB6なら、メジャーなzipを扱えるdll使えよ
148 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 22:02:48 ] シェルで、zipを圧縮フォルダとして使えるようになっている環境なら、それも使える。
149 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 22:27:11 ] 正直InfoZipあたりのzip.exe/unzip.exeでも付属させて コマンドライン叩いたほがいいんじゃないかっておもう。
150 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 22:50:17 ] exeキックだと、コールバック使えないじゃん・・・
151 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 23:27:16 ] パイプ経由でコールバックもらえばええやん。
152 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 11:25:15 ] それ、コールバックって言わないし
153 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 12:30:34 ] >>146 ExtractZip.vbs 読め。
154 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 14:17:21 ] ListZip.vbs 読め。 と言っても読めるくらいなら来ないよな?
155 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 16:00:41 ] パイプ経由でライトバックもらえばええやん。
156 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 16:04:30 ] 俺用語は使わないでね
157 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 16:06:49 ] 筒経由で書き戻しもらえばええやん。
158 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 16:34:36 ] マジレスすると、unzip32.dll使え。 VBのコードも付いてる。 商用利用可。
159 名前:146 mailto:sage [2008/04/09(水) 22:56:57 ] 皆さんありがとうございます。 ListZip.vbs これでできたのですね。ありがとうございます。 しかし、これをVB6で使用できるようにできません(涙) どこかに標準モジュールないのでしょうか?
160 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 23:37:46 ] アホかおまえは。 普通にDLL使え。
161 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 00:19:24 ] >>117 ついでですがThenの後ろのコロンは要らないです。 >>159 VBSから標準モジュールやクラスモジュールへの移植は そう難しくないと思います。
162 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 01:07:07 ] なにこいつ
163 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 11:34:25 ] あほちゃいますか?
164 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 11:57:45 ] pc11.2ch.net/test/read.cgi/tech/1203650042/523
165 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 11:58:36 ] だーかーらー、DLL使えって!!!
166 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 12:29:51 ] 足し算できないやつに積分教えるようなものだ やめとけ
167 名前:デフォルトの名無しさん [2008/04/10(木) 12:57:35 ] VB6でグローバル変数を使わず、すべての関数をカプセル化することは可能でしょうか?
168 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 13:05:01 ] できるよ。Formがグローバルなのに目をつぶればね。
169 名前:デフォルトの名無しさん [2008/04/10(木) 15:58:13 ] 複数ののCheckboxを使って、optionbuttonみたいな交互動作てできませんか?
170 名前:デフォルトの名無しさん [2008/04/10(木) 18:39:27 ] アプリを終了してもアプリ自体がタスクに残る不具合が発生しています。 再発条件は不明ですが、不具合発生した環境があれば原因追求をどのようにするのが効率的でしょうか? 御教授のほどよろしくお願いします。
171 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 19:05:19 ] テキストボックスに16進数の文字がある場合 それを変数に数値として代入するにはどうすればいいですか? valやConvert関数では出来ませんでした 例 テキストボックスの文字 = 0x1234 (十進数:4660) -> 数値に変換して変数に代入 -> 4660 (数値変数)
172 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 19:10:00 ] >>170 自分でFormの変数宣言しないで、VBが用意してるForm1とかそのまま使ってるんじゃね? あれってプロパティにアクセスしたりすると自動的にロードされるから、 たぶん終了直前に何らかのプロパティにアクセスして再ロードされたフォームがある OnLoadでブレイクでも入れておけば分かるんじゃないかね もう一つ考えられるのがオブジェクト同士の循環参照だね
173 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 19:12:20 ] >>171 頭に&HつけてValしろ
174 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 20:36:53 ] なにこれ? 新人みたいなアホな問いばかりじゃないか。 >>169 余裕で出来るけど? それが何か? >>170 終了ボタンを押して終了した気になってる系かね。 Unloadイベント中に何か別のFormなり何なり生成してないかい? >>171 人に聞く前にMSDNくらい一人で見ようぜ。
175 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 20:49:33 ] >>173-174 それが、 0x12345678 のような 4桁以上の16進数だと型オーバーで変換が出来ません MSDNのヘルプ見てもDouble型までが限界のようです Long型のような8桁くらいの文字(16進)を数値に変換するのにはどうすればいいのかヘルプ見ながら悩んでます
176 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 20:59:50 ] >>175 どうせそんなレベルならVB6みたいな終わってる開発環境使う意味ないだろw まあLongの型指定文字を調べてみることだね。
177 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 21:00:11 ] >>175 文字列右から4文字ずつ区切ってvalして、最後にシフトするのはどうですか?
178 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 21:18:11 ] >>176-177 CLngという型指定で変換出来ました どうもありがとう
179 名前:デフォルトの名無しさん [2008/04/11(金) 00:18:50 ] >>172 タスクマネージャーでメモリ使用量を確認していると、 各イベント(フォーム起動→終了→以下繰り返し等)を起動するたびに使用メモリが増加していきます。 循環参照の現象でしょうか?
180 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 00:51:38 ] >>179 循環参照って何のことだか理解してる? >>172 に書いてある >OnLoadでブレイクでも入れておけば分かるんじゃないかね を実行してなさそうな文章なんだけどやったの?
181 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 03:06:23 ] プログラム板は当たりがきついな
182 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 03:09:23 ] >>179 > >>172 > タスクマネージャーでメモリ使用量を確認していると、 > 各イベント(フォーム起動→終了→以下繰り返し等)を起動するたびに使用メモリが増加していきます。 解放してないから
183 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 03:09:56 ] >>181 おしえてぐーなら優しいけどな あと2ちゃんでも女子中学生にはやさしいよ
184 名前:デフォルトの名無しさん [2008/04/11(金) 06:46:11 ] つ「Unload Me」
185 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 10:46:53 ] Using src As New FileStream(srcName, FileMode.Open, FileAccess.Read) While True readSize = src.Read(buf, 0, BUFSIZE) ' 読み込み If readSize = 0 Then MsgBox("HIT=" & hval) Exit While ' コピー完了 End If End While End Using このコードでファイル操作の処理をすると 読み込み開始から終了までのあいだフォーム全体が操作不能になります 読み込み処理中でもボタン等の操作を可能にするにはどうすればいいでしょうか? 中断ボタンを作ってあるのですが操作不能になって機能しません
186 名前:デフォルトの名無しさん mailto:age [2008/04/11(金) 14:44:14 ] Visual Basic Version 5.0 Control Creation Edition pc11.2ch.net/test/read.cgi/tech/1204552981/18 ふと思ったんだが、↑これと↓これ組み合わせて.EXEファイルを作ることできるのだろうか? Microsoft Visual C++ Toolkit 2003 pc11.2ch.net/test/read.cgi/tech/1109618655/
187 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 17:54:26 ] 上でDLL (OCX)作って、下でそれを使うEXE作るってことは可能だろうね。 そもそもなぜ今更VC++ 2003? 事情がなければ2005でも2008でも使えばいいだろうに。
188 名前:デフォルトの名無しさん [2008/04/11(金) 19:00:08 ] >>185 つ「DoEvents」
189 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:13:12 ] ComboBoxでリストから項目が選択してドロップダウン部分が消えた瞬間に任意のコードを実行したいのですが DropDownClosedやSelectionChangeCommitted その他のそれらしいイベントを設定しても 選択→ドロップダウンが消える→再度選択 としないとそのコードが実行されません どのイベントを設定すればいいでしょうか?
190 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 10:23:58 ] Click
191 名前:デフォルトの名無しさん [2008/04/13(日) 10:45:44 ] SAVEデータのようにバイナリデータとShift_JISの文字列が混在するファイルの 文字列部分を編集して書き戻したいのですが Dim FreeNum as Integer Dim Bin1() as Byte , Bin2() as Byte Dim strRes as String FreeNum=FreeFile Open hoge.bin For Binary As #FreeNum Get #FreeNum, , Bin1 Close #FreeNum strRes = StrConv(Bin1,vbUnicode) '本来ここでstrResを編集する Bin2=StrConv(strRes,vbFromUnicode) とした時にBin2はBin1を再現せず、バイナリデータの部分が変わってしまいます。 通常このような操作を行う場合はどのようにすれば良いのでしょうか? お力を貸して下さい。
192 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 18:48:40 ] >>191 それはShiftJISにしたときのバイト数えて詰め物したりでかなり面倒くさい。 結局Cランタイムのfopen系の関数をラップしたActiveXを作ってそれで読み書きさせた。
193 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:14:58 ] リストボックスで選択した場所から下の項目を削除したいのですが 下のプログラムだとindexエラーが出てうまくいきません For i = ListBox1.SelectedIndex To ListBox1.Items.Count - 1 ListBox1.Items.RemoveAt(i) Next どう対処すればいいでしょうか?
194 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:17:44 ] 後ろから削っていくとか。
195 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:26:36 ] デバッグして確認したときそれぞれの値が ListBox1.SelectedIndex=2 ListBox1.Items.Count=8 (項目数=3) となっていて その状態で>>193 のFOR文を実行すると i の値が2,3,4,5,6,7 とステップして ListBox1.Items.RemoveAt(i) で最後の項目まで問題なく削除出来ると思うのですが どういう訳かエラーになります
196 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:28:34 ] >>195 修正 × (項目数=3) ○ (項目数=7)
197 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:33:24 ] どういう訳かも何も、たとえばRemoveAt(10)を実行した時点で いままでItems(11)だった奴がItems(10)に繰り上がるわけだが