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

(*´д`*)ウッ… VB初心者質問スレ Part15

■ このスレッドは過去ログ倉庫に格納されています
0001エロチカセブンNGNG
  Part 1 http://piza.2ch.net/tech/kako/968/968328471.html
  Part 2 http://piza.2ch.net/tech/kako/990/990793224.html
  Part 3 http://piza2.2ch.net/tech/kako/1000/10005/1000523122.html
  Part 4 http://pc.2ch.net/tech/kako/1006/10069/1006922992.html
  Part 5 http://pc.2ch.net/tech/kako/1010/10106/1010624646.html
  Part 6 http://pc.2ch.net/tech/kako/1013/10138/1013844542.html
  Part 7 http://pc.2ch.net/tech/kako/1015/10158/1015836357.html
  Part 8 http://pc.2ch.net/tech/kako/1018/10187/1018794901.html
  Part 9 http://pc.2ch.net/tech/kako/1020/10208/1020830472.html
  Part10 http://pc.2ch.net/tech/kako/1022/10221/1022127528.html
  Part11 http://pc.2ch.net/tech/kako/1024/10243/1024380249.html
  Part12 http://pc3.2ch.net/test/read.cgi/tech/1026642565/
  Part13 http://pc3.2ch.net/test/read.cgi/tech/1029241786/l50
Win32 API関連スレ
  Win32API 質問箱 Build4
  http://pc.2ch.net/test/read.cgi/tech/1023361418/
心得
壱.質問する前に過去ログにも目を通してみる。
弐.質問する前に MSDN などで調べてみる。
参.VBScript もこのスレでOK。
4.インストーラーなどの質問もOK。
五.下ネタもたまにならOK
0037デフォルトの名無しさんNGNG
ListViewコントロールで、アイテムを選択した時を検出したいのですがうまくできません。
エクスプローラーみたいに、ファイルを選択すると容量とか表示されるようにしたいです。
もちろん、マウスでドラッグしての複数選択や、Shift,Ctrlキー押しながらの複数選択も検出します。
どうやればよいでしょうか?
0038デフォルトの名無しさんNGNG
>>36
> 例えばsin(180)は0のはずなのに-0.801152...となる

ねぇ、「ラジアン」って言う単位知ってる ?
0039デフォルトの名無しさんNGNG
知らないから聞いてるんですよ、たぶん
0040デフォルトの名無しさんNGNG
kanisawa.poti@nifty.com
0041デフォルトの名無しさんNGNG
>>39
> 知らないから聞いてるんですよ、たぶん

知らないなら調べろ。
0042デフォルトの名無しさんNGNG
ここに書き込んで調べてるんですよ、たぶん
004339NGNG
「ラジアン」っていう言葉を知らなかったら調べようがないでしょう?
0044デフォルトの名無しさんNGNG
>>43
> 「ラジアン」っていう言葉を知らなかったら調べようがないでしょう?

MSDN 読んだことないの ? Sin 関数の一番下に...

角度の単位を度からラジアンに変換するには、度にπ/180 を掛けます。ラジアンから度に変換するには、ラジアンに 180/πを掛けます。

と書いてある。これでわからないなら、プログラマー辞めたほうがいい。
004539NGNG
>>44
私は37ではありませんよ、一応。
0046nobukitiNGNG
VB6 + Oracle で本社と各拠点をOCNエコノミーの128kbpsで常時接続し
普通のクライアントサーバーシステムを作りたいのですが、問題点等は
ありますでしょうか?
本社にOracle Serverを置いて、各拠点からoo4oで繋いでデータの参照、
更新等するつもりです。データ件数的には1000件未満を想定しています。
速度面、パフォーマンス等で遅かったりするのでしょうか?
今までLANでの普通の10Base-Tで使用する事を前提とした開発しか経験した
ことがないので、128kbps程度の回線速度だとどうなるかよくわからないのです。
ご面倒でしょうが、お知りの方おられましたらお教え下さい。
0047デフォルトの名無しさんNGNG
ADOでMDBにアクセスするVBアプリ作ってマス!
日付型の項目がNULLの場合のSQL文書いてるンですけど

WHERE 日付 = ##

ではないのですか?
0048nobukitiNGNG
答えろオラ
004946NGNG
>>48
名前がかぶってますよ。
0050デフォルトの名無しさんNGNG
>>46
そりゃ、LANよりは遅いけど、気を配って作れば問題なし。
0051nobukitiNGNG
>>50
ご返答ありがとうございます。
ちなみに 48は私じゃないです。

そうですか、、、
>気を配って作れば問題なし。
この、気を配ってというところはストアドとかを使って
できるだけネットワーク上のトラフィックを減らした
作り込みが必要という意味ですかね?
ストアドはあまり組んだことがないので不得意なので
どうしようか迷っています。
0052デフォルトの名無しさんNGNG
>47
Is Nullじゃないの?
0053nobukitiNGNG
私という戦うバディ♪
0054デフォルトの名無しさんNGNG
質問があります。
VBSでGifヘッダーを取得したいのですが、セーフアレイなバイト配列を
どうしても文字列にする事が出来ません。
s(0)〜(5)までを6文字の文字列に変換したいのですが。

Set astImage = WScript.CreateObject("ADODB.Stream")
Set oFS = WScript.CreateObject("Scripting.FileSystemObject")
Const adTypeBinary = 1
astImage.Type = adTypeBinary
astImage.Open
WScript.CreateObject("WScript.Shell").CurrentDirectory = oFS.GetParentFolderName(WScript.ScriptFullName)
astImage.LoadFromFile ".\fileStock\test.gif"
Dim s()
ReDim s(12)
For i = 0 To 12
s(i) = astImage.Read(1) '←これ
Next
0055デフォルトの名無しさんNGNG
>>51
もちろんストアドにするのも大事だ。
例えばOO4Oをよく理解してる?
ダイナセットひとつとってもいろいろパラメータあるでしょ?
あれも、最適なものを指定してやるとか。
0056nobukitiNGNG
>>55
やはり、色々あるんですねー
パラメーターとか調べてみます。
ありがとうございました
0057デフォルトの名無しさんNGNG
>56は苦労しそう
0058デフォルトの名無しさんNGNG
>>54
一文字ずつ格納汁
005925NGNG
ぎゃーだめだー。
バックアップはサーバ機のみで取れるという仕様にしよう!
0060デフォルトの名無しさんNGNG
>58
ありがとうございます。
For i = 0 To 12
s(i) = AscB(astImage.Read(1))
Next
で、出来るようになりました。
0061デフォルトの名無しさんNGNG
NULLで埋めるってどういうことですか?
NULLってなんですか?
0062デフォルトの名無しさんNGNG
タクスバーのプロパティ「自動的に隠す」を切り替える、VB関数か、
APIを教えてください。見つからないよぅ(つд`)
0063デフォルトの名無しさんNGNG
WINSHELLAPI UINT APIENTRY SHAppBarMessage(
DWORD dwMessage,
PAPPBARDATA pData
);

Parameters
ABM_ACTIVATENotifies the system that an appbar has been activated.
ABM_GETAUTOHIDEBARRetrieves the handle of the autohide appbar associated with a particular edge of the screen.
ABM_GETSTATERetrieves the autohide and always-on-top states of the Windows taskbar.
ABM_GETTASKBARPOSRetrieves the bounding rectangle of the Windows taskbar.
ABM_NEWRegisters a new appbar and specifies the message identifier that the system should use to send notification messages to the appbar.
ABM_QUERYPOSRequests a size and screen position for an appbar.
ABM_REMOVEUnregisters an appbar, removing bar from the system's internal list.
ABM_SETAUTOHIDEBARRegisters or unregisters an autohide appbar for an edge of the screen.
ABM_SETPOSSets the size and screen position of an appbar.
ABM_WINDOWPOSCHANGEDNotifies the system when an appbar's position has changed.
0064デフォルトの名無しさんNGNG
>>63
キタ━(゚∀゚)━( ゚∀)━(  ゚)━(  )━(  )━(゚  )━(∀゚ )━(゚∀゚)━!!!!!
ありがとうございます。
現在実験中です、AppBarDataがちょと難しいです・・・がんばります。
0065デフォルトの名無しさんNGNG
>>61
その文字列をすべてChr(0)の文字にする、ということだと思われ。
0066デフォルトの名無しさんNGNG
>>63
君の資料は古いと思われ。

>>64
ABM_SETSTATUSを使う。ただし、WinXPでしか効かない。
Win95、98、NT4、2000でダメなことは確認済み。

それ以外の環境だと10個くらいのAPI駆使して、
無理やり設定ダイアログだして「自動的に隠す」を切り替える方法を
取ろうとしていた人もいたがうまくいったかどうかは知らない。
0067デフォルトの名無しさんNGNG
>61
ttp://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=utf8&oe=utf8&q=NULL%E3%81%A8%E3%81%AF
0068デフォルトの名無しさんNGNG
>>66
win98です、だめそうですね・・・
あきらめます、ありがとうございました。

0069 NGNG
VBってさ、メモリリークを 起こすかな?

配列とか 確保しても 解放しなくてもいいよね?

誰か 教えて。
0070デフォルトの名無しさんNGNG
循環参照がだめなんじゃなかったっけか。
0071 NGNG
VB6のSP5を入れてます。

画面を作るときに、リストボックスの大きさをFORMの大きさにより
変更したいのですが、標準でそのようなコントロールは、あるのでしょうか?
教えてください。
0072デフォルトの名無しさんNGNG
>>69
その配列を private で使用しているフォームのunload時に、
set frmXXX = Nothing
とすればそのfrm内の配列は開放される。
逆にこれを入れないとform内の全ての保持値がメモリに残ったままになっているので
(VBアプリを終了するともちろん解放されるが)
保持しておく必要がないなら入れるべきだろう。
0073デフォルトの名無しさんNGNG
>>66
WinAPI使うたびに思うんだけど、なんでもっと便利関数にしないのかな。

TaskBarAutoHide(TRUE);

みたいなAPIを用意してくれればいいのに。
0074 NGNG
追記
フレームみたいに 二つのリストボックスの大きさを調整したいんです。
007574NGNG
追記は 71に対してです。
0076デフォルトの名無しさんNGNG
>>72
プ
0077デフォルトの名無しさんNGNG
VB.Netでつくったアプリは、
Win98以下は対応にならないんですか?
0078デフォルトの名無しさんNGNG
>>72
勝手に仕様を作るな
0079デフォルトの名無しさんNGNG
>>71 >>74 >>75
何をやりたいのか意味不明です。

>画面を作るときに、
もしやデザイン時に、って事?

>リストボックスの大きさをFORMの大きさにより変更したいのですが、
普通に変更すればいいんじゃ・・・

>標準でそのようなコントロールは、あるのでしょうか?教えてください。
どのようなコントロールかわからないので答えられないです。

>フレームみたいに 二つのリストボックスの大きさを調整したいんです。
フレームもリストボックスもサイズ変更の仕方は同じでは。
0080デフォルトの名無しさんNGNG
>>78
じゃあどういう仕様だよ。
教えれ.
0081デフォルトの名無しさんNGNG
>>72 >>80
Unload時にNothingを代入しても配列は解放されていませんが何か?
ヒント Main関数のDim〜の行をコメントアウトすると解放されるけどね。

<Module1>
Sub Main()
  Dim Form1 As New Form1
  Form1.Show vbModal
  MsgBox Form1.arraysize
End Sub

<Form1>
Private m_a() As Long
Public Property Get arraysize() As Long
  On Error Resume Next
  arraysize = UBound(m_a)
End Property

Private Sub Form_Load()
  ReDim m_a(100)
End Sub

Private Sub Form_Unload(Cancel As Integer)
  Set Form1 = Nothing
End Sub
0082デフォルトの名無しさんNGNG
誰か教えてください…
マウスの右クリックとctrlキーの使用が禁止されているアプリケーションから、
テキストデータをコピーするプログラムを作成中です。
しかし、上記の禁止事項の為に、クリップボードの中にテキストデータを持ってくることが
出来ません。
コピーを行いたいテキストを反転させる事までは可能です。

使用言語はVB6.0とVC++6。0です。
0083デフォルトの名無しさんNGNG
上記の禁止事項に引っかからずにクリップボードの中にテキストデータを持ってくるような仕組みを作りなされ。
0084 NGNG
>>79

エクスプローラーとかで フォルダが出てる部分とファイルが出てる部分がありますよね。
そのフォルダのフレームの大きさとファイルのフレームの大きさは、
両方の真中にある区切りで調整できます。
また、エクスプロラー自体の大きさを変えても、
フォルダやファイルの部分の大きさが変わります。

こういうのをやりたいのですが、その真中の区切りみたいなのは
何かコントロールでできないかと いうことです。
0085デフォルトの名無しさんNGNG
>>84
アプリケーションウィザードで、エクスプローラースタイルのを
作ってみてコード見てみ。やってること分かるから。
0086デフォルトの名無しさんNGNG
>>84
真中の区切りというのは左右のコントロールの境い目という事ですね。理解しました。
左のコントロールのWidthプロパティ、右のコントロールのLeft及びWidthプロパティを調節すればOKです。

ちなみに「フレーム」というと通常VB組み込みのフレームコントロールの事を指すと思います。
混同するので>>74>>84のような意味では使わない方がよろしいかと。
0087デフォルトの名無しさんNGNG
あぅ
008882ですNGNG
>>83
教えて貰えませんか?
0089デフォルトの名無しさんNGNG
Split 関数のデリミタに2個以上の文字を指定する事は可能ですか?
1個ずつ指定した Split 関数を何回か呼ばないとダメかな?
0090デフォルトの名無しさんNGNG
誰か教えてちょー。
画像をクリックしたりして移動させたり特定の場所にくると吸い付いたり
その他の場所だと元にもどたっりするようなソリティアみたいな感じの・・
009183NGNG
>88
教えるもなにも、仕様の問題だから何ともいえないよ・・・
パッと思いつく方法としては、テキストを選択すると、その周辺にコピーボタンが表示されるとか。
Officeみたいな奴ね。
0092デフォルトの名無しさんNGNG
>>91
他のアプリケーションって書いてあるだろ。ちゃんと読んでやれよ。
0093デフォルトの名無しさんNGNG
Shift+Deleteの切り取りを使えるならそれ
0094NGNG
>>89 一方の区切り文字をReplaceでもう一方の区切り文字に置き換えてからSplit
009583NGNG
>92
取得元が他のアプリだと何か不都合でもあるの?
どっかのパッケージで中身が一切さわれません、ってならともかく。
009689NGNG
>>94
おおっ! かしこい!
そんなやり方があったんだ。感謝。
0097デフォルトの名無しさんNGNG
>>95
だからどっかのパッケージで中身が一切さわれないんだろ。
0098デフォルトの名無しさんNGNG
プロージャ内で
Dim str as String
などと宣言しておいてからにまったく使用していなければ、
コンパイル時にこの str の領域をわざわざ確保しないようにしてくれますか?
009982ですNGNG
ええと、ctrlキーまたはshiftキーを押下げ、または
右クリックをすると、「そのキーは使えません」、
と言ったメッセージボックスが出るようになっていて、
コピーをすることが出来ません。今のところ、
clipboard.settext screen.activecontroll.seltext
でやってみようと思って居るのですけど、このままでは動かないみたいです。
フォーカスがあっていないみたいなのですが、それに関する記述が
必要なのでしょうか?
0100NGNG
>>82 = 99
著作者がコピーさせたくないと思ってるであろうものをコピーしようとするのはどうなんでしょう・・・
てのは置いといて、パッと思いつくのは
そのアプリが使用しているデータファイルを直接読み込んでそのアプリの機能も統合したソフトを作る(w
0101デフォルトの名無しさんNGNG
>ええと、ctrlキーまたはshiftキーを押下げ、または
>右クリックをすると、「そのキーは使えません」、
>と言ったメッセージボックスが出る

そのてのキーを無効にするってんならともかく、いちいちメッセージ出すあたり
そのへんの糞シェアウエア並みの仕様だなw
0102デフォルトの名無しさんNGNG
>>101 別に普通の仕様じゃん。
0103デフォルトの名無しさんNGNG
配列はEraceで消すんだよ
0104デフォルトの名無しさんNGNG
× Erace
○ Erase
0105デフォルトの名無しさんNGNG
37なんですが。
誰か教えて。。
0106デフォルトの名無しさんNGNG
>>105
ヘルプみろ
010737NGNG
とっくにみてますよぉ。
0108デフォルトの名無しさんNGNG
>>107
リストボックス特有のイベントになにがあるか言えるか?
それを全部試せ。
0109デフォルトの名無しさんNGNG
>>107
ListView_ItemClickかな。
罠があった気がするけど。
0110デフォルトの名無しさんNGNG
>>81
> Unload時にNothingを代入しても配列は解放されていませんが何か?

ったく、VB 厨はいつまでたっても進歩しないな。
お前が、Form1 の Form_Unload() で代入している、Form1 は Module1 の Form1 じゃねーぞ、ヴァカ。
011181NGNG
>>110
わかってるよ。お前は文章も読めないのか? 勝手に三行目を消すな。
0112ヴァカはお前NGNG
>>110
( ´,_ゝ`)プッ
011366NGNG
>>73
そうするとAPIの数が数十倍に膨れ上がる罠。
0114デフォルトの名無しさんNGNG
>>77
>VB.Netでつくったアプリは、
>Win98以下は対応にならないんですか?

Win98は対応している。Win95が対象外。
0115デフォルトの名無しさんNGNG
>>82
その糞ソフトの名前晒せ
0116デフォルトの名無しさんNGNG
BorderStyleを可変や固定-実線にすると、
タスクバーに切り替えボタンが表示されますよね?
BorderStyleをなしにしてそのボタンを表示させたいのですが、
どうしたらいいでしょうか?
0117デフォルトの名無しさんNGNG
>>111
> わかってるよ。お前は文章も読めないのか? 勝手に三行目を消すな。

真からヴァカだな。大体、VB 厨の >>81 が Set Form1 = New Form1 なんてことするから、わからなくなるんだよ。
Set FormX = New Form1 とかしてみれ、ヴォケ。
念のために言っとくけど、その下もちゃんと修正するんだぞ。その行だけ変えて、ププッとか書いてくるなよ。
(Form1 の Form_Unlaod の中をどう修正するのかが、楽しみだよ。)
0118デフォルトの名無しさんNGNG
>>117
お前>>72読んでないだろ。だから文章読めないって言われるんだ。
>>81>>72に対する皮肉。わざと問題のある例をだしてるんだよ。
日本語から勉強しなおして来い。
0119デフォルトの名無しさんNGNG
> その行だけ変えて、ププッとか書いてくるなよ。

( ´,_ゝ`) ププッ
0120118NGNG
皮肉というより問題定義と言った方がいいな。
0121デフォルトの名無しさんNGNG
> 真からヴァカだな。大体、VB 厨の >>81
仲間割れですか?
0122デフォルトの名無しさんNGNG
>>121
ヴァカは仲間ではありません。
0123デフォルトの名無しさんNGNG
ていうか、Unload時にちゃんと = Nothing しても、
そのフォーム以外からの参照されるコーディングがあれば
= Nothing
の記述の時点では実は解放されていないだけ。
他から参照されるコーディングがなければちゃんと解放されてる。

formsコレクションでどういう場合にフォームが残っているか確認してみそ。
0124123じゃないけどNGNG
UnloadでSet FormX = NothingなんてしなくてもFormsコレクションを含め
参照しているものがなくなればフォーム内の配列なんかは自然と解放される。

自分のフォームがたまたまグローバルなFormXで作成されているときはUnload時に
グローバルな参照を解放することによりその時点でフォームが削除されるけど、
自分のフォームがグローバルなFormXじゃない時にグローバルなFormXにNothingを
代入するのは意味ない。むしろ関係ないものをNothingしているからバグといってもいい。

Set FormX = Nothingで万事解決みたいな言い方をするのはよくわかってない奴の言うことさ。
0125デフォルトの名無しさんNGNG
>>72
1つ賢くなったね
012637NGNG
ItemCheckだとそれらしい感じだけど
選択数を増やしていくのは問題ないけど減らしていくときイベントが起きないです。
あと、なんか選択している数分イベントが起きてしまいます。
MouseMoveでやろうとしたら、なんかドラッグしても最初しかイベントが起きなかったです
0127デフォルトの名無しさんNGNG
VB.NETについて質問させてください。

.NET FrameworkのCLR上で動作する.NETアプリケーションでは、
VB6.0まではレジストリに記録していたパラメータを「メタデータ」
なるものに記録することで、レジストリの操作が不要になったと本で
読みました。これは、どのような手法によって実現するのでしょうか。
例えば、ウィンドウの位置や大きさなどを、レジストリに頼らずに
起動時などに読み込みたいのです。基本的な記述方法を教えて
いただけるとありがたいです。よろしくお願いします。
0128デフォルトの名無しさんNGNG
>>126
とりあえず、Timerと組み合わせて誤魔化せ。漏れはそうした。
012937NGNG
Timerはさけたいなぁ
0130NGNG
>>129
要はやりたい事がListViewの仕様と合ってないんでしょ。
なら違うコントロール探すか、無ければ作るか、
または他のもので代用するか、やりたい事をある程度妥協するか。
0131nobukitiNGNG
画面を常に最前面に表示ってSetWindowPos使うしかないんでしたっけ?
プロパティちょちょっといじってできませんでしたっけ?
0132NGNG
>>130補足
B表形式のコントロールを使うに0.7票 Cに0.3票
0133nobukitiNGNG
答えろオラ
0134nobukitiNGNG
>>133は僕ではありません。
0135デフォルトの名無しさんNGNG
自分で調べろオラ
0136 NGNG
>>98

先頭に ' をつけとけば 大丈夫(w
■ このスレッドは過去ログ倉庫に格納されています