(*´д`*)ウッ… VB初心者質問スレ Part15
■ このスレッドは過去ログ倉庫に格納されています
0001エロチカセブン
NGNGPart 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
0254
NGNGああ なるほど!
DoEventsでokだ。
さんくすこ
0255
NGNGRefresh(かDoEvents)って 書いてあったらから 同じもんかと
思っちゃったヨ!
Delphiだったら どうやったらいいか知ってたんだけどね。
VBは あんましやってなかったからさ。
おかげで 表示が 速くなったヨ。
0256デフォルトの名無しさん
NGNGConnectionRequestイベントの中で、acceptしたあと、
すぐにErrorイベントが2回続けて発生することがあるんですけど。
エラーの内容は、エラーコード=10053 「タイムアウトまたは他の問題によって、接続が中断されます」。
具体的になにが原因なのでしょうか?
0257デフォルトの名無しさん
NGNGランタイムやコンポーネント(ocx)などは、
そのLAN上のマシンから読みとられるんですか?
それとも起動したマシンから読みとられるんですか?
0258
NGNGlRtn = SetWindowPos(form1.hWnd, -1, 0, 0, 0, 0, &H40)
これで 最前面に表示させようとしてますが、
実行すると タスクバーにもうひとつバーが表示されて
ほかの画面をクリックすると それが 最前面になってしまいます。
常に 最前面にするには どうしたらいいのでしょうか?
0259デフォルトの名無しさん
NGNGよみとられません。
0260デフォルトの名無しさん
NGNGサーバーアプリはVBじゃないほうがいいと思う
0261デフォルトの名無しさん
NGNGPrivate Const HWND_TOPMOST = -1
Private Const SWP_SHOWWINDOW = &H40
Private Const SWP_NOACTIVATE = &H10
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
SetWindowPos hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_NOMOVE Or SWP_NOSIZE
多分、SWP_NOMOVEとSWP_NOSIZEを入れてないせいでしょう。
0262258
NGNGとやったら OKでした〜〜
ActiveX DLLだと Form1のハンドルという取得の仕方ができないらしい
0264デフォルトの名無しさん
NGNGMDBへのデータ登録を行い、
登録が上手く行ったら
その画面(frmAA)のForm_Load処理を通すようにしたいんですけど、
その場合、
unload me
frmAA.show
と書く以外に良い方法ありますか?
0265デフォルトの名無しさん
NGNG単純にForm_Load呼び出したら?って言うかその仕様妙かも。
0266デフォルトの名無しさん
NGNGあるレコードのフィールドAが更新されたら、その値に応じてフィールドBを更新しようと、
FieldChangeComplete イベント内に
pRecordset.files("B").Value=hoge
と言うコードを書いたのですが、「コンシューマのイベントハンドラはプロバイダの再
入不可能なメソッドを呼び出しました」となりうまくいきません。WillChangeFieldイベ
ントでも同様でした。
いい解決方法があれば教えていただけませんか。
OLD DB Provider は ODBC 、サーバはPostgreSQLを使用しています。
0267デフォルトの名無しさん
NGNG無視されてかわいそうだから教えてあげる。
でもその手の垢取りツールまがいのものはあんまり好まれないから
こういう場で堂々と質問するのはちょっとマズったね。
それで、質問についての回答だけど。
ずばり、良い方法は無いと思って良い。俺も前やったことあるので。
無理矢理やるなら、WebBrowserコントロールにフォーカスを当てて
SendKeysでTabキーを送ってやれば、WebBrowser内で次のフォームか何かにフォーカスが移る。
そうして{TAB}{TAB}{TAB}{TAB}とやっていって、入力欄にフォーカスが行ったら
これもスマートな方法じゃないが、一旦入力したい文字列をクリップボードにコピーし
SendkeysでCtrl+Vを送る。(貼り付け)
こうすることでWebBrowserのフォーカスのある項目に文字列をセットできる。
次の項目にまた文字列を入れたい場合は、一旦クリップボードの内容をClearしてから
その項目に入れたい文字列をクリップボードにまたコピー、SendKeysでCtrl+V。
0268デフォルトの名無しさん
NGNG0269デフォルトの名無しさん
NGNGわかる方教えてください。お願いします。
0270デフォルトの名無しさん
NGNG0271デフォルトの名無しさん
NGNG受け取ったHTMLのStringを解析し、
input タグ内の value プロパティを任意の文字列に入れかえたHTMLを表示ってのが好きそうなやりかただけど。
何に使うのかわからないけど、決まりきったフォーム内容なら
最初からPOSTメソッドを作成して送るほうが手っ取りばやいと思うけど。
その場で図書券のスリーマンモスの時はそれにしたなぁ(藁
クッキーデータも取得して作成しなければならなかったけけど。
0272デフォルトの名無しさん
NGNGユニックスタイムスタンプみたいに、
通算秒にできればいいんですけど。
TIME$ でふたつの時間さを求めるには、秒や分が60までしかなかったり、
23の次が0だったり、
2月が28や29だったり30や31の月があったりするところで大変なので。
0273271
NGNGまたは、onLoad関数に、
document.forms[0].name.value='hoge'
とかいうのを付加してHTMLを表示させるとか。
0274デフォルトの名無しさん
NGNGtimerじゃだめなのか?
0275デフォルトの名無しさん
NGNGDirectXとか使わないと無理なんでしょうか?
0276デフォルトの名無しさん
NGNG0277241
NGNGお二方ありがとうございます!!
>でもその手の垢取りツールまがいのものはあんまり好まれないから
>こういう場で堂々と質問するのはちょっとマズったね。
なるほどそうだったんですか・・。大変勉強になりました。
では、早速両方の方法で試して見ます。本当にありがとうございました!!
0278デフォルトの名無しさん
NGNGTime関数から時分秒がわかるから、後は掛け算足し算だけじゃん。
0279デフォルトの名無しさん
NGNG0280デフォルトの名無しさん
NGNG煽りで程度がわかるな。
0282デフォルトの名無しさん
NGNG0283デフォルトの名無しさん
NGNGできます。
0284初心者
NGNGフォーム上にコントロールがいくつかある時、現在フォーカスを持っている
コントロールは Screen.ActiveControl で確認できますが、
「今現在の"一つ前"にアクティブだったコントロール」を取得するにはどうしたらよいですか?
グローバルな変数を用意して、全てのコントロールの LostFocus 時に
コントロール名を保存しておく……と、これくらいしか思い浮かびません。
よろしくお願いします。
0285デフォルトの名無しさん
NGNG0286デフォルトの名無しさん
NGNGなんでそんなものを取得したいの?
何をやりたいのかわからんけど、
たぶん別のアプローチで解決できると思うよ。
どうしても!ってことなら、
サブクラス化とかで方法がない訳でもないだろうけど。(思いつき発言)
一つ前のアクティブコントロールなんて
普通必要がないから簡単に取得できないんだと思わない?
0287284
NGNGありがとうございます。
一つ前のアクティブコントロールを取得したい訳は、
「あるボタンが押されるとある処理が走るが、それがエラーになった場合、
フォーカスを元の位置(ボタンをクリックする前の位置)に戻したい」
という仕様にしたいのです。
別のアプローチとはどういうことでしょうか。
0288デフォルトの名無しさん
NGNG「状態」を保存しておく変数をひとつ持ってそれをもとにアクティブにするコントロールを割り出すとか。
各コントロールの状態からアクティブにすべきコントロールを返す関数を用意しておくとか。
いろいろあるじゃん。
0289デフォルトの名無しさん
NGNGタイマーコントロールでグローバル変数にアクティブコントロールを
保存しとくってのがVB房らしくていいぞ
0290デフォルトの名無しさん
NGNGタイマーコントロールで1秒おきにグローバル変数にアクティブコントロールを
保存しとくってのがVB房らしくていいぞ
0291284
NGNGありがとうございます。
>「状態」を保存しておく変数をひとつ持って〜
つまり、状態Aならこれ、状態Bならこれ……という感じですかね。
その状態の"変化"を感知するにはやはりすべてのコントロールのイベントプロシージャが
必要になってくるのかな、と思いますが、どうでしょうか。
>各コントロールの状態から〜関数を用意しておく
その関数内ですべてのコントロールを調べて該当のものを返す、と。
つまりコントロールになにかしらの目印(フラグ)が必要になってきますね。(Tagプロパティを使ったり)
だとするとやはり、各コントロールのイベントプロシージャを記述する必要が……(?)。
0292284
NGNGありがとうございます。
タイマーを使うとは考えつかなかったです。
確かにこれで要件は満たせそうですが、極力無駄なイベントを発生させたくないのと、
タイマーコントロールは規約で使用不可だった気が……スイマセン。
0293デフォルトの名無しさん
NGNGタイマーはおそらくネタだから無視しろ。
0295デフォルトの名無しさん
NGNGUNIX時間が欲しいなら、
UnixTime = DateDiff("s", #1/1/1970#, dateVB) - 32400 'JST-9
で取れる。
0296?
NGNGフォーカスの移動自体を無くせばいいと思います。
イメージコントロールはフォーカスを取得しないので、
押されてない状態のボタンの絵と押された状態のボタンの絵を
イメージコントロールで切り替えてそれをコマンドボタンの代わりにすればよろしいかと。
0297デフォルトの名無しさん
NGNGネタじゃねーぞ
0298デフォルトの名無しさん
NGNG0299デフォルトの名無しさん
NGNGマジだったのか。これだから VB 厨は...。
0300デフォルトの名無しさん
NGNG歴代1位の厨は誰ですか?
0301デフォルトの名無しさん
NGNG0302デフォルトの名無しさん
NGNGどうやれば出来ますか?簡単には出来そうもないので質問してみます・・・
0303デフォルトの名無しさん
NGNGお ま え
0304デフォルトの名無しさん
NGNGタイトルバーなしにして、自分で描画すればー。
0306284
NGNGありがとうございます。
イメージを使った「偽コマンドボタン」ですか。
おもしろいかもしれませんね。
結局、「一つ前のコントロールにフォーカスを移す」仕様はやめました(笑)。
そこまで要求されませんでした。
皆さんありがとうございました。
0307デフォルトの名無しさん
NGNGピクチャーボックスで文字を表示してるのですが、
ピクチャーボックスに自動改行機能を付けるには
どうしたらいいのでしょう?
それと、適当な文字が左から何ドット上から何ドットの
位置にあるか取得できたら、自動改行ができるような
気がするのですが、取得方法はありますか?
0308デフォルトの名無しさん
NGNGプログラムしろよ!
なにかわからないところがあるならそれを質問しろ。
0309?
NGNGキーボード操作なんて簡単に実装できますよね?
>>299
タイマー使うのそんなに実害あるかな?そんな事より、
使う使わないはともかく、一番短いコードで実現できる点を評価したい。
自分じゃ何も思いつかない能無しが見当違いの煽りしてんじゃないよ。
とかたまには言ってみたりしていいですか?
>>301
別の人ですね。今のところ?はこのスレでしか使ってないです。
でもあのドラマは何回か見ましたよ。面白かった。
0310デフォルトの名無しさん
NGNGTextWidthで文字幅がわかるから、文字の描画位置は自己管理しる。
0311310
NGNG03121
NGNGたとえば、Foo = "ABC" & vbCrLf & "DEF" & vbCrLf の場合の、
Perl で言うところの chop Foo や、Foo =~ s/\n$// です。
0313312
NGNG0314デフォルトの名無しさん
NGNGhoge = Replace(hoge,vbCrLf,"")
じゃ駄目なの?
0316デフォルトの名無しさん
NGNGあぁ、なるほど。
If Right$(hoge,2)=vbCrLf Then
hoge = left$(hoge,Len(hoge)-2)
End If
ってやって地道にやるしかないよーな…。
0317デフォルトの名無しさん
NGNGhoge = Left(hoge, Len(hoge) - 2)& Replace(hoge, vbCrLf, "", Len(hoge) - 1, 2)
か?
0318デフォルトの名無しさん
NGNG0321デフォルトの名無しさん
NGNGMicrosoft VBScript Regular Expressions 5.5を参照設定しる。(WSH5.6必要)
でもたかだかそのためだけにって感じも無きにしも非ず。
0322デフォルトの名無しさん
NGNG0323デフォルトの名無しさん
NGNGマルチポストかよ。
0324デフォルトの名無しさん
NGNGおっけ。
0325デフォルトの名無しさん
NGNG実害以前に、耐えられない仕様だ。
1秒おきの場合、
最後にTimerの関数が実行された後、ボタンが押されるまでに、
フォーカスが複数移動したらどうするんだ?
ってことは思いつかなかったんでしょうか?
すなおに TabStop = True であるコントロールの GotFocus イベントに書くのが余計な負荷をかけない。
0326デフォルトの名無しさん
NGNGまあまあ、VBだから許してあげてよ。
0327デフォルトの名無しさん
NGNGコントロールごとインスタンスを割り当ててそこから、
フォームに通知した方がいいね。
0328デフォルトの名無しさん
NGNGサンプルきぼん
0329デフォルトの名無しさん
NGNG適当に作ったけどこんな感じかな。
Formにいくらコマンドボタンを置いても共通のIAllGotFocus_AllGotFocusが発生する。
この例はコマンドボタンだけ対応。他のコントロールに対応したかったら、
それ専用のClass1を作成するか、Class1を改造したり、まぁ他にも色々工夫してくれ。
<Form1>
Implements IAllGotFocus
Private m_controls As New Collection
Private Sub IAllGotFocus_AllGotFocus(ByVal ctrl As Control)
Debug.Print ctrl.Name
End Sub
Private Sub Form_Load()
Dim ctrl As Control
For Each ctrl In Controls
If TypeOf ctrl Is CommandButton Then
Dim c1 As Class1
Set c1 = New Class1
c1.SetControl ctrl, Me
m_controls.Add c1
End If
Next ctrl
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set m_controls = Nothing
End Sub
0330つづき
NGNGPrivate WithEvents m_cmd As CommandButton
Private m_AllGotFocus As IAllGotFocus
Public Sub SetControl(ByVal ctrl As Control, ByVal AllGotFocus As IAllGotFocus)
Set m_cmd = ctrl
Set m_AllGotFocus = AllGotFocus
End Sub
Private Sub m_cmd_GotFocus()
m_AllGotFocus.AllGotFocus m_cmd
End Sub
<IAllGotFocus>
Public Sub AllGotFocus(ByVal ctrl As Control)
End Sub
0331デフォルトの名無しさん
NGNG0332328
NGNGthx−
なるほど。たしかにスッキリしてていいすね
Implementsってこう使うのか。。
0333デフォルトの名無しさん
NGNG<IAllGotFocus>
↑ってどういうこと?モジュールかな?
0334デフォルトの名無しさん
NGNG0336?
NGNG>実害以前に、耐えられない仕様だ。
つまり目立った実害は無いという事ですか?
タイマーイベント内もたった一行だし余計な負荷がかかると言ってもたかが知れてますしね。
>1秒おきの場合、最後にTimerの関数が実行された後、ボタンが押されるまでに、
>フォーカスが複数移動したらどうするんだ?ってことは思いつかなかったんでしょうか?
インターバルを調節すればいいってことは思いつかなかったんでしょうか?
>すなおに TabStop = True であるコントロールの GotFocus イベントに書くのが余計な負荷をかけない。
だったらそう書けばいいのになんで余計な煽りするんですか?
質問者が他に手段はないかと聞きに来てる時に手段の1つとして上げてる、適切なレスだと思いますが。
つまらない言い合いしてすみません。。。
でも自分的にはくだらない煽りより面白い意見を聞きたいと思うんです。
>>329
そんなことが出来るんですか。勉強してみます。
0337デフォルトの名無しさん
NGNG> インターバルを調節すればいいってことは思いつかなかったんでしょうか?
インターバルを調整しても、本質的には解決しませんよ。
Timerは優先順位が低いので、負荷がかかるとイベントが後回しになり
取りこぼすことになります。
0338デフォルトの名無しさん
NGNG0339デフォルトの名無しさん
NGNG0340338
NGNG0341325
NGNG以上のような理由でネタもしくは、
質問者を混乱させようという悪意かと思っただけ。
なので、質問者が混乱しないようにネタだと注意をしておいただけ。
あおってはいない。
>>337にもあるとおり、実際取りこぼしのないようにインターバルを
を小さくすればするほど余計な負荷がかかる上に、
どれだけ小さくしても完全ということはない。
>質問者が他に手段はないかと聞きに来てる時に手段の1つとして上げてる、適切なレスだと思いますが。
質問を良く見てみろ。
この手法はすでに質問者が自分で言っていて、他にいい手段はないのかと問ういている。
だからわざわざ質問者に対して書くべきことでもなかったのだ。
0342デフォルトの名無しさん
NGNGDim Date1 As Date
Dim Date2 As Date
Dim Min As Integer
Date1 = "2002/09/30 12:00:00"
で、Date2にDate1のMin分後の日時を入れたいんですが、
スマートな方法教えてください。
お願いします。
0343デフォルトの名無しさん
NGNGDateAdd 関数
0344デフォルトの名無しさん
NGNGありましたね。
ありがとうございました。
0345327=329
NGNGあぁ、そうか。使ったことが無い人にはいきなり名前だけ書いてもわからんわな。
<Form1>はフォームモジュール、<Class1><IAllGotFocus>はクラスモジュール。
ちなみにIAllGotFocusのIはこれがインタフェースであることを表している。
VBはクラスもインタフェースも宣言が同じなので名前でわかりやすくしている。
0346デフォルトの名無しさん
NGNGMSDNのヘルプを見ながらTCPのサーバーを作ってます。
クライアントからの通信を、クライアントそれぞれに返したいのですが、
色々いじっても、1つのクライアントにしか返送できませんでした。
(最初に立ち上げたクライアントしか返らない、通信を送ったクライアントにしか
返送しない。最後に立ち上げた〜以下略。下のソースは、最初に〜の一部です。)
Winsock1(Index).GetData strData
txtData(Index).Text = strData
For i = 1 To intMax Step 1
If Winsock1(i).State = sckConnected Then
Winsock1(i).SendData strData
End If
Next
通信が確立しているソケット全てに対して、データを送っているイメージで、
プログラミングしています。
ちなみにクライアントとサーバ間はどれも通信はできていました。
通信できる状態でも、sckConnected 以外の値を取ったりしているのでしょうか?
それとも何か根本的な間違いをしてるんでしょうか?
わかる方がいたら教えて下さい、お願いします。
0347デフォルトの名無しさん
NGNG単語の意味はわかるがあらわそうとしているものがわからない。
0348デフォルトの名無しさん
NGNG0350デフォルトの名無しさん
NGNGちゃんとパッケージに書いてあるよ。
(あなたがVBを不法な手段で手に入れたのでなければね)
メーカーのテクニカルサポートサイトにも明示されているはず。
0351デフォルトの名無しさん
NGNGあんがと。
まだ買ってないので<パッケージ
どれがいいかなと。
microsoftのページみてるけど、書いてることがいまいち意味がわからなかったりする。
例:右記の製品インストール時の追加必要システム > Microsoft Data Engine
これがあらわしてることがわからない。
0352デフォルトの名無しさん
NGNG0353デフォルトの名無しさん
NGNG合格です。このスレでコテハンになる許可が下りました。
■ このスレッドは過去ログ倉庫に格納されています