くだすれVB6.0以前(超初心者向け)at TECH
くだすれVB6.0以前(超初心者向け) - 暇つぶし2ch587:デフォルトの名無しさん
09/01/31 18:22:01
意味がわかりません

588:デフォルトの名無しさん
09/01/31 18:34:26
前提(Debug.Printでプログラム技術を教える本が無い)が間違ってるので意味が伝わらない

589:デフォルトの名無しさん
09/01/31 19:29:57
VB6とコマンドプロンプトとプログラム技術の関連性がまったくわからない。

590:デフォルトの名無しさん
09/02/01 15:57:03
エスパー頼む

591:デフォルトの名無しさん
09/02/01 16:13:57
ハードディスクが壊れたので、俺が2年前に作った数キロバイトのコードを
思い出す方法を誰か教えてください。

ネット上のサーバー履歴も、机の上のパソコンの中の履歴も、ちょうど同じ
日に消えてしまいました。

592:デフォルトの名無しさん
09/02/01 16:19:31
面白いと思って書いてるのか知らんが、まったくつまらないから。
もっと他にやることないのかよ惨めな奴だな

593:デフォルトの名無しさん
09/02/01 20:54:02
スレで信頼できるヤツを探して、逆汗してもらうこった
つまり、そんなヤツを探す方法に、この問題は行き着くわけだが
そうすると、VB6の問題じゃないなこれは

594:デフォルトの名無しさん
09/02/01 20:57:29
ハードディスクの内容を復元してくれる業者に頼め。

595:デフォルトの名無しさん
09/02/02 02:03:56
>>593
逆汗って何か分かって言ってんのか?
意味もよく分かってないくせに使うんじゃねえよ

596:デフォルトの名無しさん
09/02/02 07:35:02
ん。exeは残ってるけど、ソースないよ。って話ちがうんか。まあいいか

597:デフォルトの名無しさん
09/02/03 10:38:05
VB6+Microsoft SoapToolkit 3.0でプログラムをしているんだが、
処理中に実行時エラーが発生してしまうんだが、どうしたら出なくなるのか知ってる奴いない?

 実行時エラー '-2147221504(80040000)':
 Connector:Connection time out.

一応、ConnectorProperty("Timeout")は設定している。

598:デフォルトの名無しさん
09/02/03 14:30:47
エラーが出る場合は、再現する最小限のコードを貼れ
話はそれからだ

599:デフォルトの名無しさん
09/02/03 15:09:19
ソース編集のウィンドウでマウスのスクロールをしても画面が動かないのはなぜ?


600:デフォルトの名無しさん
09/02/03 15:17:53
仕様。

601:597
09/02/03 15:31:09
>>598
最低限のコードか・・・
結構長くなりそうだけどいい?

602:デフォルトの名無しさん
09/02/03 16:24:31
>>599
エレコムのマウスユーティリティ(エレコムマウスじゃなくても使える)
をインスコするとVB6のソース画面もスクロールできる
これ豆ry

603:デフォルトの名無しさん
09/02/03 17:11:37
>>599
>>602でもできるのかもしれないけどこれでも出来る
Visual Basic 6.0 IDE でマウス ホイール イベントが機能しない
URLリンク(support.microsoft.com)

604:デフォルトの名無しさん
09/02/03 17:47:10
>>603
トンクスです

605:デフォルトの名無しさん
09/02/03 21:08:18
>>603
うおースクロール出来るー、嬉しい ^^
ありがとさんです

606:デフォルトの名無しさん
09/02/06 00:48:14
>>585
ON...GOSUBは6.0まで残されてたね。あくまでレガシー活用目的で、
Select Case に書き換えろ、ってQuickBASICの頃から言われてます。
N(N88)-BASICの頃はON ERROR GOTO のほかにもON KEY(n) GOSUB やON STOP GOSUB
やらがあって、それぞれ3単語で1ステートメント扱いでリファレンスにも載ってた。
QBで数が増えすぎてON EVENT GOSUBと一緒くたに説明されるようになった。
どうしてON ERROR GOSUBにしなかったかというと、GOSUBはRETURNでもどるが
ご存じの通りエラーの時はRESUMEで戻るから「GOSUB」を使いたくなかった。
On Error Resume NextができたのはVBから。以前は10 ON ERROR GOTO 60000
60000 RESUME NEXTと書くしかなかった。
考えたら、あの当時にはエラー処理用ステートメントが用意されていたのは
進んでいたのかもしれない。

607:デフォルトの名無しさん
09/02/06 00:55:14
ちなみに蛇足しておくと
ON KEY(n) GOSUB はファンクションキーn番が押されたらGOSUB
ON STOP GOSUB はPC-9800等過去のPCに付いていたSTOPキーが押されたらGOSUB
Stopステートメントとは無関係ですよ。今ならDoEvents+KeyDownイベントに近いのかなあ。
ほかにも音楽演奏バッファが空いてきたらGOSUBする ON PLAY GOSUBとか
いろいろあった。

608:デフォルトの名無しさん
09/02/06 00:58:43
>>591
大型のハンマーで頭を後ろから思いっきりたたく。
目から壁にソースコードが映写されますよ。

609:デフォルトの名無しさん
09/02/06 01:38:31
自然科学系の出版社勤務ですが、次のアマゾンのレヴューがさっぱり解読できません。
どなたか教えてください。
URLリンク(www.amazon.co.jp)

610:デフォルトの名無しさん
09/02/06 08:04:22
URLリンク(www.amazon.co.jp)
宣伝乙。と思ったら、なんかおもしろそうな文字化けしてるなw

でも、VB6はたぶん関係ナカッタ

611:デフォルトの名無しさん
09/02/06 08:15:27
>>601 ナイス回答がある保証はないが、本気なら、うpすればいいw

612:デフォルトの名無しさん
09/02/06 23:47:21
>>601
とりあえずファンクション単位でもいいから
貼れや

613:デフォルトの名無しさん
09/02/07 03:01:22
そこらじゅうにDebug.Print入れて変数の値を調べろ

614:デフォルトの名無しさん
09/02/07 08:26:04
>>597
これ?
URLリンク(www-01.ibm.com)

615:デフォルトの名無しさん
09/02/08 03:22:44
>>587-590
たとえばCならprintf、C#ならConsole.WriteLineやDebug.WriteLineで
コンソールやデバッグに出力するところから基礎を始めることがあるけど、
VBではテキストボックスに出すようなのが多い。それだとコントロール周りの
余計な(そのときの本題と関係ない)知識が必要だし、実業務でも
デバッグをMsgBoxでやっちゃってフォーカスがらみのコード追跡ができないと
嘆くような駄目プログラマが育ってしまう。Debug.PrintやPrint#を使う
習慣を身につけさせるべきだ。

と言いたいんじゃないかと思う。

616:デフォルトの名無しさん
09/02/08 10:17:15
そもそもVB6じゃ標準出力に何か出力できたっけ?

617:デフォルトの名無しさん
09/02/08 14:04:09
デバッグモードで起動すればコンソールに出せるだろ・・・

618:デフォルトの名無しさん
09/02/08 14:44:41
FSOのGetStandardStream使ってもできるし、ほかにも

619:デフォルトの名無しさん
09/02/08 17:05:59
初出の、教えるという観点なら、WScriptオブジェクトとかもいいかもしれん
つかできるかな、できるはずだけど あとでやってみよ

620:デフォルトの名無しさん
09/02/08 18:47:17
editbin /subsystem:console hoge.exe
とりあえず野望への一歩。

621:デフォルトの名無しさん
09/02/09 17:54:24
質問です。

ADOとMs標準のDataGridで一覧表を作ってるんですが、
どうしても分割ペイン追加出来ないように出来ないんです。
MSDNには.SplitsのAllowReSizeにfalseセットすれば追加出来なくなる
みたいに書いてあるんですが、サイズ調整が出来ないだけで、
追加されてしまいます。

何か良い方法をご存じの方いらっしゃいませんか?

622:621
09/02/09 18:22:41
自己解決しました・・・

AllowSizingだけじゃなく、SizeModeの設定も必要なんですね・・・


623:デフォルトの名無しさん
09/02/09 19:55:39


624:デフォルトの名無しさん
09/02/10 00:16:22
>>617
具体的な方法を教えてください。

625:デフォルトの名無しさん
09/02/10 02:46:33
参照設定 Windows Script Host Object Model (wshom.ocx)

Dim fso As New FileSystemObject
Dim txtstm As TextStream
Set txtstm = fso.GetStandardStream(StdOut)
txtstm.WriteLine "helloあいうえお"
txtstm.Close

editbin /subsystem:console vbxxx.exe


626:624
09/02/10 10:06:24
>>625
すみません、その方法ではなく>>617の方法が知りたいのです。

627:デフォルトの名無しさん
09/02/10 12:14:19
Debug.PrintはOutputDebugStringとは異なる仕掛けなのでデバッガには出ない。
さらにEXEにする段階でDebug.PrintとDebug.Assertは取り除かれる。

知ったかもあれだが粘着もそれだ、
>>617 は単純にVB6のIDEで動かせばいいといってるだけかもしれんよ。

628:624
09/02/10 12:51:10
つまり、デバッグモードではコンソールに出力できないということでしょうか。

629:デフォルトの名無しさん
09/02/10 13:03:18
VB6のアプリやIDEはコンソールを持ってないから普通は出来ない。
普通じゃなければAPIつかって、AllocConsole/GetStdHandle/WriteConsoleの
流れでできるっちゃできる。

630:デフォルトの名無しさん
09/02/10 20:31:04
VBではやったことないが、AllocConsole,GetStdHandle(API)すごい便利だよ
思ったより簡潔に書ける いっぺんつかってみるべき

631:デフォルトの名無しさん
09/02/10 20:35:23
いい加減、うぜーぞ

632:デフォルトの名無しさん
09/02/10 21:34:43
>>631
>>617さん、ごきげんよう

633:デフォルトの名無しさん
09/02/10 21:45:34
コンソールが何かわかってなかった馬鹿

634:デフォルトの名無しさん
09/02/10 21:49:57
617涙目

635:デフォルトの名無しさん
09/02/10 22:23:54
コンソールに出すくらいなら、ファイルに落とすわ

636:デフォルトの名無しさん
09/02/10 22:26:08
今更になって「printfデバッグってすげーな」と声高に主張しているようで恥ずかしい。

637:デフォルトの名無しさん
09/02/10 22:29:40
実際に適してるかどうかってのは今回あまり関係ない
技術的に可能かどうかって話だから

638:615
09/02/12 00:25:11
すまん、俺がエスパーだったばかりに・・・

639:デフォルトの名無しさん
09/02/12 07:54:34
は?お前のレスなど糞の役にも立ってないわ

640:デフォルトの名無しさん
09/02/12 15:37:44
TextWidthを使ってぴったりに文字幅設定するのって難しいんですかね?
どうしても表示幅が狭くなってしまいます
(とりあえずダミーの空白とか入れてごまかしてはいますが…)

641:デフォルトの名無しさん
09/02/12 19:06:45
>>638
後半は認める

642:デフォルトの名無しさん
09/02/12 22:15:13
質問です
複数のテキストボックスに入力した内容を
ひとつのファイルに入出力させようと思っているのですが
どのような方法でやればいいのか見当付きません
ご教授願います

643:デフォルトの名無しさん
09/02/12 22:33:37
入力と出力を決めないとこっちも困る

644:デフォルトの名無しさん
09/02/12 22:45:39
>>643
すみません…
ええと複数のテキストボックスに入力した内容をひとつのファイルに出力させて
その後そのファイルを読み込んだら複数のテキストボックスが出力した前と同じ内容になるプログラムでした

645:デフォルトの名無しさん
09/02/12 22:53:13
そんなことはわかってる
もう面倒だからXMLにしちゃえよ

646:デフォルトの名無しさん
09/02/12 23:00:50
テキストボックスの内容を後で識別できるように区切り記号(例えばTabとかCrLfとか)を付けて一つの変数にぶち込む
その変数をファイルに書き込む

ファイルを開いて全て一つの変数にぶち込む
変数の最初から区切り記号の一つ前までをテキストボックスにぶち込む
変数の内容を最初の区切り記号+1にして変数が空っぽになるまでループ

ちゃんとやらないと無限ループするから他の方法の方がいいかもしれないが目的は達するからこれでいいんじゃね?
もしかしてコードがほしかった?

647:デフォルトの名無しさん
09/02/12 23:03:53
>>645
>>646
参考になりました。ありがとうございます



648:デフォルトの名無しさん
09/02/13 14:57:17
>>642
複数のテキストボックスへ入力された内容を、
String型変数に入れて文字列編集すればいいと思う。

例えば、
dim strA as string
strA = myform.textbox1.text & vbcrlf & myform.textbox2.text

とか。んで strA の内容をファイル化すればいい。

649:デフォルトの名無しさん
09/02/13 14:58:17
644みなかった。スマンw

俺はそういうときは、tab 区切りにしてる

650:test
09/02/13 16:45:13
暗号化プログラム作ったんですが
unicodeで貼り付けると
。」〄「〖 こんな感じでうまく貼り付けることができません
これをansiに変換しても
䊁皁脿㽵 となりうまく貼り付けられません
良い方法あったら教えてくださいm(__)m


651:test
09/02/13 16:46:55
あれここだとうまく貼り付けられてる
他のスレでうまくいかなかったんだけどなぜ?


652:デフォルトの名無しさん
09/02/13 17:55:38
板の設定次第
URLリンク(pc11.2ch.net)

653:651
09/02/13 20:10:28
なるほどこの部分ですね
BBS_UNICODE=pass
ありがとうございます


654:デフォルトの名無しさん
09/02/15 21:29:07 BE:1043968493-2BP(0)
>>2のVB5をダウンロードしたけどシステムの設定が
不正なため、vbを起動できないって出てきたけど
どうすればいいかおしえて

655:デフォルトの名無しさん
09/02/15 21:53:12
OSのインストールからやりなおすのが言語を入れる鉄則

656:デフォルトの名無しさん
09/02/15 22:04:21
Windowsの互換モード設定は試した?

657:デフォルトの名無しさん
09/02/16 19:18:02 BE:695979263-2BP(0)
>>656  互換モード設定してもできない

658:デフォルトの名無しさん
09/02/16 19:31:02
環境は何だよ?VirtualPCで開発環境作ったほうがよくないか。

659:デフォルトの名無しさん
09/02/17 17:35:25
vmware serverがいいお

660:デフォルトの名無しさん
09/02/19 08:29:05
VB5.0でとあるexeを起動して終了を待機しているのですが
そのexeの戻り値を取得する必要が出てきました。
exeの戻り値はどのようにして取得したらよいでしょうか?
下記が現在のコードです。

Dim IDProcess As Long
Dim hProcess As Long
Dim ret As Long

IDProcess = Shell(strCommandLine, vbMinimizedNoFocus)
hProcess = OpenProcess(SYNCHRONIZE, 1, IDProcess)
ret = WaitForSingleObject(hProcess, INFINITE)
ret = CloseHandle(hProcess)


661:デフォルトの名無しさん
09/02/19 09:02:10
exeは関数じゃないので戻り値なんて無いよ

もしかして終了コードのことを言ってるのか?

それともActiveX.exeなのか?
ActiveX.exeならexe自体ではなくexeが持つ関数に戻り値があるけど

662:デフォルトの名無しさん
09/02/19 09:16:40
>>661
すみません。戻り値じゃなくて終了コードですね。
失礼いたしました。

ぐぐりながらやってみているのですが
なぜかhProcessが0です。
なぜいままで動いていたのだろうorz

Dim IDProcess As Long
Dim hProcess As Long
Dim ret As Long
Dim lExitCode As Long

IDProcess = Shell(strCommandLine, vbMinimizedNoFocus)
hProcess = OpenProcess(SYNCHRONIZE Or PROCESS_QUERY_INFORMATION, True, IDProcess)
If hProcess <> 0 Then
MsgBox hProcess
ret = WaitForSingleObject(hProcess, INFINITE)
ret = GetExitCodeProcess(hProcess, lExitCode)
ret = CloseHandle(hProcess)
End If


663:デフォルトの名無しさん
09/02/19 09:25:19
うぅ。
すみません。
CreateProcessを使ったら終了コードが取得できました。
お騒がせしました。

664:デフォルトの名無しさん
09/02/20 00:52:53
ところでみなさん WshShell.Run や Exec を活用してますか?

665:デフォルトの名無しさん
09/02/20 01:09:32
あまり活用してない
というかその二つに限れば、VBで使えば活用(活かした利用)にはならない
もっといいものがいっぱいあるから

666:デフォルトの名無しさん
09/02/20 13:36:42
なるほど
ありがとうございました

667:デフォルトの名無しさん
09/02/21 20:32:43 BE:2165268487-2BP(0)
>>658使い方がわからん

668:デフォルトの名無しさん
09/02/21 20:35:59
VB6.0ってまだ需要ありますか?
ラーニングエディション持ってるんで、
ちょっと勉強してみようか・・・と思ってるんですが。

669:デフォルトの名無しさん
09/02/21 20:39:25
こういう取り残された人たちには需要があります。
>422 名前: デフォルトの名無しさん 投稿日: 2009/02/11(水) 17:01:01 
>そもそも、.NETはお金を頂くソフトウェア作るには不向き 
>・遅い 
>・ソース丸見え 
>・フレームワークインストール必須 
>・FAでは絶対に無理 

>枚挙に暇がない 


670:デフォルトの名無しさん
09/02/21 20:41:47
>>669
どうもです。サンクス。

671:デフォルトの名無しさん
09/02/21 22:37:44
>>667
簡単だからネットで使い方調べれ。動作確認にはおすすめ。

672:デフォルトの名無しさん
09/02/22 16:09:59
なるほど
ありがとうございました

673:デフォルトの名無しさん
09/02/22 19:05:00
>>669
俺おもいっきり取り残されてるな…。

…だからこのスレにいるのかwww

674:デフォルトの名無しさん
09/02/24 01:08:24
なるほど

675:デフォルトの名無しさん
09/02/26 02:02:25
Javaでのstatic変数はVBではどんな宣言になるんですか?

やりたいこと
1.インスタンスを生成せずにその変数にアクセスしたい
2.異なるクラス間で同じ値を共有したい
3.javaのように簡単に実現したい
の三本です

676:デフォルトの名無しさん
09/02/26 02:15:51
すいません。訂正です。
>2.異なるクラス間で同じ値を共有したい

→ 2.異なるクラス間で同じ変数を共有したい

677:デフォルトの名無しさん
09/02/26 02:23:15
>>675
Shared

678:デフォルトの名無しさん
09/02/26 02:29:33
お、すまんVB6だったか。共通モジュールに宣言しかないかな。
Static Property とかいった手もあった記憶があるがめんどくさいはず。

679:デフォルトの名無しさん
09/02/26 03:33:15
つーかさ、ある言語の仕様が
他の言語でも、そのまま簡単に実現できると思ってるのってどうよ?

680:デフォルトの名無しさん
09/02/26 11:02:13
変数共有ならモジュールでグローバル変数の宣言だけで良いんじゃね?
VB6だとそれで十分だと思うが

681:デフォルトの名無しさん
09/02/26 19:29:12
>>675
VBのクラスはクラスメンバを持てない。

VBにはクラスのほかに標準モジュールというのがあるけど、
こっちはC#でいうstaticクラスに似ていて、インスタンスメンバを持てない。
(インスタンス化できない)

まあ、javaよりずっと前からある言語だから多少かかなりかウンコ仕様なのは仕方がないねw

682:デフォルトの名無しさん
09/02/27 00:49:52
>>681
ハァ?
クラスメンバ変数は Public で作れる

683:デフォルトの名無しさん
09/02/27 00:57:34
VBのクラスもメンバ持てるぞ。

だが、>>675 を実現するにはちょっと細工が必要。
ActiveX DLL に1つクラスを設けて、そいつの Instancing を GlobaMultiUse に
すればいい。
そいつに Public 変数を置けば、いわゆるグローバル変数扱いになる。もちろんクラス。

ただ、利用側で Option Explicit とした場合、アーリーバインディングでないと
エラーになった気がする。
それと常識だと思うが、プロセスが異なれば参照先も異なる。

クラスである必要があるならこうするしかないが、
どう考えても標準モジュールで十分な希ガス。

684:デフォルトの名無しさん
09/02/27 17:07:49
イベント処理での質問です。

vb2008 webページの作成をしています。

コンボボックスから、氏名を選択したら、別のテキストにIDを表示するのですが。
コンボボックスから選択しただけじゃイベント処理は発生しませんか?

SelectedIndexChangedとかTextChangedとか試してるのですが上手くいきません。


685:デフォルトの名無しさん
09/02/27 17:30:06
>>684
スレ違いです。

686:デフォルトの名無しさん
09/02/27 19:47:20
>>682
持てません。
クラスメンバの意味わかって言ってる?w

687:デフォルトの名無しさん
09/03/02 14:53:22
vbのwinsockコントロールで、メッセージを送ってきた相手のIPアドレスって取得できますか?
最低でもLANかWANかだけでもわからないでしょうか?

688:デフォルトの名無しさん
09/03/02 14:57:30
もうすこし詳しく書かないと、やりたい事が伝わってこないぞ

689:デフォルトの名無しさん
09/03/02 15:02:48
詳しく書くと、たとえば
TCPでlistenしてるところにconnectしてきた相手のIPアドレスを取得したいんです。
IPアドレスがわからなくても、最低限、そのconnectメッセージがLAN経由かWAN経由かの接続だけでも取得したいのです。

690:デフォルトの名無しさん
09/03/02 15:10:47
ぜんぜん詳しくなってないが、相手のIPはわかるから一度プログラム作ってみなよ

691:デフォルトの名無しさん
09/03/02 15:32:21
>>690
見直してみたら、てっきりRemoteHostしかないと思ったらRemoteHostIPの存在に気づきました。
すいません、お手数をおかけしました。


692:デフォルトの名無しさん
09/03/04 10:41:06
質問ですが、標準のデータグリッドでマウスホイール回転時にスクロールさせる方法って
何が考えられますか?

693:デフォルトの名無しさん
09/03/04 11:20:11
ホイールスクロールを受け取って自力で動かす

694:デフォルトの名無しさん
09/03/04 11:26:17
URLリンク(support.microsoft.com)
こんな感じで

695:デフォルトの名無しさん
09/03/05 01:50:23
アクセス操作について教えてください。
エクセルのCellsみたいに列、行指定はできませんか?



696:デフォルトの名無しさん
09/03/05 02:09:37
もしかして: VBA?

697:デフォルトの名無しさん
09/03/05 02:20:33
つーか、DBってものを解ってないな
利口ならDBについて3日勉強して出直せ
馬鹿ならDBについて3年勉強して出直せ

698:692
09/03/05 11:31:12
ありがとうございます。
ホイールイベント時の処理でスクロールさせるしかないということですね。
イベントの受け取り方などもう少し調べてみようと思います。

699:デフォルトの名無しさん
09/03/05 19:57:12
>695
ADOならRecordsetオブジェクトとか調べて見るといいかも

700:デフォルトの名無しさん
09/03/07 17:35:54
VB5.0で作成されたアプリってVistaでも動く?

701:デフォルトの名無しさん
09/03/07 18:03:33
答えになってないが
VB6は何とか動いたけどODBC関連がだめだめだったね
使い物にならないぐらい遅い

Win7では動かなくなるソフト続出だとおもう

702:デフォルトの名無しさん
09/03/07 18:04:59
VB5 アプリはものによっては動く

703:デフォルトの名無しさん
09/03/07 22:06:49
リストボックスをマウスホイールでスクロールさせた時に
リアルタイムでリストボックスのTopIndexを取得したいのですが
リストボックスのScrollイベントが動かないので私のスキルでは
八方塞がりです。方法をご教授頂けないでしょうか?

704:デフォルトの名無しさん
09/03/07 22:10:51
>>703
サブクラス化

ググればいくらでもサンプルは出てくる
それでも解らなかったら諦めるよろし

705:デフォルトの名無しさん
09/03/07 22:15:50
C#やVB.NETなどで作れという神託だよ

706:デフォルトの名無しさん
09/03/07 22:38:24
>>704
ありがとうございます。
私の探し方が悪いんでしょう。
なかなか見つけられなくてココに来た次第です
諦めるわけには行かないので調べなおします。

>>705
業務で使うのでVB6を使うしかありません。
10年以上稼動する機器なんてざらにあるので・・・
こちらがリファクタリングしたくても
機能も仕様も変わらないのにお金出すところなんてありませんから

707:デフォルトの名無しさん
09/03/07 23:30:07
自力で動かすと、ちょっと上でも方法込みで出てるし。

708:デフォルトの名無しさん
09/03/07 23:32:36
業務で使うのに、サポート切れてるツールを使おう、ってのがわからん。
不具合があったって、MS は知らん顔だよ?

709:デフォルトの名無しさん
09/03/07 23:34:13
MSのサポートなんか受けたことないよ

710:デフォルトの名無しさん
09/03/07 23:38:51
>>706
厳密にTopIndexが一つ変化するごとに確実にイベントが欲しい、
とかで無ければタイマ使ってポーリングしたら?
こんな感じのクラスを作って検証してみたが、悪くないように思うけど。

[ListBoxWatcher Class]
Private WithEvents mListBox As ListBox
Private WithEvents mTimer As Timer
Private mTopIndex As Integer
Public Event TopIndexChanged()

Public Property Set ListBox(lb As ListBox)
Set mListBox = lb
Dim frm As Form
Set frm = mListBox.Parent
If mTimer Is Nothing Then
Set mTimer = frm.Controls.Add("VB.Timer", "pollingTimer")
mTimer.Interval = 200
End If
If frm.ActiveControl Is mListBox Then
StartPolling
End If
End Property

711:デフォルトの名無しさん
09/03/07 23:40:35
Private Sub StartPolling()
  mTimer.Enabled = True
  mTopIndex = mListBox.topIndex
End Sub

Private Sub mListBox_GotFocus()
  StartPolling
End Sub

Private Sub mListBox_LostFocus()
  mTimer.Enabled = False
End Sub

Private Sub mTimer_Timer()
  Dim currentTop As Integer
  currentTop = mListBox.topIndex
  If currentTop <> mTopIndex Then
    mTopIndex = currentTop
    RaiseEvent TopIndexChanged
  End If
End Sub

しかし、なんでそんなイベントでそんな値が必要なんだろう

712:デフォルトの名無しさん
09/03/07 23:44:28
VB6のサブクラス化って初めて見た
横から勉強になります

713:デフォルトの名無しさん
09/03/07 23:48:29
「VB6 のサブクラス化」は、違う意味を指すもんだけどな。

714:デフォルトの名無しさん
09/03/07 23:55:46
「ホイールで動かしたけりゃこのドライバ入れるかあのソフト入れろ」と言える俺は趣味グラマ

715:デフォルトの名無しさん
09/03/08 00:03:30
趣味グラマ以前にバカすぎ
動かしたいって話ではなく
動かすのは出来てる上で
そのイベントを取りたいって話なのに

716:デフォルトの名無しさん
09/03/08 15:06:15
FlexGridライクなグリッドツールで
使いやすくてフリーか安価な物ってありますか?

717:デフォルトの名無しさん
09/03/08 16:16:19
URLリンク(www.grapecity.com)

718:デフォルトの名無しさん
09/03/08 16:17:29
Windows7でもランタイム入ってるのか
あと5年はイけそうだぬ

719:デフォルトの名無しさん
09/03/08 16:25:32
>>718
ところが動かないソフト続出w

720:デフォルトの名無しさん
09/03/08 18:44:50
>>716
俺はMSHFlexGridを自作のクラスと組み合わせて使いやすくしてる
プログラマなら他人が作ったものを使うことばかり考えてないで
少しは自力で便利にしようって気になろうよ

721:デフォルトの名無しさん
09/03/08 19:10:59
DataGridView

722:デフォルトの名無しさん
09/03/09 00:37:17
DataGridViewって.NETのコントロールじゃないの?
VB6でも使えるのか?

723:716
09/03/09 00:46:37
自分で実装しても良いんですけど
自作にかかる費用と購入する費用を考えたときに
購入する方が安上がりかと思いまして

後、うちの会社レベルが低すぎてクラスの概念理解できる人がいないんです…

やっぱグレープシティ買って貰うのが一番手っ取り早いですかね
1週間分の人件費で買えますし…

724:デフォルトの名無しさん
09/03/10 22:18:45
何でもかんでも自分で作ろうとする奴は馬鹿なのか?
費用対効果とか生産性で一番効率品質ともに良いほうを選ぶだけのこと。
車輪の再発明なんぞ自宅でやれ。仕事でやるな。
再発明した低レベルの車輪を見せびらかすな。

725:デフォルトの名無しさん
09/03/10 22:25:08
たいていは、上の人が買ってくれないから、って理由じゃない?>自前で作る

726:デフォルトの名無しさん
09/03/10 22:33:08
FlexGridProの品質の悪さは異常

727:デフォルトの名無しさん
09/03/10 23:25:40
> 車輪の再発明なんぞ自宅でやれ。仕事でやるな。
そもそも最初の質問で仕事で使うとは一言も書いてない件について

個人で使うことを想定した回答を、後出しの仕事で使うという情報を理由に叩く奴は馬鹿なのか?

728:デフォルトの名無しさん
09/03/10 23:40:34
>>724の回答もどうかと思うが、
君のそれも話が噛み合ってないんじゃないの?

>>725の言うように724は勤め人にありがちな境遇がわかってない、
ってのなら同意するんだが。。

まあ、くだらんことで熱くなってもしょうがないだろ。

729:デフォルトの名無しさん
09/03/11 23:33:39
でも車輪の再発明って楽しいよな。

730:デフォルトの名無しさん
09/03/12 00:15:49
再発明ではなく
新発明に出来る可能性を秘めてるからな
再発明にすら届かない可能性も孕んではいるが

731:デフォルトの名無しさん
09/03/13 00:12:26
再発明ってやつは、意識して取り組めば、何らか得るものがあるが、
いかんせん時間効率がよくない。と思う

車輪の再発明は学生のうちにしとけ。とはよくいったもの
世の中そううまくいかん(実りある再発明行為が、学生のうちにできるわきゃない)わけだが

732:デフォルトの名無しさん
09/03/13 00:21:25
時間効率が重視される仕事に置いてまで
再開発でも自作しろなんて言ってる奴は皆無である件について

733:デフォルトの名無しさん
09/03/13 00:28:14
コスト計算できない上司が部品買ってくれないってのは、自作しろって事じゃないの?

734:デフォルトの名無しさん
09/03/13 00:43:24
それは上司の主張であって、このスレの住人の主張ではないだろ

735:デフォルトの名無しさん
09/03/13 00:45:13
なんで上司の主張は除外されるわけ?

736:デフォルトの名無しさん
09/03/13 02:50:12
ここが会社ではなく2chのスレだから

737:デフォルトの名無しさん
09/03/13 03:19:15
2chのスレだったら会社の話をしちゃいかんのか?

738:デフォルトの名無しさん
09/03/13 05:24:15
別にいいんじゃないの?
ただ会社の場合は「会社では」って付けてね
何も付けないと、名前空間上「このスレでは」って意味になるから

739:デフォルトの名無しさん
09/03/13 15:41:56
上司の話をするのに、いちいち会社の上司はと付けなければいけないのか?
いつからそんなルールになったんだ?

740:デフォルトの名無しさん
09/03/13 15:48:00
いや、そもそも「このスレの住人の(合意された)主張」なんてものが存在しません。

741:デフォルトの名無しさん
09/03/13 17:43:28
★印の ”A7” とこを Cells(y, x) とすると

「Rangeメソッドは失敗しました」

と文句言われますが、どうすればいいのでしょう!?

Range("A7:R120").Select
Application.CutCopyMode = False

Selection.Sort _
Key1:=Range("A7"), _   ★
Order1:=xlDescending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom, _
SortMethod:=xlPinYin

742:デフォルトの名無しさん
09/03/21 18:37:57
おしえてくだせえ。
frmMain 実行中に、フォームの右端をドラッグして大きさかえると、Resizeイベントが発生するまではいいんだが、
その後 frmMain.ScaleWidth や、frmMain.Width などを取得してみると大きさ変更前の値しか出てこないんだよ。

なにか足りない部分があるのでしょうか?

743:742
09/03/21 18:45:53
すんません。事故解決です。
VBのウイザードからある程度メニューやツールボックスが揃ったプロジェクトではじめていたので、

Set fMainForm = New frmMain

と標準モジュールからフォームオブジェクトが開かれてました。
初心者に意地悪なつくりでした。



最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch