★★VB初心者質問スレ Part9(´・ω・`)★★

このエントリーをはてなブックマークに追加
1激☆初心者
前スレはこちら
  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/test/read.cgi/tech/1010624646/
  Part 6 http://pc.2ch.net/test/read.cgi/tech/1013844542/
  Part 7 http://pc.2ch.net/test/read.cgi/tech/1015836357/
Part 8 http://pc.2ch.net/test/read.cgi/tech/1018794901/

Win32 API関連スレ
  http://pc.2ch.net/test/read.cgi/tech/1017072275/

心得
壱.質問する前に過去ログにも目を通してみる。
弐.質問する前に MSDN などで調てみる。
参.VBScript もこのスレでOK。
四.インストーラーなどの質問もOK。

新スレ立ってなかったみたいなんで立てました。
重複してたら誘導お願いします。
2!
       》
     Λ《Λ  ズザーーーーーッ3get
    ( / ⌒ヽ
    ノノ   ノ     (´´;;;    (´
    (ノ  /ノ  ≡≡≡≡   (´´
    ノ ノノ ≡≡≡≡(´⌒(´⌒;;≡≡
   (ノノ     (´⌒(´⌒;;
    ̄ ̄ ̄ ̄ ̄ ̄
4デフォルトの名無しさん:02/05/08 13:15
たまにスクロールバー(HScrollBarとか)がフォーカスを奪ったまま返してくれない(?)
自体が起こるのですが、これって回避できませんか?
原因もよくわからないです。

いっかいスクロールバーをいじると、他の部品をクリックしてもフォーカスが移りません。
一見フリーズしたかのように見えます。
で、タスクバーから最小化したり他のウインドウに切り替えたりすると、
フォーカスが帰ってきます。

こんな感じになる症状がたまにでます。
5デフォルトの名無しさん:02/05/08 13:18
>>1
市ね
6ひまお:02/05/08 15:30
VBでFTPサーバーをアクセスしたいので、WININET.DLLを使おうとしているのですが、サーバーがサポートしているコマンド(今回はAS/400がサーバーなので、QUOTE RCMD)を使いたいのですが、このようなことは可能ですか?
7デフォルトの名無しさん:02/05/08 15:35
DataGridにソースでRecordsetを設定しようとして、ProviderがJetOLEDB4.0だった場合
反映されてないようなんですが、JetOLEDB3.51(別のDB)だった場合はうまく設定
されているようなのです。
同じように
  set DataGrid1.DataSource = mRs
と書いてあるのですが…。

どなたか解決法等をご教授お願い致します。
8デフォルトの名無しさん:02/05/08 16:35
WebBrowserコントロールにファイルを経由せずに直接HTMLドキュメントを表示させる方法ってないですか?
ファイルに保存してからNavigateすれば表示はできますが、なんかすごく無駄な気がして。
String型変数に入ってるHTMLをそのまま表示させたいです。
9デフォルトの名無しさん:02/05/08 16:59
新スレおめage
>>8
IE自体がファイル経由なんじゃないの
>>10
んなわけねーじゃん…。


キャッシュがあるからそう思ったのか?
>7
MDACのバージョンとか関係ないかな。
完全に未確認でゴメソ
>>11
うん。
14Delフサギコ ◆zE1iiRdQ :02/05/08 18:13
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| monazillaに逝けばわかるかも…>>8

   ̄ ̄ ̄ ̄ Ο  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       ο
♪   ∧,,∧゚ ♪
    ミ,,゚Д゚彡  ♪
    ミつ[|lllll]).
   〜ミ  ミ
    U''U
158:02/05/08 18:19
>>14
http://members.jcom.home.ne.jp/monazilla/document/directwrite.html
そのものずばりっぽいのがあったんですが、デルファイなんですよね。
うーん、わかんないっす。
これをVBで書いたらどうなるのかな。

(WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms));
この変がキモなのかな。
16Delフサギコ ◆zE1iiRdQ :02/05/08 20:33

 ∩ ∩
 ミ ゙''゙?
 ミ∧,,∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ミ,,゚Д゚彡 < TStreamAdapterってなんじゃらホイ
 U U   \________

>   (WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms));

よくわかんねですが
WebBrowser=COMかActiveXかなんかのコントロールかなんか
.Document=そのメンバーかメソッドかプロパティかなんか
IPersistStreamInit=COMのインターフェースかなんか
.Load=たぶんIPersistStreamInitのメソッド
TStreamAdapter.Create(ms)=メモリデータを変換したりとか?

こんな感じ。VBで
  IPersistStreamInit
  Document
  Load
あたりを検索してミル

適当なレスでスマンソン
17デフォルトの名無しさん:02/05/08 21:48
>>7

現象
Microsoft.Jet.OLEDB.4.0 と ADO のサーバー サイド カーソルを使用して
取得したデータを DataGrid に連結 (ADO データ コントロールを使って、
あるいは直接グリッドに連結) したとき、DataGrid にデータが表示されません。

原因
Microsoft.Jet.OLEDB.4.0 プロバイダは、DBPROP_LITERALIDENTITY
プロパティをサポートしていません。そのため、IRowsetIdentity
インターフェイスをインプリメントする必要があります。ADO では、
このプロパティを行セットのオープン前に設定する必要があります。

解決方法
レコード セットを開く前に、
RecordsetObject.Properties("IRowsetIdentity") = True
を実行します。

http://support.microsoft.com/default.aspx?scid=%2Fisapi%2Fgomscom%2Easp%3Ftarget%3D%2Fjapan%2Fsupport%2Fkb%2Farticles%2Fjp224%2F1%2F92%2Easp&LN=JA

18>8:02/05/08 22:04
DOMに落とせばページを保存せずに表示できると思うよ。
実際、XSLTで変換したページなんか保存なんてせずに
DOMオブジェクト中のコードでしょ。

そのかわりHTMLがXMLフォーマットでないとだめだが。
19デフォルトの名無しさん:02/05/08 22:30
With WebBrowser1
.Navigate "about:blank"
.Document.Clear
.Document.Open
.Document.Charset = "Shift_JIS"
.Document.write "(゚Д゚)ゴルァ!<BR>(゚Д゚)ゴルァ!<BR>(゚Д゚)ゴルァ!"
.Document.Close
End With
20デフォルトの名無しさん:02/05/08 23:16
VB.NET+ADO.NETでACCESS2000を弄りまくるサンプルってありますか?
過去ログ漁ったんですが、上手く検索かからなくて。
ほんと申し訳ない。
21デフォルトの名無しさん:02/05/08 23:19
あ、ちなみに>>19>>8へのレスね、スマソ。
22もったいぶりアラシ:02/05/08 23:31
お!?厨達よ 新スレできたな
さあオフスクリーンだったな
でもねむいなw
気が向いたらアラスね
WebBrowserコントロール使って、
HTML(ソースじゃなく見たまんま)の印刷ってできる?
コントロールは非表示で、できれば印刷設定のダイアログとかも出さずに。

無理なら、市販コンポーネントで知ってるのあったら、
情報きぼんぬ。
25もったいぶりアラシ :02/05/09 00:09
























26デフォルトの名無しさん :02/05/09 00:12
>>20
この板の過去ログなんか漁っても無駄。Users-MLの過去ログとか見れば
大量にヒットするよ。

>>もったいぶりアラシ
いい加減にしませんか?
27もったいぶりアラシ:02/05/09 00:17
>>25は偽者だ
オデのアラシは厨へ知識の押し売りアラシだ
25みたいな糞アラシはせんぞ
2820:02/05/09 00:18
>26
VBUGのことですか?
俺はこのスレの利用者の一人だが、タイトルに顔文字とか付けるな。
確か前回から付いてるよな。
余計にガキっぽく見えるだろ。
P板はもっと殺伐としてるべきなんだよ。
顔文字をバカにするヤシは顔文字に泣く。
・゜・(ノД‘)・゜・ウワアアァァァン 
>>27
前の板でも変なイタズラしたろ。どっか逝けよ。
33 ◆Kn0re6Dw :02/05/09 00:33
>>32
オマエだろ
アラシは?
34デフォルトの名無しさん:02/05/09 00:37
やれやれ荒れてるな
どうも仲良くいかkないようだね
厨な年頃かい?ミ゚Д゚,,彡
3620:02/05/09 00:47
>34
ありがたい。VB.NETや.NETに登録してみます。
378:02/05/09 01:50
>>19,>>21
できますた!
ありがとうございます。

>>18
なにやらよくわかりません。
とりあえず>>19の方法でできたので、後ほど必要になったら勉強しようかと思います。
38:02/05/09 05:02
ユーザー定義型とクラスの違いって何ですか?
>>38
自由度が全然違う。と、言いたいところだがVBだからどうでも良いんじゃないの?
40デフォルトの名無しさん:02/05/09 07:54
>38
クラス内では関数が使える。

>>40
関数て・・・。
そう言えばC++って通常はメソッドなのに仮想関数は関数なのね。
42即レス:02/05/09 11:16
久しぶりに来てみたらなんだかなあ。GWも過ぎたのに。ちぇ。
43デフォルトの名無しさん:02/05/09 11:47
こんにちは、初めて書き込みます。
VBScriptでiモードにBASP21を使ってメールを送信させようとしているのですが、
553 ... Relay operation rejected to
というエラーが出て送信できません。
メールサーバー名の指定が間違っているようなのですがiモードの場合、
サーバー名の指定をどうすればいいのか分からないのです。
ご存知の方がいらっしゃいましたら、どうか教えていただけないでしょうか?
よろしくお願いします。
44デフォルトの名無しさん:02/05/09 11:50
コントロール名のプリフィクス一覧って無いのですか?
人によってcboとかcmbとか付けられて鬱だ
45デフォルトの名無しさん:02/05/09 11:57
>>44
MSDNで「オブジェクトの名前付け基準」を検索
46デフォルトの名無しさん:02/05/09 12:16
>>45
ありがと。愛してる。
47デフォルトの名無しさん:02/05/09 14:05
>>17

激遅レスですが、ありがとうございました。
>>47
まったく他人ですが、どういたしまして。
49こういうことか?:02/05/09 14:35
>>8
こういうことがしたいのか?
多分これで大丈夫だけど実験してないので動作不明(w
バグってたら直してちょうだい。

Private Declare Function GetStdHandle Lib "kernel32" (ByVal nStdHandle As Long) As Long
Private Declare Function WriteFile Lib "kernel32" (ByVal hFile As Long, ByVal lpBuffer As String, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, lpOverlapped As Any) As Long
Private Const STDOUT_HANDLE = -11&

Private Function SendDoc() As Long
  Dim hnd As Long
  Dim strDoc As String
  Dim lngRet As Long
  Dim lngWriteLen As Long

  SendDoc = 0

  strDoc = vbNullString
  strDoc = strDoc & "HTTP/1.1 200 OK" & vbCfLf
  strDoc = strDoc & "content-type:text/html" & vbCrLf
  strDoc = strDoc & "<html><body><span style={font-size:64;}>ゴルァ!</span></body></html>"

  hnd = GetStdHandle(STDOUT_HANDLE)
  lngRet = WriteFile(hnd, ByVal strDoc, LenB(StrConv(strDoc, vbFromUnicode)), lngWriteLen, ByVal 0&)
  If lngRet = 0 Then
    SendDoc = Err.LastDllError
  Else
    If LenB(StrConv(strDoc, vbFromUnicode)) <> lngWriteLen Then
      SendDoc = vbObjectError + 513
    End If
  End If
End Function
>>48 ワラタ
51デフォルトの名無しさん:02/05/09 14:59
Friendキーワードってどういう場面で使われるんでしょうか?

>>51
寂しいときに友達を宣言すれば隠蔽された友達を呼び出せます。
>>52
なんとなくC++と勘違いしている予感。
54デフォルトの名無しさん:02/05/09 17:44
ちょっとスレの指向とちがうけど、
html内でtextareaの改行コード込みの内容をPostして、次のasp内で
Request.Formで引っ張ってくるんだけど、なぜか改行してくれないんです。
良い方法おしえてください。

55デフォルトの名無しさん:02/05/09 17:47
>>54
CR LFを<BR>に置換
56デフォルトの名無しさん:02/05/09 17:53
>55
ありがと&ごめんアフォなんでもちっと詳しく
57デフォルトの名無しさん:02/05/09 17:56
ものすごく簡単なことかもしれませんが、質問させてください。
VBに付属してるディストリビューションウィザードでセットアップファイルを
作るときに、空のフォルダをセットアップファイルの中に含むことって
できるんでしょうか?
セットアップファイルを作るときにファイルは選ぶことができても、
フォルダを選べない気がしたんで・・・・
58デフォルトの名無しさん:02/05/09 18:07
>57
空フォルダは作れないと仮定しての話だけど(未検証)、
ダミーのファイルを入れてしまって、アプリの起動時か
なんかに消しに行くようにしたら?
59デフォルトの名無しさん:02/05/09 18:09
>>58
んーやっぱそういうふうにしないと駄目なんでしょうか・・・
ウィザードとおりにやってるとフォルダが指定できない時点で、
ダミーファイルの作成をカンガエはしたんですが・・・
60デフォルトの名無しさん:02/05/09 18:18
>59
58だけど、もしかして単に気分の問題か???
動けばいいってことなら、アプリの起動時にフォルダなければ
作るなり、前述の方法なりでできると思われ。
それでもいやなら、セットアップウィザードのソースあるんだから
直接内容いじればなんでもできるじゃん。
6154:02/05/09 18:27
Chr(13)&Chr(10)をリプレースで解決しますた
62          :02/05/09 18:51
あの、ビジュアルベーシックでプログラムして、
英数文字をUPしてほしい問題があるんですけど・・・
誰かやってくれる人いない?お願いします

言ってる意味がさっぱり解らんないのは俺だけ?
>>63
日本語変。
英語の使い方も変。
宿題他力本願。

生きている価値を疑う。
65           :02/05/09 20:19
あの、ベーシック英数文字でして、
誰かやってくれる人いない問題があるんですけど・・・
ビジュアルプログラムをUPしてほしい
お願いします?
あくちぶエクースコントロールつけると、

配布はインストーラ付きじゃないとだめですか?
exeのみ配布はムッチャムリムリでしょうか?
あっとー!VB6です。
68デフォルトの名無しさん:02/05/09 20:26
メッセンジャーみたいなのを作ってます。
ツールバーの絵をスキンで変えられるようにしたいのですけど、
定石はどんな方法ですか?

picture clip control ですか?
69デフォルトの名無しさん:02/05/09 20:27
>>62
とりあえず、宿題か何かを手伝ってほしいと?
このスレ吉害が迷い込んでませんか?
あっとー!ジャヴァスプリクトです。
723t:02/05/09 20:44
ゲームを作ろうと思ったのですがdim定義とか色々ムツカシイです。

テトリスとかぶろっく崩しとかの他人のソース読んで勉強しろといっても無理な気がしてきました。

せめて○×ゲームからはじめようかと思っていますが、一人ではわかりません。。

誰か教えていただけ無いでしょうか。
よろしくおながいします。

それがだめならせめて
ゲームの基本画面はテキストボックス、ピクチャーボックス、ラベルのどれで
作るかだけでも教えていただけないでしょうか。
733t:02/05/09 20:48
にほんゴふじゆーですが

よろしくおまえがします。
74デフォルトの名無しさん:02/05/09 20:52
荒らすなヴォケ
読んでるとこっちまで頭おかしくなりそうなステキな日本語を書く人ですね。
76デフォルトの名無しさん:02/05/09 21:27
>>72
まずは、かんたんなゲームが作れる解説つきの本を買うことをお勧めする。
7768:02/05/09 21:40
なんか流れてしまいましたけど、
pcl じゃなくて image list なんでしょうか?
7868:02/05/09 21:49
わからない人しかいませんでしょうか?
79デフォルトの名無しさん:02/05/09 21:56
VBでDAOを使ってMDBにアクセスするアプリケーションをつかって
いるのですがマルチユーザ環境での排他制御の仕方などがいまいち
わかりません。
良書や便利なサイトなどがあれば教えていただきたいです。
具体的にはレコードセットをつかってupdateメソッドを使って更新を
行いたいのですが、他端末でaddnewされたレコードに対して自端末
がaddnewしたような場合等です。
ビジュアル ブサイクって。。。

http://www.google.com/search?num=100&num=50&hl=ja&q=Visual%20Bsaic
とても聞いてる人間の態度とは思えないヤツがいるな。
>>81←典型例
83デフォルトの名無しさん:02/05/09 22:25
>>68に答えてあげて!!
>>83
あれにどう答えろと?
後、自作自演痛い。
8568:02/05/09 22:27
ちなみに >>78 は僕じゃありません。

もうさぱーりです。よくあるように、例えば5x2でアイコンが並んだ
一枚絵をスキンとして使いたいのです。

PictureClipで読み込んで、ImageListに格納して、
TooBarに反映させるんでしょうか?
>>85
>>83はお前だろ?
87デフォルトの名無しさん:02/05/09 22:31
Picture1(空)とPicture2(JPEG)がそれぞれありまして(PictureBox)、
Picture2のJPEGのDDBをDIBピクチャに変換し、Picture2にDIBピクチャを入れ替えました。
もちろんきちんと画像が表示されるのですが、問題はそこから先なのです。
成功する方法は
SavePictureで適当にBMP変換&保存し、
buffer = CreateCompatibleDC(Picture1.hdc)でメモリDCを作成し、
buffer2 = LoadImage・・・で先ほど保存したBMPをLoadし、
SelectObject buffer, buffer2をして
StretchBlt Picture1.hdc・・・buffer・・・で拡大表示したピクチャをPicture1に表示。
これはうまくいくのですが、HDDに保存せずメモリ上で全ての作業を行いたいのですが、
とりあえず、私なりに
buffer = CreateCompatibleDC(Picture1.hdc)でメモリDCを作成し、
buffer2 = CopyImage(Picture2.hdc・・・とやったのですが、戻り値が0でエラーだったので、
DIBなのがいけないのかな?と思い、
(そもそもこのCopyImageの使い方がいいのかが分かりません。ネットで色々探しても、10件も
HITしません(泣、MSDNではピクチャを複製すると書いてありました)
buffer1 = CreateCompatibleBitmap(Picture2.hdc・・・として、BMPに変換し(ハンドルを一応受け取りました)、
buffer2 = CopyImage(buffer1・・・をしたら、戻り値が0じゃないのでいいのかなと思ったのですが、
SelectObject buffer, buffer2をして
StretchBlt Picture1.hdc・・・buffer・・・しましても、Picture1に何も表示されませんでした。
Bitbltでも同様でした。CopyImage(Picture2,Picture.handle・・・でもハンドルが戻ってくるのですが、
画像が表示されずダメでした。一応、Bitbltの戻り値が1が戻ってくるので、処理はミスっていない
ようなのですが・・・。
ここの知識は乏しく、根本的に間違ったことをしているかもしれません(泣
ぜひ、ご教授お願いします。よろしくお願いします。

最低限使いたい関数はCopyImage(多分、LoadImageと結果は似てると思うのですが・・・)と
StretchBlt(Bitblt)です。LoadImageは拡大読み込みにアンチエイリアスかけてくれるのですけど、
CopyImageはどうなのか分かりません。かけてくれるのかな・・・。
8868:02/05/09 22:32
違うんですけど、なんでもいいです。
>>87
同意。二行目以降は読んでないけどな。
90デフォルトの名無しさん:02/05/09 22:34
>>79
例に挙げたような場合の DBの一貫性は保たれるので気にしなくて良いです。

それ以前に、まず、排他させなきゃいけない 場面、機能、等を一度整理して
みてはいかがでしょう?
91デフォルトの名無しさん:02/05/09 22:35
>>38
クラスならコレクションに入れられる(by VB5)
(VB6ならユーザ定義型でもいけてまうけどな。ま、メソッドないとうまみ半減)
9287:02/05/09 22:38
>>89
ひーん。読んでください(´Д⊂ヽ
長文ごめんなさい
>>91
それって構造体みたいなもん? <定義型
94デフォルトの名無しさん:02/05/09 22:44
>>90
なるほど。ありがとうございます。
では、後れてaddnewした側にはなにかエラーが渡されるのです
よね?その辺のロジックの組み方がいまいちわからないのです。
>>66-67に答えてあげて。66=67より
9687:02/05/09 22:54
そもそも、2行目の変換工程にはVisual C++でZLIBやらJPEGLIBやらを利用し、
作ったDLLをかましてまして、そのDLLにはBMPファイルに変換&保存する
機能があるのですが、その機能をSavePicture代わりに使うと
表示はするものの、LoadImageの機能であるアンチエイリアスされず、
StretchBltそのままのドットバリバリの汚い画像が表示されるのです。
(LoadImageがエラー起こしている雰囲気はないです)
でも、ファイル自体正常な?BMPファイルでして、ペイント等でも開けます。
ただ気になるのは、SavePictureだと200KBを超えるのですが、
そのDLLで作ったBMPは150KBぐらいなのです。
多分、変換工程が違うからだと思うのですけど・・・。アヤスィ。
97デフォルトの名無しさん:02/05/09 22:56
>>94
もし table に同じ内容のレコードを書き込んだ場合、
primary key が設定されていれば 一意制約違反が
発生します。が、そうでなければ両方とも書き込みは
成功します。

98デフォルトの名無しさん:02/05/09 23:02
>>94
DBが保証する一貫性と、設計者が考慮しなければならない
トランザクションの範囲、分離性、がごっちゃになっていませんか?
99仕様書無しさん:02/05/09 23:15
Oracle + VBで顧客名簿のDBアプリを作っています。(接続はoo4o)

顧客の名前などは既にデータベースに登録されており、
プログラムでIDを自動的に割り当てたいのですがうまくできません。

番号はSequenceで生成を試みているのですが、1ずつ増加するはずなのに、
120ずつ増加しちゃったりします。わけわからん。

こんな感じで処理をしています。

Do
Set Objecthoge(Sequence.NextVal)
 レコードID = Objecthoge.Fields("NextVal").Value
Objecthoge = nothing
Loop Util 全レコード数

↑また、数百件処理をした後、ループ中にハングしてしまうです。

書き込みが下手で申し訳ありませんが、要約すると
VBプログラムで全てのレコードに対してIDを割り当てたいんです。

アドバイスおねがいします。
100デフォルトの名無しさん:02/05/09 23:21
>>99
Create sequens したときに、INCREMENT BY 120ってしてませんか?
101デフォルトの名無しさん:02/05/09 23:27
>>99
ハング事に関してはなにもアドバイスできませんが、
ストアドにしたほうが良さそうな処理と見受けましたが、
検討してみましたでしょうか?
102仕様書無しさん:02/05/09 23:30
SequensはObject Browserで作ったので1になっているはずだけど...

Set Objecthoge(Sequence.NextVal)の部分は
CreateDynaSetでいいのかな?

レコードの取り出し方が正しくない可能性ありえそうです。><
103適当なことを書く人:02/05/09 23:33
>>96
できたファイルのBITMAPINFOHEADERでも見てみれば?
104仕様書無しさん:02/05/09 23:35
ストアドというのはPL/SQLですよね?
Net8とか設定しないといけないんですよね?

DBの設計をやっているのはうち会社ではないので、
かってにOracleの設定を登録したらやばくないかなぁ。。。
ほんとにレベル低いなー
このスレ。びくーり
10687:02/05/09 23:41
>>103
特に変わった点はなさそうです。サイズも正常ですし・・・。
10787:02/05/09 23:43
JPEGをBMPにHDD経由することなく変換する関数ってありませんか?
>>105←典型例
>>107
メモリをアフォほど積んだ環境なら。
11087:02/05/09 23:46
>>109
ぜひ教えてください
111デフォルトの名無しさん:02/05/09 23:51
>>105
スレタイトルが読めない幼稚園児?
112デフォルトの名無しさん:02/05/09 23:51
>>104
oo4o で VBから Oracle に接続できるということは Net8の
設定は正しくされてます。ストアドを使うにあたってはそれ以上の
設定はとくに必要ないです。

ただ、DB設計が別会社で、>>104 さんが ストアドの作成経験
がないのであれば今回はやめておいたほうが無難ですね。

113仕様書無しさん:02/05/10 00:07
>>112
了解です。ありがとう。
Oracle連休前の一週間前からはじめたんですけど、
適当にやっているうちに設定されてたんですね。(^^;
114unlha32.dllです:02/05/10 00:20
unlha32.dllを用いたアプリケーションの開発を行っています。
圧縮する前に圧縮後のファイルサイズを取得したいのですが、
何か方法はあるでしょうか?
UnlhaGetCompressedSize API関数等調べたのですがどうも
書庫内のファイルサイズを取得するものらしいです。
やはり、テンポラリーに一度圧縮してから、そのファイルのサイズを
取得する以外方法はないのでしょうか?
(圧縮する時間がかかるので避けたいのです)

あと、もう一つあるのですが。
unlha32.dllをAというVBアプリで使っていたとします。
その時にBというVBアプリでunlha32.dllを使用しよう
とした場合に既にAが使っているという情報を
取得する方法はあるでしょうか?

何かヒント等でもお知りでしたらご教授下さい。
よろしくお願い致します。
何事もやってみなけりゃわかんね〜っていうでしょ。
>>114
圧縮後のファイルサイズは圧縮しないとわからないと思われ。
それを計算する暇あったらそのついでに圧縮を行える。
117デフォルトの名無しさん:02/05/10 00:50
即レスさんこないかなあ。。。
118デフォルトの名無しさん:02/05/10 00:52
何でも聞きな。
119デフォルトの名無しさん:02/05/10 00:55
なんだ、何もなしかい。じゃあばよ。
120デフォルトの名無しさん:02/05/10 00:56
>>118

>>117=>>114 とおもわれ。答えてあげて。
121デフォルトの名無しさん:02/05/10 00:57
>>114
原理的に無理。
WinRarの事前予測は、サンプリングで。
実行中の予測は、処理済みの比率で計算してると思われ。

下の質問は、APIでプロセス列挙かな。
122デフォルトの名無しさん:02/05/10 01:03
>>114
下の質問。
なんでそんなこと調べる必要があるの?
dllは再入可能なように作られているはずだから
競合とかの心配はないのでは?
123unlha32.dllです:02/05/10 01:06
皆様どうもお返事ありがとうございます。
やはり、一度圧縮しないと無理なんですねー。

>>121さん
>下の質問は、APIでプロセス列挙かな。

と、言われたので調べてみると以下のような単語が検索されました。
PSAPI.DLL
EnumProcesses()、
EnumProcessModules()、
GetModuleFileNameEx()、
GetModuleBaseName()

多分、これでできるんですよねー?
重要なヒントを教えて頂いて有難うございます。
これで、土日は休めそうです(笑)
ありがとうございました m(__)m
124デフォルトの名無しさん:02/05/10 01:07
>>123
土日やすめるようにがむばってね。
おいらもあしたぢゅーに、あれして、これしないと....はやくねよっと。
125unlha32.dllです:02/05/10 01:10
>>122
うーん なんでかはわかりません(笑)
できるかどうか調べてくれと上司に言われたので
色々、調べていた次第です。
上司がアホだと、たいへんだなあ。
127デフォルトの名無しさん:02/05/10 01:26
>>125
その上司はリバースエンジニアリング中だと思われ。
125は今日も鉄也っす。
12968:02/05/10 01:48
出来ました。PictureClip で読み込んでから、
ImageListに入れて、ToolBar でした。

っていうかこのやろう。
130 ◆ItdEFVTU :02/05/10 04:24
このスレは厨の自作自演用です
厨が適当にWeb上でVBのTipsを拾って来て
まず、「教えてください」と聞いて
答えます
あわよくば、違う手法を他から拾うことを狙っています
お礼を言ってる礼はまずそうです
これからも厨の自作自演を見据えて、マジレスなどしないようにしましょう
あぁ、130にマジレスしたいがマジレスするなって書いてある。
130はほっとけってことか。煽り厨にはこまったものだ。
132( ´∀`):02/05/10 06:42
プロシージャとマハポーシャは似てますか?
>>96
87は2行目以降読んでないけど、StretchBltで拡大縮小バリバリなのを
回避するには
Call SetStretchBltMode(hdc, HALFTONE)
Call SetBrushOrgEx(hdc, 0, 0, 0&)
ってやらないと駄目だったよーな。たしかディスプレイドライバ依存。
煽りにレスするとスレが汚れるからしないようにしましょう。無視。
13587:02/05/10 10:23
あれから色々やったら画像が表示されました。有難うございました。
しかし、画像がアンチエイリアスかからず、そのまま拡大縮小した画像が表示されました。
どうやらCopyImageはLoadImageのようにアンチアリアスかけてくれないみたいです(泣
他にアンチエイリアスかけてくれるAPIはないのでしょうか?
それともBitbltやらなんやらアルゴリズムで画像を処理する以外無いのでしょうか。
GDI系はめっぽう弱く、どこかにサンプルはないかしら・・・。
13687:02/05/10 10:28
アンチアリアス→アンチエイリアスでふ
137即レス:02/05/10 10:43
>>87
むう。読みづらいな。しかも結局何がしたいのか良くわからん。
とりあえずPicture1のAutoRedraw=TrueにしてRefreshしてみれ。

CopyImageはアンチエイリアスはかからん。
LoadImageはかけてくれるがリソースかファイルからしかダメ。

Jpeg読みこんで拡大表示したいなら
LoadPictureとStrechBltが一番簡単で速い。

>>96
SavePictureは現在のディスプレイ設定依存。(最悪だね、これ。)
多分24Bitと32Bitの違いとかだろう。
バイナリエディタで情報見てみ。

>>114
即レスにはなってないが、
基本的に無理。圧縮→ファイル書きこみのファイル書きこみをサイズ計算
だけにすれば出来るが圧縮とたいして時間変わらん。

>>123
そこらへんの関数はNT系じゃないと使えないから注意だな。

#最近まとれす来ないね。
13887:02/05/10 10:54
レスサンクスです。

>>137
>CopyImageはアンチエイリアスはかからん。
>LoadImageはかけてくれるがリソースかファイルからしかダメ。

135にも書いてあるのですが、かかりませんでした(シクシク
名前が似てるのに(MSめ!

>Jpeg読みこんで拡大表示したいなら
>LoadPictureとStrechBltが一番簡単で速い。

これってアンチエイリアスかけてくれませんよね?

>SavePictureは現在のディスプレイ設定依存。(最悪だね、これ。)

なるほど道理で・・・。SavePictureだと画質が落ちるんです

なにかいい方法はないかしら・・・
13987:02/05/10 10:58
とりあえず、何をしたいのかをまとめると
画像をアンチエイリアスをかけて、拡大縮小をしたい。
っていうことです。もちろん全ての作業はメモリ上です。(一旦ファイル保存はタブー)
分かりづらくてすみません。
140即レス:02/05/10 11:05
>>139
NETでは出来るらしい。
DirectX8では2Dも出来たかな・・・?
StrechBltは環境依存。

VC使えるんならDLL作ったほうが早くて速いだろうな。
速さを求めないならVBで計算するも良し。
倍リニア法くらいなら割と簡単に実装できるんじゃない?
14287:02/05/10 11:11
>>140
NETキタ━━━━━━(゚∀゚)━━━━━━ !!!!!
って、NETに買い換える予算も目新しい機能もなさそうですし・・・

やっぱりVCですか・・・。
昔、素人工房さんとこにVBでのアンチエリアスのサンプルがありましたが、
あれは・・・激重ですた(泣
143デフォルトの名無しさん:02/05/10 14:42
メニューを実行中に動的追加したいのですが
最初は
menuOption
 menu2
で、ボタンを押すと
menuOption
 menu2
  menu3
  menu4
   menu5
   menu6
 menu7
などのように自由に増やすことは出来るのでしょうか?
144_:02/05/10 14:54
金融系のIT企業でVBを学んどいてっていわれたんですが、
コボルとは何が違うんでしょうか?

レベルにもよると思いますが、このVBはどのくらいで覚えられる
ものなんですか?
モバイル端末の開発とかいきなり言われちゃってるもので、いやはや・・・
145デフォルトの名無しさん:02/05/10 15:07
>>144
1週間みっちりやれば余裕だと思うぞ。
146_:02/05/10 15:10
え?そんなでできちゃうんですか?
でもそれは、ごく初歩的な段階ですよね。

今後このIT(特に金融関係)で生き抜くのに必要な知識ではあるんですかね?
>144
......モバイル端末の開発でVB?
って事はeMbeddedVBか...ククク、ご愁傷様。
148>147:02/05/10 15:25
え?え?
どうゆううことなんですか?

素人をいじめないでよぉ〜
Java使えよ
150即レス:02/05/10 15:41
>>143
階層化のメニューは自由に設定できない。
どうしても自由に操作したいならAPIだな。
151不明なデバイスさん:02/05/10 21:37
エクセルのVBAのことで質問したいんだけど、ここじゃダメですか?
どこならいいですか?
15279:02/05/10 22:02
レス下さった方々ありがとうございます。
今日は仕事が忙しくVBをいじれませんでした。
本屋に本を探しにでかけたのですが、VBの使い方本はあってもDBの
エラートラップについて詳しく乗ってる本はないのですねぇ(はぁ
どうやら他の人がaddnewで追加したキーを持つレコードを
後から追加しようとするとエラーコードが帰ってくるらしいということが
わかったのですが、(まだためしていないのでどんなエラーコードが
帰ってくるかはわからないのですが)そういったエラーコードの一覧表
ってどこに書いてあるのでしょう?MSDNをしらべてみたのですが
探し方がわるいのかみつからない・・・・・。
私が今作っているのはマスタメンテのようなアプリケーションなのですが
通常どんなトラップをしなくてはならないのでしょうか?
dbPessimisticで開いたレコードセットは排他制御がかかるため
更新処理では主だったエラートラップは必要が無いように思います。
削除処理も排他制御のおかげでエラートラップは必要ないかなぁ。
やっぱり思いつくのは追加処理で他のユーザーに追加されたような
場合なのかなぁ?
153デフォルトの名無しさん:02/05/10 22:43
>>152
コードは
MSDNを 「ADO 列挙定数」で調べれば出てきます。
DBが SQLサーバーと仮定すると デフォルトでタイムアウトは無限
になってますので、競合が発生しててもあとかきたプロセスが
またされますのでエラーはかえってきません。

SET LOCK_TIMEOUT 1000 -- 1秒ごにタイムアウト

で設定しておくと エラーが帰ってきます。
154デフォルトの名無しさん:02/05/10 22:45
あ、DAOですか...
さらに SQL Serverでもなかったんですね....すまソ
156デフォルトの名無しさん:02/05/10 22:55
>>152
アプリレベルでの排他はどうしてますでしょぅ。
同時に二人がおなじマスターメンテ画面を開いて、同じコードの
修正をするのはどうやって排他しようとしていますか?
157デフォルトの名無しさん:02/05/10 22:59
>>156
アプリレベルとは?
アプリは同一端末の多重起動を不可能とし。
EXEは端末に一つずつ置いています。
レコードは排他されるので問題ないようにおもうのですが。。。。。
ちがうの?
>>152
VBだけじゃなくDBだけじゃなくエラートラップについて詳しく載っている
ものは少ないぞ。残念なことだ。

俺から一つアドバイスをやろう。
エラー処理をするときには、どんなエラーがきても
ある程度対処できるようなコードを最初にかけ。

エラー状態ってのは通常状態以外すべてだからな。
通常状態は数えるほどしかないが、それ以外は無限にある。
どのようなエラーが発生するかを調べるだけ無駄だ。
すべてのエラーは発生すると仮定しろ。

だからエラーコードに依存しないエラー処理を最初に書いておけ。
その上で個々のエラー処理を追加していくのだ。
決して分かっているエラー処理だけをして、その他のエラーは
発生しないと仮定して、発生したときの動きは不明なんてコードを
書いてはいかんぞ。
159デフォルトの名無しさん:02/05/10 23:04
>>151
Excelについては、ビジネスsoft板のExcel相談所で質問したほうがいい。
Excel依存の割合が小さいVBAなら、こっちだけど。
16079:02/05/10 23:07
>>158
それについてはまったく問題ありません。
エラーはなんでもかんでもトラップしてエラーコードを出して処理を
抜けるようになっているんです。だけどそれじゃあみっともないので
わかってるエラーには対処したいのですがいかんせんエラーコード
一覧が見当たらないのとどんなエラーが予想されるのかがちっとも
見当がつかないのですよ(とほほ
どっかにいいサンプルコードでもないでしょうか?
>>160
そうか。ならいいんだが。

よくある馬鹿な例だが、
call a
call b
のときaの中でエラーが起きてaの処理が中断したにも
関わらずbが実行されてしまうってことをしていることが
あるが大丈夫か?大丈夫ならいいんだが。

それから多分知っていると思うがErr.Descriptionは
使っておけよ。
>>157
ユーザーAが、コード001 のマスターを画面で修正中に
ユーザーBが、他ユーザー が コード001 を編集中とわかるようにして
修正、削除をさせないようにしてるのか、

じっさいに削除や、修正実行をユーザーA よりさきに行ったときに
エラーにしているのか?

などでしょうか...

漏れは select に with (updlock) ヒント付けて 前者にしてます。
163デフォルトの名無しさん:02/05/11 00:07
コードの中で動的にpicture clip control を呼び出すには、
どうかけばいいですか?
コードの中で動的にpicture clip control を呼び出すには、
どうかけばいいですか?
さらにコードの中で動的にpicture clip control を呼び出すには、
どうかけばいいですか?
166仕様書無しさん:02/05/11 00:27
以下のような環境で

PC1 PC2
Oracle Client----N/W----Oracle Server
自作ツール

クライアント側のツールからサーバーにアクセスするには
ツール側にはどんな機能が必要で、Oracle C/Sはそれぞれどんな
設定が必要なのか教えてください。よろしくお願いします!
167デフォルトの名無しさん:02/05/11 00:47
Windows系のIPアドレス入力する欄みたいなテキストボクース作りたいんす。
[   ] [254] ←こういうテキストボクースで2つ目のボックスの2の前にカーソルがあるときに
左を押したら前のテキストボックスにフォーカスを移したいんですけど、
Enterとかならキーダウソ取れるんだけど十時キーだけは取れなくて困ってます。
ヘルプ!
168デフォルトの名無しさん:02/05/11 00:56
>>167
KeyPressでなくKeyDownとかKeyUp使いなされ。
ちなみにIPエディットな顧問コントロールが別にWindows側で用意されてるんじゃなかったっけ?
IPエディットな顧問コントロールは内容。駄菓熱湯蒸煮IP絵で一等な暮す
不破要るが蜜軽夜。
170デフォルトの名無しさん:02/05/11 02:10
VB6.0ですが、
exeのアイコンをかえるにはどうしたらいいですか?
「project1のプロパティ」の中に
「実行可能ファイルの作成」ってタブがあって、
アイコン選ぶところはあったんですが、フォームのアイコンしかないです。
171名無しさん@そうだ選挙にいこう:02/05/11 02:21
>>170

メインのフォームにアイコンを登録すれ
172デフォルトの名無しさん:02/05/11 02:34
>171氏
うおぉぉできました!ありがとうございました。
駄質問ですいませんでした。
ヘルプいれてないもんで・・・。
アイコンで思い出した。
アイコンを一つ設定するだけなら>>171の方法でいいけど、
複数のアイコンを持たせるのってどうやればいいのかな。
iriaとかsusieとか、プロパティ開いてアイコンの変更ってやると、
いっぱいアイコンがあって選べるけど、あんなかんじの。
別に出来なくても困らないけど、知っておきたい。
HELPのないやつは放置
不正なVBの入手の可能性がある
そんなやつにレスする必要はない
175即レス:02/05/11 09:57
>>173
リソースで持っとく。

>>174
初心者だからMSDNって何?って奴もいるだろうからねえ。
俺も最初の一週間ぐらいはそうだったし。
MSDN重いからね。
ナローな昔だったら一週間くらいDLに時間かかるよね。
177デフォルトの名無しさん:02/05/11 10:55
>>176 MSDNってDL出来るものなの?
178即レス:02/05/11 11:14
>>176
?
warezの事だろ。
>>174,>>175,>>176
180デフォルトの名無しさん:02/05/11 11:19
なるへそ。
>>176氏ね
181デフォルトの名無しさん:02/05/11 11:20
VB5ランタイム必須というソフトは、
VB6ランタイムを入れれば動きますか?
182即レス:02/05/11 11:24
>>181
動かない。
2001年4月をもちまして、MSDNの無料期間が終わったぽ。
ま、あんなにバカバカCDこられても困るしね。
MSDNといえば、MSDNライブラリのHELPがおかしくなっちった。
アクティブサブセットの項目が
「MSDN,技術文書・・・・・・」
がずらーと。同じのが何個も・・・。
再インストールは面倒なので、それ以外に直す方法はないですか?
185デフォルトの名無しさん:02/05/11 11:44
>>184
再インスコしれよ。どんなスペックでも30分もかからんだろ。その間に風呂入れ。
186184:02/05/11 11:47
あ、直ったでふ。
はやっ
188184:02/05/11 11:53
ったく、MSには付き合ってらんねーよです
いつまでたってもShellExecuteの記述がStartPageになってるmsdn萌え。
.NETのヘルプでも直ってないのかなぁ…。誰か調べて。
>>184
どうやって治った?再インストール。
俺も一度同じ状況になったことあるのよ。
たしか会社のやつで適当にほうっておいたけど。
191184:02/05/11 12:47
>>190
再インスコの方がいいけど、手動で直すなら、
MSDNライブラリ→「表示」→「サブセットの定義」
192デフォルトの名無しさん:02/05/11 12:54
企業向けのアプリ作る時、ビジュアル面で気を付けることって何ですか。
別に作るわけじゃないけど、興味本位で。
>>192
AAを使わない。
興味本位で質問するな!!
>>192
消してデバック用のエラーメッセージだからといって2ch用語書かないように。
>>191
あぁ、そんなところにそんなものがあったのか。
はじめて気づいたよ。あんがと
>>192
企業向けじゃなくともごくノーマルに!
MS Office を手本にすればいい
デスクトップの様々なデザインにも考慮
後はコントロールをなるだけ減らす
>>197
残念ながら企業向けの場合、ノーマルじゃないのを要求されるのがざら。
だけど、ノーマルな動きを知らないとはまる。
基本はノーマル、そしてそれをなるべく破らないように非ノーマルな
ユーザインタフェースを構築するようにすると良い。
199超初心者:02/05/11 16:32
>>19のコード
With WebBrowser1
.Navigate "about:blank"
.Document.Clear
.Document.Open
.Document.Charset = "Shift_JIS"
.Document.write "(゚Д゚)ゴルァ!<BR>(゚Д゚)ゴルァ!<BR>(゚Д゚)ゴルァ!"
.Document.Close
End With

を表示させて見たんだけど、一瞬だけ表示されて真っ白になっちまうよ。
何が足んないでしょ?
Closeすんなや
201超初心者:02/05/11 17:16
>>200
.refershしたら出来ました。
答え違ったけどさんくすっす。
というか、MSDN MSのHPにあるよ。
(MSDKはDLできたけど、MSDNもあるのかな?)
203超初心者:02/05/11 17:27
MSDK
204超初心者:02/05/11 17:31
MSDKは知らないけどMSDNは英語だったから諦めてました。
ありがとっす。

>>203鬱だ…
205ブビブビ:02/05/11 17:40
なんでC#があるのにおまえらVBなの?
>>205
煽りウザイ シネ
207デフォルトの名無しさん:02/05/11 18:08
俺も知りたい。
なんでC#があるのにおまえらVBなの?
>>207
なんかC#で作ったソフト公開した?
>>207
アマグラマにはわかるまいて。
210デフォルトの名無しさん :02/05/11 18:15
>>207
お前若いだろ。物事を自分中心にしか俯瞰できないんだね。

世界全体で最大数のVBプログラマが.NETに移行しやすくするためだよ。
普段に雑誌を読んでれば分かるはず。勉強しろよ、若いの。
211デフォルトの名無しさん:02/05/11 19:03
>>208
C++でかつlinux用のならオプソで開発中だけど。
普段はJAVAでアルバイト。
時給3000円。
来月はもう500円上げてくれないと辞めちゃうけどね。
C#はテラリウムにて。

>お前若いだろ。
よくわかったね。

>世界全体で最大数のVBプログラマが.NETに移行しやすくするためだよ。
それはVB.netをMSが作った理由でしょうが?
まあVB→VB.net→C#.netって移行してくれば、
VB.netを余分に買ってくれるからね。
で、おまえらなんでVBなんて使ってるんだ?

別に流行なんて知ろうと思わないから、雑誌なんて読む必要ないと思うけど。
>VB→VB.net
茨の道
>>211
Linux用に開発しているオープンソースのソフトってどんなソフトだよ?
JavaでアルバイトってJavaで何作ってるの?
214デフォルトの名無しさん:02/05/11 19:34
>Linux用に開発しているオープンソースのソフトってどんなソフトだよ?
分類的にはDSPなんで、ソースフォージ行って見てきて。
LINUX用ってのはプラットフォームがLINUXって意味ね。
LINUX使う必要性があるんでね。
まあ、VBやってる人はDSPなんか縁がないだろうけど。

PC以外のものと通信して、それを制御する・・・・
って説明でいいのかな?
携帯じゃないよ(w

で、213は何作ってるの?
ここって、自分の技術を自慢するスレッドじゃなくてVB初心者スレッド
なんだけどな。

自分の技術に自信があるのならわざわざ他人を馬鹿にしないもんだけどね。
216デフォルトの名無しさん:02/05/11 19:51
.NET初心者なんだろ

どっかのバカが何作ったか聞くから劣等感まみれにな(以下略
DSPって何?
218デフォルトの名無しさん:02/05/11 19:54
さぁ
デブ専用プログラマー
>>218
お前、DSP知らないってそれいくら何でも笑えない。
220即レス:02/05/11 19:58
煽りなら放置するナリよ。

>>217
http://www.heg.co.jp/know/dsp/dsp1-1.htm
221デフォルトの名無しさん:02/05/11 20:00
>>219
初心者スレッドで
「○○知らないの?」と言って悦に浸るぐらいしかないぐらい
底辺なんですね。あなた。
222デフォルトの名無しさん:02/05/11 20:01
VBでDSPはやらんだろう、普通
というかVBでDSPはできんだろう。
>>221←デブ専用プログラマーさん。
>>221
自分のことじゃん。

217 名前:デフォルトの名無しさん 投稿日:2002/05/11(土) 19:53
DSPって何?


218 名前:デフォルトの名無しさん 投稿日:2002/05/11(土) 19:54
さぁ
デブ専用プログラマー



PC初心者
http://pc.2ch.net/pcqa/

に行けば楽しいと思うよ。
>>221
お前が書いたレス見ろよ・・・。
226デフォルトの名無しさん:02/05/11 20:06
>>224
へ?俺は初心者スレッドで質問されたら
「そんなこと知らないの?いくらなんでも笑えない」なんていいませんが?

必死だね。あなた。初心者スレッドでなにいきがってるの?
初心者にアドバイスできないのならどっか他に行けば?
>>219の参照が>>218ではなく>>217だと思っているに3C#。
228デフォルトの名無しさん:02/05/11 20:10
>>225
俺の書いたレスって?俺が書いたのは>>221>>226だけだけど?
初心者を煽るしかできない底辺のくせに何いきがってんの?
229_:02/05/11 20:11
質問いいでしょうか
フォーム上にドラッグ&ドロップで持ってきたファイルの
フルパスを取得したいんですが、どうやればいいんでしょう?
230即レス:02/05/11 20:12
>>229
Ole_DragDropイベントでData.Filesオブジェクト参照。
231214:02/05/11 20:14
なんか荒れてしまったようですが
214以降は何も書いてませんのであしからず。
DSPは信号処理です。
MP3のエンコード、デコードなんかもDSP系です。

で、結局.netはC#のほうがいいんですね?
VC#.netを買うかVB.netを買うかは大きいと思いましてね。
テラリウムのためにその決断を下すのは浅はかですからね。
232デフォルトの名無しさん:02/05/11 20:14
VB6 WindowsXPです
今ひとつ詰まってしまっていることがあるのです。

入力されたデータをVBのコードとして実行することはできないのでしょうか
つまりTextに Label1.Caption = Label2.Caption
と書かれていたら、それを実際にコードとして実行する、ということです。
やっぱり無理なんでしょうか。
233217:02/05/11 20:15
>>220
即レスさんありがとう。さすがです。
予想とはあってました。よくAV機器に昔DSPってあって
ONにしたらホールとかチャーチとかあったんですよねー
>>231
手の凝んだ自作自演だな。
235デフォルトの名無しさん:02/05/11 20:18
>>232
できます。
入力された文字列を解析して、その通りの処理を記述するように
すればいいです。
変数の宣言ができるように、あらかじめメモリを確保しておく必要があります。
>>235
よく見るとageているのはこいつだけ。(劇藁嘲笑
>>234
初心者スレでいきがっていた自分に気付いて恥ずかしくなったのでしょう。
238即レス:02/05/11 20:22
>>231
俺はNET使ってないがC#とVBNETならなじみのある方でいいだろう。

>>232
基本的に無理。
VBAのDLL使えば出来そうだが。
>>235の方法でも出来るがw
239229:02/05/11 20:22
>>230
すみません。それをやってみたんですが
Formにドラッグしてる状態でマウスカーソルがいかにも「できません」
みたいな表示(○の中に/みたいな)になって、実際やってもできませんが・・・。
>>232
ちみ、そんなのできたらVBインタープリタに高い金を出す意味がなかろう。
241214:02/05/11 20:25
これが煽りって奴ですかね。
高校生に負けてそんなに悔しいですか??

低脳な大人はかわいそうですね。
40,50になったら仕事もない上に、趣味もないんですか?
何のために生きてるんですか?
税金払うためですか?
がんばって働いてください。
>>240
Perlとかなら出来るけどね。
>>241
だから煽りに乗るなって、、、放置しろよ。
244デフォルトの名無しさん:02/05/11 20:29
>ちみ、そんなのできたらVBインタープリタに高い金を出す意味がなかろう。
制限付のインタープリタでよければ、作った方が安い。
でも、どうがんばってもコード中のシンボルにアクセスするのは無理だよね?
VB.Netはできるけど。
>>241
若さ自慢は沢山です。
バカは自分がバカなことを自覚していないからバカなのだ。
247即レス:02/05/11 20:31
>>239
ああ、もしかして自分のアプリ内でのドラッグドロップか?
だったら自前で処理しないといけないぞ。
248241:02/05/11 20:34
意外と釣れないな
偽者ってバレてる?
煽られるのが嫌なのなら煽らなけりゃいいのじゃ?

困ったら高校生だからとかお涙頂戴するあたりがまた情けないね。

# 自分で喧嘩かしかけといて旗色が悪くなると周りを巻き込むなんて
 人として終わってるよな。
>>239
Form の OLEDropMode を vbOLEDropManual にしておかないと。
251プルプル・・・プルプル:02/05/11 20:37
煽られるのが嫌なのなら煽らなけりゃいいのじゃ?
煽られるのが嫌なのなら煽らなけりゃいいのじゃ?
煽られるのが嫌なのなら煽らなけりゃいいのじゃ?
煽られるのが嫌なのなら煽らなけりゃいいのじゃ?
煽られるのが嫌なのなら煽らなけりゃいいのじゃ?
煽られるのが嫌なのなら煽らなけりゃいいのじゃ?
煽られるのが嫌なのなら煽らなけりゃいいのじゃ?
煽られるのが嫌なのなら煽らなけりゃいいのじゃ?

手がプルプル(w
  ,   ∧∧    , 
  |\(゚ ω゚ ) /|
  |         |
  | ももんか! .|
  |          |
  |/  ̄ ̄ ̄ \.|
  '         '
253229:02/05/11 20:41
>>250
やってみたら上手く逝きましたが
これだとドラッグ中にも処理されてしまいます。
ドラッグし終えた時だけに判定することはできないですか?
254即レス:02/05/11 20:44
>>253
DragOverとか、いらん所に処理書くのやめれ。

>>252
チョトワラタ
>>253
試しに Form1.OLEDropMode=vbOLEDropManual にして次のコードを
実行して、適当なファイル1個をドラッグ&ドロップしたらドロップした時点で
Captionがファイル名になったけど。。

Private Sub Form_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
  Form1.Caption = Data.Files.Item(1)
End Sub
256@@@:02/05/11 21:49
指定したコントロールにフォーカスがあるかを調べたいんですけど
やり方がわかりません。APIとか使わないと無理でしょうか?
ご教授お願いします。
>>256
ActiveControl
258観鈴:02/05/11 21:58
失礼します。
showでだした新しいフォームに
変数引渡しをしたいのですが
どうしたらよいでしょうか。
259即レス:02/05/11 22:01
>>258
UserShowとかいう関数作ってそれで引数を渡すとか。
グロ
261観鈴:02/05/11 22:16
>>259
わかんないです・・・。
もうちょっと調べてみますー。
>>261
こーゆーことだよ。

Form1,Form2作成。

Form2のコード
Function UserShow(ByVal Title As String, Optional ByVal Mode As Variant = vbModeless, Optional OwnerForm As Variant = Nothing) As Long
Me.Caption = Title
Me.Show Mode, OwnerForm
End Function

Form2をShowする時に、代わりにUserShowを使う。
263即レス:02/05/11 22:27
>>262の名前忘れた。よく忘れるなあ。
264観鈴:02/05/11 22:37
>>263
うーんうーん
Usershowっていう関数を作ってしまえって事なんですか?
色々調べててcallなのかな、とか思ってたりしてたんですが。。。

難しいですけれどがんばります。
PGまでありがとうございます。
265デフォルトの名無しさん:02/05/11 23:08
学校の宿題で、
入力として文字列が与えられ
それをもとに木をつくれとの事なのですが
どのようにすればいいのでしょうか?
文字列の解析の仕方は既に友人に教えてもらいました。
それと、当方プログラム歴3日です。
ソースコードを提出するので、動きそうであればいいのですが。
>>265
意味不明。具体的に説明してくれないとわからんぞ。
宿題くらい自分でやれ
269デフォルトの名無しさん:02/05/11 23:12
>>264
Public変数にするのはダメなの? 変数名がHogeの場合、
Form1.Hoge で Form2 から参照できるけど。
あと、標準モジュールで宣言するのも一般的。
270260:02/05/11 23:14
>>269
俺もそういう意味で言った。続きを言う勇気はなかったが。
271デフォルトの名無しさん:02/05/11 23:16
文章には
主部と述部があります。
主部が、名詞と形容詞みないになります。
例えば、「親切な名無しさんが宿題を教えてくれた」
とあった場合、
各単語がどういう品詞か分類する事ができます。
「親切な名無しさんが宿題を教えてくれた」は
「親切な名無しさん」「が」「宿題を教えてくれた」
に分けられます。
「親切な名無しさん」は
「親切」「な」「名無しさん」
にわけられます。
これらを木として保存しろと言う事だと思います。
>>271
愉快なはなこがジャンプした。
「親切な名無しさん」は
「親切な」(形動)「名無しさん」(固名)だろうな。
「親切な」「名無しさん」「が」「宿題を」「教えて」「くれた」だね。

・・・これをVBにやらせるのか??
274デフォルトの名無しさん:02/05/11 23:22
VBじゃないとインターフェースが作れないんです。
日本語入力ソフトの連文節変換に匹敵するレベルじゃないの??
276即レス:02/05/11 23:24
>>271
普遍的に処理できるようなプログラムはプログラム歴3日
の人間に書かせるもんじゃないだろうね。

宿題なんだから何か逃げ道があるんだろーけど
それだけじゃ分からん。
素万、さっきのは「宿題を」じゃなくて「宿題」「を」だった。
278デフォルトの名無しさん:02/05/11 23:26
「親切な」「名無しさん」「が」「宿題を」「教えて」「くれた」
こうやって分解する関数はもう作ってもらいました。
アルゴリズムもプリントで配布されたので、
その関数を作った人は、作るだけなら簡単だと言ってました。
279デフォルトの名無しさん:02/05/11 23:27
>遍的に処理できるようなプログラムはプログラム歴3日
サボりまくってこの様です

>>278
>アルゴリズムもプリントで配布されたので、

お前、全然違うアルゴリズムが出てきたら

「プリントとは違うので・・・」

とほざくつもりだったのか?
この関数を作るのが本当に簡単なんだろうか・・
それはともかく、関数ができあがってるならあとは簡単なのでは?
「木」の形式がわかってればできるんじゃないの?
282デフォルトの名無しさん:02/05/11 23:30
>>280
違いますよー
木を作るっていうのはどういう風にすればいいのか聞きたいのです。

(((親切 な) 名無しさん が) ((宿題 を) 教えてくれた))
プリントによると、こういうのが木だそうです。
283デフォルトの名無しさん:02/05/11 23:33
>>281
その友達はマニアなんです。
ほとんどの言語を知ってるから、
どんな言語でも1時間で使えるようになると
豪語してました。
284デフォルトの名無しさん:02/05/11 23:36
だれか木を作る簡単なサンプル教えてください。
285デフォルトの名無しさん:02/05/11 23:41
(((バカ な) 厨房 が) ((質問 を) 書いた))
286デフォルトの名無しさん:02/05/11 23:41
>>282
Lisp かよ。
>>282
品詞を構造化するわけだから、形態素解析と文法書が必要。
素人には無理。
形態素片はともかく、まず日本語わかってないと無理。
288デフォルトの名無しさん:02/05/11 23:43
>>282
Lisp かよ。
>>283
その友だちはスーパーハカーですか?
290デフォルトの名無しさん:02/05/11 23:45

SICPに英語だけど、自然言語パーサのサンプルが載ってるよ
291デフォルトの名無しさん:02/05/11 23:46
よくわかりますね。
サンプルは全部lispとかいう言語で書かれていました。
でも、unixよくわからないし、インターフェースが作れないので
VBしか残されていないんです。
そして、無理でもやらないとやばいんです。
292デフォルトの名無しさん:02/05/11 23:48
>>283
もう神です
>どんな言語でも1時間で使えるようになると

素人丸出し(w
294糞レス:02/05/11 23:48
宿題だからどうしたって?
2ちゃんで宿題処理か イイ時代な
何言いたいか わかるな?
>>291
LISPとVBは性格を全く異にする言語。
物にもよるけど死ぬよ?
>>293
構造化手続き型言語しか知らん奴の典型やね。w
昔の俺がそうだった。
297糞レス:02/05/11 23:51
放置しろよ オマエラ
個人的な事片付けんなら
オフ会でもやれよ おまえらダケで
>>282
この先VBは希望が無いから、他の言語探したほうがいいよ。
課題には別にGUIとか必要ないだろうから、素のC言語でもいいし、
そのほうがナンボかマシ。
>構造化手続き型言語しか知らん奴の典型やね。w
他に何があるんだと、書いてみるテスト

前提条件は>278で、目的は>271で、それを実装しろという事でいいの?
>>300
オマエ1ダロ
自作自演が得意の(´Д`;)
302デフォルトの名無しさん:02/05/11 23:58
treeつくんのに、VBじゃ無理、とか言ってるやつって、頭悪いね。
303デフォルトの名無しさん:02/05/12 00:01
>>299
PrologとかXSLとか。
304デフォルトの名無しさん:02/05/12 00:01
299 名前:デフォルトの名無しさん :02/05/11 23:52
>構造化手続き型言語しか知らん奴の典型やね。w
他に何があるんだと、書いてみるテスト
>>265からのやつはコピペ&自作自演アラシだ
気づけよ
この板に糞スレが元ネタだぞ
>304
愛とか・・・勇気とか・・・?
307デフォルトの名無しさん:02/05/12 00:03
>>303
XSLってプログラミング言語ではないと思われ。
他には?
>>307
あいつはプログラミング言語に限定していないと思われ。
309糞レス ◆XYlAt4tU :02/05/12 00:04
さっきから上げてるやつ悪質だな
宿題は自分でやるべし
311デフォルトの名無しさん:02/05/12 00:07
>>307
XSLは言語になるらしい。何かの本で読んだ。
条件分岐があれば言語だとか書いてあった。
>>299
論理型(Prologとか)、関数型(LISPとか)などなど。

と、ギリギリの答えを書いてみるテスト
>>310
だからそれがコピペのネタなんだよ
>>311
s/言語/プログラミング言語/gと置き換えて・・・・

じゃあSQLもプログラミング言語にあたいするの?
あれは違うような・・・
315デフォルトの名無しさん:02/05/12 00:09
>>312
つまり世の中にプログラミング言語は3種類しかないのか
と聞いてみるテスト
316デフォルトの名無しさん:02/05/12 00:10
>>313
おまえがコピペなんだよ。
はやく寝ろ
317糞レス ◆KGXXSJYw :02/05/12 00:11
VB厨のがまだましだな
しばらく放置 イイな厨達
318デフォルトの名無しさん:02/05/12 00:12
prologって言語なの?
>>315
shemeとかRPGとか(これはよく知らんな)。

ALGOLとかCの子孫どもは構造化続き型言語だと認識。
320デフォルトの名無しさん:02/05/12 00:14
じゃあ3種類だな
321デフォルトの名無しさん:02/05/12 00:20
317 名前:糞レス ◆KGXXSJYw :02/05/12 00:11
VB厨のがまだましだな
しばらく放置 イイなVB厨
322デフォルトの名無しさん:02/05/12 00:29
さっき質問した者なのですが
なんか無理っぽいので、全部やってもらう事にしました。
どうもありがとうございました。
>>322
結局プリントの中身は謎の中。
実はその宿題も、出題者にとっての宿題だったのさ。
325糞レス ◆KGXXSJYw :02/05/12 00:43
それ他スレからのコピペだぞ
>>325
ソースキボーン
オマエまた貼ったら泣かすよ
http://pc.2ch.net/test/read.cgi/tech/1020785918/l50
328デフォルトの名無しさん:02/05/12 01:02
日付見ろバカが。
329糞レス ◆KGXXSJYw :02/05/12 01:06
マルチも同罪
オマエだなアラシ君 ネナサイ
>>329
ソースキボーン
331( ´_ゝ`):02/05/12 01:16
ソースキボーン
332( ´_ゝ`):02/05/12 01:37
ソースキボーン
333( ´_ゝ`) :02/05/12 01:38
ソースキボーン
334( ´_ゝ`):02/05/12 01:38
ソースキボーン
335( ´_ゝ`) :02/05/12 01:40
ソースキボーン
336 :02/05/12 01:41
WebBrowserコントロールを使っているのですが
IEの右下らへんにある、処理が現在どこまで完了したかを知らせるあれ
のようなものをつけたいんですが、どうしたらいいんでしょう?
つまるところは、WebBrowserで読み込まれているのが、現在どこまで
いっているのかを取得したいんですが。
337( ´_ゝ`) :02/05/12 01:46
>>336
お前には無理
>>336
onProgressChange
でできるだろ。

>>337
お前もわからなかったんだろ。(プ
>>336
切符を使って
今荒らしがいるようです
340デフォルトの名無しさん:02/05/12 04:06
外部WINDOWを操作したいんですが
検索等してもうまくわかりません。
ウィンドウハンドル取得をFindWindowでしてから
SendMessageやPostMessageを使ってメッセージを送る・・・

みたいなことは色々みてまわってわかったのですが
具体的にどうやればいいのやら・・・。
たとえばメモ帳のテキストに別アプリから↑のやり方で文を入力させたりできますか?
フヌケな俺ですがよろしくおねがいします。
341デフォルトの名無しさん:02/05/12 08:00
>>340
可能。
っていうか、メモ帳がサンプル第一位。
342ななし:02/05/12 08:17
>>38

ユーザー定義型(C言語で言うところの、構造体)をより発展させたものがクラス。
という理解でよいのでは?(ちなみに、俺はC言語はわかりません。ごめんなさい)

>>40さんも書いておられるように、クラスにはメソッドやプロパティを実装できる。

他の人の説明もそれぞれに正しいと思いますけど、初心者には理解できないのでは?
「わかっている」人には、問題ないけれど、わかっている人は最初から質問して来ない
訳だし・・・。
343ななし:02/05/12 08:22
>>79

> VBでDAOを使ってMDBにアクセスするアプリケーションをつかって

SQL Server または、MSDEではダメなのですか?
(顧客からの強い要望、とかなら仕方ないですけど)

Accessしかわからない、VBAを使えない、とかなら、DAO + Jet に頼らざるを得ないのは
わかりますけど、文面を拝見する限り、VBはある程度の技量に達しておられるようですし、
Jetなんかにこだわる理由が俺にはわかりません。
344ななし:02/05/12 08:27
>>340

技術評論社から出ている、「300」シリーズの第3作(正確な書名は失念)に、
まんまのサンプルが掲載されてます。
本を買うお金もケチりたいなら、↓こちら。

ttp://www.vbvbvb.com/jp/index.html

調べる労力も厭うなら、あきらめてください。
(そういう人はプログラミングの適性がないと思います)
345ななし:02/05/12 08:29
>>340
>>344

ごめん、最後の2行を読み落としてました。m(_ _)m

> たとえばメモ帳のテキストに別アプリから↑のやり方で文を入力させたりできますか?
> フヌケな俺ですがよろしくおねがいします。

これは、出来るかどうか、俺にはわかりません。(自信なし)
346ななし:02/05/12 08:35
>>345

自己フォローです。

相手のアプリがCOMインターフェイスを公開していれば、オートメーションで
簡単に操作できるんですが、それは相手次第です。
メモ帳(Notepad.EXE)の場合は、当然、×。
347ななし:02/05/12 08:38
>>114

ファイルの種類(例: *.TXT, *.DOC, *.BMP ......e.t.c.)によって
ある程度の傾向はつかめるとは思いますが、参考程度にしかならないと
思います。

他の人も書いておられるように、「やって見なけりゃわからない」が正解
ですね。(笑)
348ななし:02/05/12 08:41
>>143
>>150

もしかして、Delphi なら、(メニューがコンポーネントされているから)
簡単にできるんじゃないかしら。

俺、Delphiわかんないんだけど。(藁)
349ななし:02/05/12 08:43
>>348

それとも、*.OCXを自作しちゃうとか?(むずかしいかも?)

グレープシティの*.OCXにそういう機能はないですか?
(フォロー希望)
>>348
コンポーネント 化 されているからな。

実際出来る。アタッチしたよ。
感覚的にはTreeViewと同じ。

a :TMenuItem;
begin
a := TMenuItem.Create(MainMenu1);
a.Caption := '追加';
MainMenu1.Items.Add(a);
end;
351デフォルトの名無しさん:02/05/12 09:25
>>350
いいなぁ。VB.NETでは出来るのかしら?
かきこみてすと
>>351
MainMenuってリソース?
Framework化されてると踏んでるんだけど・・・。
354351:02/05/12 09:32
>>353
さぁ?.NET詳しくないから分からないっす。.NET詳しい人きぼんぬ
355デフォルトの名無しさん:02/05/12 11:08
irc.2ch.net
#プログラ
作ってみましたワイ。
356デフォルトの名無しさん:02/05/12 11:10
>355
原稿状態で流してもうた。ごめんなさい。
2chのIRCサーバ(irc.2ch.net)に#プログラっつーチャンネル作ってみました。
357コピペ名人:02/05/12 13:44
82 名前:デフォルトの名無しさん :02/05/12 13:41
VBは悪くない。
RADとしてはC#が無ければ、最強だと思う。
もちろんDelphiもいい。

ただ、仕事をVB専門でやってる奴のプライドを疑いたい。
それがおまえの限界かと。
そんな安月給でいいのかと。

俺もマジレスすると、
仕事をVBだけでやってる奴なんているのか?
そんな奴いたら、そいつの人生暗すぎる。
>>357
どうでも良いけど言ってること理にかなってるから論争にはならんと思うぞ?
359デフォルトの名無しさん:02/05/12 13:50
>仕事をVBだけでやってる奴なんているのか?
少なくても派遣で登録してる奴にVBだけの奴はいない。
VBの仕事なんて無いからな。
360まとれす ◆mato/KTI :02/05/12 14:08
#前スレにここのアドレスないのな。ついにスレが消えたかと思った

>>340
つか、そこまでわかってるなら、あとはサンプルを書くだけだと思うぞ

>>342
VB.NETの構造体には、メソッドやプロパティを定義できたりするな

>>343
正しい。MDBだとよく壊れるしな

>>345
WM_CHARをポストするか、VB的にやるならSendKeysでいいと思うぞ

>>349
Activeなんとかってのが確かあったな

>>350
できるぞ。そゆサンプルがMSにある
361デフォルトの名無しさん:02/05/12 16:52
VB.NETってなにがどー変わったんだよ?
362デフォルトの名無しさん:02/05/12 17:09
>>VB.NETってなにがどー変わったんだよ?
360に書いてあることが理解できないのなら知る必要ないと思うよ。

363まとれす ◆mato/KTI :02/05/12 18:27
>>361
いっぱいありすぎて書ききれないくらい変わったぞ。MSDNの「Visual Basic 言語の新機能」を
見てみると、

「継承」、「例外処理」、「オーバーロード」、「プロパティとメソッドのオーバーライド」
「コンストラクタとデストラクタ」、「データ型」、「インターフェイス」、「デリゲート」
「共有メンバ」、「参照」、「名前空間」、「アセンブリ」、「属性」

などが紹介されているな。もちろん、これ以外にもコンポーネント(CLR)も変わってるし、
ADOなどのミドルウェアも変わってる。

はっきりいって、別の言語だと思ったほうがよいかもしれん
10進型Decimalって正式に使えるの?
365即レス:02/05/12 19:27
んー、.NETを使う上で一番問題になるのがランタイムだと
思うんだけど、実際みんなどうする?

受注開発ならまだ何とかなるだろうけど、
オンライン作家とかは?

俺は静観するつもりなんだけどどうよ。>ALL
366まとれす ◆mato/KTI :02/05/12 20:01
>>364
VBのバージョンは? 6.0以降から正式サポートだったか? で、6.0では、Variant のひとつ
であるという罠。VB.NET では、Currency もなくなるし、これしかないな

>>365
俺はオンラインソフトなんか作ってないけど、WindowsUpdateにも出てきてるし、このブロード
バンド時代(ださい台詞)だし、ダウンロードしてくれ! で済むと思うぞ
>>366
誰もがブロードバンド環境にあるわけじゃないし.NETのランタイムって何MBだ?
368まとれす ◆mato/KTI :02/05/12 20:10
>>367
もっとも、俺は 64K 環境だったりするわけだが。ランタイムは、約20MBだな
369即レス:02/05/12 20:17
>>366-368
むう。そうなんだよな。たしか1年前ぐらいで
ISDN以下の普及率が40-50%ぐらいだったか。(うろ覚え)

VB6.0のランタイムすらいれてない人が多いのに
20MBはキツイよなあ。

言語自体にはかなり興味あるんだが。萎え。

>>368
ランタイム不要なコンパイルできるのってC#だけだっけ?
370ななし:02/05/12 20:19
>>360

取りあえず、フォロー感謝。

> WM_CHARをポストするか、VB的にやるならSendKeysでいいと思うぞ

あれ?SendKeysってNumLock問題とかでマズくありません?
SendKeys よりは、keybd_eventの方がいいと思うけど・・・。

まあ、どちらにしても、仕事で使う(元の質問者が求めているような実装をする)
ことはまずないと思いますが。(苦笑)
371まとれす ◆mato/KTI :02/05/12 20:25
>>369
C#でもだめ。Visual C++でアンマネージドだけだな

>>370
NumLock問題に加え、CapsLock問題まである。だが、VBの機能のみなら、それが限界。
APIを使ってもいいなら、keybd_eventでもSendInputでもウィンドウメッセージでも好きなのを
使えばいい
372  :02/05/12 20:44
>>誰もがブロードバンド環境にあるわけじゃないし.NETのランタイムって何MBだ?
そのうちIE6のコンポーネントとかにしてまとめて配布(雑誌の付録CD)じゃねーの
373デフォルトの名無しさん:02/05/12 20:48
>>372
思いつきでいいかげんなこと言うのやめたら?
冗談としてもまったく面白くないね。
374まとれす ◆mato/KTI :02/05/12 20:57
>>372
その前に、OSのSPに含まれるんじゃないか?

>>373
あながち外れてはいないと思うぞ
375372ですが... :02/05/12 21:06
>>373
どこが気に障ったのか正直理解できません(^_^;
ありうる話だと思うんですよ。

まとれすさんのSPに含まれるってのが配布しやすいかもしれないけど、
一般ユーザの端末にインストールするならやっぱIEじゃないのかなあ。
一般ユーザってオンラインソフトをどれだけ使っているんだろう?

一般ユーザの場合、市販されているゲームやビジネスソフトで
インストールする人も多いんじゃないかな。
(まだ.NET使っている市販ソフトはなさそうだけどね)
377観鈴:02/05/12 21:11
失礼します。質問です。
Accessからデータをロードし
自分の思うようなtextboxにいれたいのですが
どのようにPGをかいたらよいのかわかりません。

レコード変数を使用するんだとはわかっていますけれど
そこからが・・・。
どうかご教授ください。
>>373
372をどう読めば冗談として読めるのか不思議
379デフォルトの名無しさん:02/05/12 22:05
こちらも読み込み関係の質問宜しくお願いします。
メモ帳にかいてある文字から
一行分の内容を分けて、他の配列などに割り振りたいんですが、

namae1 , namae2 , namae3
といった感じにコンマ区切りな場合はいいんですが、

name1 name2 name3
といった空白での場合はどうやってわければよいのでしょうか。

超初心者的な質問ですみませぬ。
>>379
セパレータを,から に変えて処理すれば?
381379:02/05/12 22:38
>>380

読み込みにinput を使ってるので、
勝手にコンマで認識してくれてたので、
それに頼ってセパレータとかいうの知りませんでしたw

そのセパレータってので、分割の設定変更できるんですね。
ありがとうございました! その方向で調べてみます。
382デフォルトの名無しさん:02/05/12 23:01
よろしければ教えていただきたいんですが・・・
環境はVB6 Win98SE です

たとえばメモ帳が、txtに関連付けられている場合に
txtを実行したら、メモ帳が開いて同時に実行したテキストが読み込まれますよね。
それと同じようなことをVBでつくりたいんですが・・・。
どうやればいいんでしょうか?
383まとれす ◆mato/KTI :02/05/12 23:01
>>377
かなり説明が面倒になるから、使いたいミドルウェアを選んで、サンプルを探した
方がいいぞ

>>379
Line Inputで一行単位で読み込めば、好きなように分割できるぞ
384まとれす ◆mato/KTI :02/05/12 23:03
>>382
よくわからんが、自分で作成したアプリにドキュメントを関連付けたい、ということか?
それなら、レジストリに登録する必要がある。まず、HKCUの.txtを探して、そこから
順に追っていってみろ

で、関連付けができたら、Command関数でファイル名を取得すればいい
385デフォルトの名無しさん:02/05/12 23:19
>>375
NET.FrameWorkがOSに含まれるのは、NT6.0=BlackCombから。
つまり、最短でも2005年以降ってことか。
386デフォルトの名無しさん:02/05/12 23:20
えー!VB.NETってアセンブリできるんだ!
VB6よりパフォーマンスはどう?だれか比べてないかしら?
387デフォルトの名無しさん:02/05/12 23:22
>>385
その頃になればC#も浸透してるかな?
正直、中途半端に使ってるC++より、一気にC#に変えたほうがいい?
388379:02/05/12 23:24
>>383
サンクス!
 そうそう、始め、Input と LineInput 以外の方法
ムダに探してたんですよ。
一気に読み込んでからじっくりわけてきます。
VB.NETはVB6(以前)とは全く別言語だと思た方がいいYO!
ものにもよるが、比較するのは難しいかも。
すいませんstring型の文字列のn個目の文字を
知りたいときはどういう書式になるでしょうか?
>>390
a[n]
392デフォルトの名無しさん:02/05/12 23:27
>>389
簡単なループとかでいいからさ。
>390
MID関数を使うのが普通かな。
394デフォルトの名無しさん:02/05/12 23:28
mid$(a,n,1)
あ、.NETじゃないのね。萌えてきます。
396デフォルトの名無しさん:02/05/12 23:30
>>395
萌えてらっしゃい
>>391
いやぁ、シンタクスエラが出るもんで・・・
>>393-394
サンクスです。
398観鈴:02/05/12 23:37
>>383
そうですか
ご返答どうもです。
苦戦してます。。。
>>398
さっさとゴールしろ
400デフォルトの名無しさん:02/05/13 00:23
AVIファイルの再生時間を取得する方法がわかりません。
VBでどう書いたらよいでしょうか?
観鈴ちんは死にますた。
402まとれす ◆mato/KTI :02/05/13 00:24
>>385
ほー。そのロードマップは、どこの情報だ? ま、どっちみち、MSの言うことなんて
信用できんが

>>386
パフォーマンスがいい、とは言えんな。ただで落とせるんだし、試してみたらどうだ?

>>387
諸刃の剣だな。まったく失敗する可能性も、ないわけじゃない

>>391
VB.NETでもそうは書けんぞ。s.Chars(n) だな

>>398
どうしてもわからんかったら、使いたいミドルウェアを指定して、再度質問しろ。わかる
範囲で答えてやる
403デフォルトの名無しさん:02/05/13 00:30
>>402
えらそうだな。オイ
>>402
MSDN会員じゃないけど、タダで落とせるん?
405まとれす ◆mato/KTI :02/05/13 00:34
>>400
ぜんぜん初心者質問じゃないぞ。俺はまったくマルチメディア系は駄目だが、
こんなのを見つけたぞ

http://www.microsoft.com/japan/msdn/directx/japan/dxvb/dxvbdshow.asp

>>403
そういうキャラだからな

>>404
.NET Framework ならな。VB.NETのコンパイラも含まれてるぞ
406デフォルトの名無しさん:02/05/13 00:40
>>403
えらそうだな、このやろ
407デフォルトの名無しさん:02/05/13 00:41
>>404
その根性が気に入らない。
MCIって再生時間取得できなかったっけ?
MediaPlayerコントロール使うんだよ
簡単YO
ウゼーぞコテハン。氏ねヴォケ
>>410
カメレスだな
いーんだよ別に。ただ氏ねって書きたかっただけだから。
413デフォルトの名無しさん:02/05/13 01:11
今更ながら、使えるActiveXコントロールはVB付属のものだけではない
IEはWebBrowser、DirectAnimation(DirectX)、その他ある
MediaPlayerもそうだ(6.4のものは、DHTML上でも扱える便利)
使えるという意味はコントロール自体を配布しなくていい事だ
ほぼWin98以上ならインストールされているだろう
まだいっぱいある SDK見てごらん
414デフォルトの名無しさん:02/05/13 01:12
>>413
うん分かった。
ちょっと待っていて。
まだー?
せかすなよ
今ふたなり見てるんだから(´Д`;)
417デフォルトの名無しさん:02/05/13 02:27
質問なんですが、コミュニケーションコントロールを使って、16進数の
82を出力したいんですが、できません。
MSComm1.output = chr$(82) とすると &H00 が出力されています。
MSComm1.output = chr$(80)はできます。どなたかおわかりの方教えて
ください。
418デフォルトの名無しさん:02/05/13 05:20
>>417
まさかデータビットが7ビット(以下略)
419デフォルトの名無しさん:02/05/13 12:16
vb.netに移行した人いますか?
420名無し@新人:02/05/13 12:29
会社からVBを覚えるように言われた新人です。
自分で計算機みたいな物を作ろうと思ってプログラム
書いたのですが、どうしても上手くいきません。

Private Sub Command5_Click()
Dim strHandan
Dim intT1 As Integer
Dim intT2 As Integer
Dim intAns As Integer
Dim strMsg As String


If Label2.Caption = "" Or Text1.Text = "" Or Text2.Text = "" Then
strMsg = MsgBox("正しく入力してください", vbOKOnly, "Error")
Exit Sub
Else
strHandan = Label2.Caption
intT1 = Text1.Text
intT2 = Text2.Text

Select Case strHandan
Case "+"
intAns = intT1 + intT2
Case "-"
intAns = intT1 - intT2
Case "*"
intAns = intT1 * intT2
Case "/"
Do Until intT1 < intT2
intT1 = intT1 - intT2
intAns = intAns + 1
Loop

Case Else
strMsg = MsgBox("演算子を選んでください", vbOKOnly, "Error")
Text1.Text = ""
Text2.Text = ""
Text1.SetFocus
End Select

End If

End Sub

これって何故動かないのでしょうか?
あと、簡潔にかけるところをお教え願いたいです。
よろしくお願いします
説明不足な所は言ってください。詳しく書きます
421まとれす ◆mato/KTI :02/05/13 12:34
>>417
試せる環境がない・・・。あ、いっとくけど、&H をつけないと、16進にならんぞ

>>419
移行したぞ

>>420
何がどう動かないのか書け
>>419
移行したってのがどういう状態か分からんが、
VB.NETを使っている人、勉強している人はいるけど、
.NET自体が普及せんことには、主流にはならんだろう。
423420です:02/05/13 13:58
すいません。解決しました
計算は上手く行ってたんですが、表示させてない
事に気づきました。
では、頑張ります
424デフォルトの名無しさん:02/05/13 20:22
質問させていただきまッス。
Stringで定義した変数に
String * 20
といったようにバイト数を設定しているのですが、
それ以下の大きさの文字を入れると、

”ああああ      ”

というように後ろに余分なスペースがついてしまい困っています。
簡単に
”ああああ”
とだけに変換できる方法はあるんでしょうか・
>>424
固定長文字列使わないって手もあるけど、そうもいかないなら、
RTrim$(string) でできたっけかな?
Replace(string,vbNullchar,"")でもいいかも。
基本に忠実にLeft$(string,instr(string,vbNullChar)-1)って
やるとエラー処理が面倒な罠。
m = Len(text1.text)
left$(text1.text,m)
427デフォルトの名無しさん:02/05/13 21:08
VB6とVB7ってどれくらい違うの?
>>426
それ。答えになってないっしょ。
>>427
50M位
>>427
従来のVBとObjectPascal程度違う。
431仕様書無しさん:02/05/13 21:11
>>422
2005年にMSは.NET ServerでJ2EEを駆逐する予定。
2005年に向けてみんな頑張ってるのだ。
webbrowserコントロールを貼り付けて毛が生えた程度のプログラムを
exeのみで渡しましたが動かないようです。
やはりインストーラをつけないとだめでしょうか?
>>432
Cより日本語を。
434424:02/05/13 21:17
>425,426
ご指導ありがとうございまっす!
その辺の命令参考に、ヘルプも確認しながらがんばってきます。
>>432
ディストリビューションWizardがあるだろう?
dllのバージョンでコンポーネントのインタフェースが変わって
互換性が無いば場合があるからね。
>>435
えぇっと。Setup形式にせず、exeで配布したいのです。
かちゅーしゃのような感じでしょうか。
いきなりexe起動ですぐ使えるようにしたいのです

そのdllやocxとかとかを同じフォルダに入れとけばうまくいく
みたいな話を聞きましたが、どうなのでしょうか?
>そのdllやocxとかとかを同じフォルダに入れとけばうまくいく
そのとおり。必要なサーバをアプリケーションEXEと同じフォルダに
いれておけばレジストリにサーバのパスを検索しに行かなくていいので。

でも依存性ってDependencyWalkerとかDistWizardとか使わんとわからないでしょ?
436
VC使いま・・・
XMLエディタ exeed
ttp://www.aparto-soft.com/eXeries/eXeed/

これVB製なんだけど、自己解凍書庫を解凍するだけで
貴方が言ってるような配布の仕方だよ。dllはアプリケーションの
フォルダに入ってる。

ps.XMLエディタとして、かなり使い勝手がいいエディタですよ。
440まとれす ◆mato/KTI :02/05/13 21:57
>>423
すげー落ちだなおい

>>424
Trimしろ。それから、バイト数を設定しているつもりのようだが、文字数が設定されている
という罠

>>427
前に書いたぞ。参考にすれ

>>432
ものと環境による

>>436
無理だ

>>437
それは間違いだ。どちらにせよ、レジストリにパスを探しにいく。OCXを同じフォルダに置いて
おくと動作するんで、間違えやすいところだが、未登録のOCXは実行時に登録される、という
性質を利用しているだけだ。Side-By-Sideを使わない限り無理だと覚えておけ
相変わらず偉そうですね。好きだよ...>>まとれす
文字列の中から数字だけを抽出するにはどうしたらいいでしょうか。
"kaitou4649ne"から、"4649"だけを抜き出すような。
文字数分だけループ回して一文字ずつ数字かアルファベットかチェックして
数字だったら抜き出す〜みたいに書かないとだめですか?
好きな様にやれ
val()
>>442
まぁ。俺はそういうやり方したよ。val使わずにな。うむ。お互いがんばろー
446U-名無しさん:02/05/13 23:25
多分一文字ずつ判定するやり方の方が汎用性があるぞ。
val関数でもいいのならそれでやればいいけど。
つーか、val()でどうやって出すんだよ。
448デフォルトの名無しさん:02/05/13 23:40
ふりがな機能を付けたくて「VB Excel Phonetic」で検索したら、
ヒットしたのは数件だけ。
2002/04/19公開のサンプルコードが1個あったけど、
実行時バインディングに変えたら、漢字をそのまま取得(笑)。
Excel連携って初めてだから、どこかミスってるんだと思うけど。
ふりがな機能ごときでExcel使うのはいやだな。
Excel入っていないと動かんやんけ。
450デフォルトの名無しさん:02/05/13 23:44
451400:02/05/13 23:53
>405
ありがとうございました!
452448:02/05/14 00:00
API使うサンプルのほうが多かったので、こっちにする。
不安定なのは困るけど、どっちもどっちかな。
453まとれす ◆mato/KTI :02/05/14 00:27
>>447
俺もVal関数でいいかと思ったんだが、試してみたら駄目だった。ヘルプを読んでみると、
数字以外の文字列が見つかった時点で、検索を止めてしまうらしい。というわけで、
今回の >>442 の質問では使えないようだな

>>448
ちょっと目の付け所が違ったな。IME系のAPIだ。ImmGetCompositionString()で検索
してみろ

>>452
ん?APIを使うのが嫌だ、ってことか?IME98あたりなら、タイプライブラリが公開されて
るんだが・・・
454448:02/05/14 00:37
>>453
一発で検索できました。

APIがいやとかじゃなくて、サブクラス化がこわかったのです。
素人なもんで。
でも、確定後取得でよかったので、サブクラスは必要なかったです。

455デフォルトの名無しさん:02/05/14 00:47
プリンタの印刷解像度(dpi)に左右されない印刷って、どうやるのがいいんですか?

Printer.ScaleMode をTwipsにするとか、ミリメートルにするとか?
それとも、Printer.ScaleWidth, .ScaleHeightを指定するとか?

さらに、余白の問題もあるんですけどね。
456デフォルトの名無しさん:02/05/14 00:50
あれ?何聞こうとしてたんだっけ?わすれちゃった
457デフォルトの名無しさん:02/05/14 02:20
チャットプログラムで、

Private Sub cmdOK_Click()
rtbChat.Text = rtbChat.Text & txtSend.Text
End Sub

みたいなしょりをしてます。これで、入力があったときに
最新行に行かせたいのですけど、

rtbChat.SelStart = Len(rtbChat)

or

rtbChat.SelStart = Len(rtbChat.Text)

ではうまくいきません。どうしてですか?
>>447、453
頭使えよ。
数字が出てくるまでループで回して、そこでValで終了。

ま、どっちみち不完全だがな。
Val関数でもエラー発生するパターンがあるからな。
>>457
やってみたけどうまくいったよ?
まさかMultiLineがTrueになってないとか、そういうオチじゃないよね。
つか、それだと画面がチラつくから、
SelStartを末尾に移動してから、SelTextで追加文字列を表示させたほうがいいよ。

ただ、そもそもの問題として、RichTextBoxはNT系OSで表示が
ヘタれたりするから使わない方がいいと思われ。
460デフォルトの名無しさん:02/05/14 03:18
Formの左上のアイコンを変えるときは、
Form1.Icon = LoadPicture("AppIcon.ico")
ですけど、ここにBMPのデータやPictureClipの画像を
入れたいときにはどうしたいいのでしょうか。
BMP -> ICO の変換関数があるのでしょうか?
461460:02/05/14 03:26
ExtractIcon でいいみたいですね。やってみます。
462デフォルトの名無しさん:02/05/14 03:41
基本的なことでスミマセン。

Picture Clip コントロールを多数使いたいのですけど、
フォームデザイン時に何個も突っ込むのはいまいちです。

プログラム実行しに動的にオブジェクトを作ることかできますか。
コントロール配列にしてLoad
464デフォルトの名無しさん:02/05/14 04:58
>>463 理解できました。ありがとうございました。
465デフォルトの名無しさん:02/05/14 10:28
初めまして。今会社でVBを使っている初心者です。

別々のフォーム(同時に表示される事はない)にて、同一の名前で同じ動作をさせたい
コントロールがあります。
今は、それぞれのフォームのインスタンスを作る時に同じ名前にして、標準モジュールに
処理ルーチンを書き、それぞれのフォームのイベントを受け取った時点でそこに飛ばす
ようにしています。
コードで書くと、

Set Form = New FormA   'FormA という名前でデザインしてるとして
===FormAのコード    'FormBにも同じものを記述する
Private Sub command_click(Index as Integer)
  CommandClick(Index)
End Sub
===標準モジュールのコード
Public Sub CommandClick(Index as Integer)
  'ここにいろいろな処理を書く
  'コントロールはForm.〜〜で参照する。
End Sub

このような感じなのですが、もっと良い方法がある気がしてなりません。
(あまりスマートではないので)
あと、呼び出す時に使われるコントロールがはっきりしてる場合は、コントロール自体を
オブジェクトとして渡しておいた方が良いものなのでしょうか?

以上、長文で申し訳ありませんがよろしくお願いします。
.NET買って来て触ってみた
・・・いかん、初心に戻ってやり直そう
467デフォルトの名無しさん:02/05/14 12:26
>>465
標準モジュールじゃなくて、
クラスモジュールじゃだめ?

特定のコントロールに関するクラスモジュールを作成

フォームのインスタンスを作るときそれぞれのフォームでそのクラスを
同時にインスタンス。

動作させるときClassName.CommandClick

漏れもVB始めて1年ぐらいだからよく分かってないかもしれんが。
そういう処理が増えてきた時に標準モジュールに書いてたら
コードが肥大化したときに訳分からなくなるぞ。
http://homepage1.nifty.com/CavalierLab/lab/vb/clsmdl/
この辺拾ってきたんで読んでみ。
468デフォルトの名無しさん:02/05/14 12:45
.netではSDI開発環境はないんですか?
今の環境だと狭くてやりづらいです。。。
469まとれす ◆mato/KTI :02/05/14 13:33
>>457
リッチテキストでは、Sel系のプロパティに問題があったような気がするぞ

>>458
おお。確かにそのとおりだな

>>460
BMPでもそのまま入ったと思うぞ

>>462
VB6なら、Controls.Add でコントロール配列を使わずに動的に生成する
こともできる

>>465
コンストラクタが引数を受け取れれば、Me を渡しちまう、って方法がある。
自分用のInitメソッドを必ず呼び出すような形にするのがベターかな。
ということで、>>467 と同じだが、クラスにしろ

>>468
ない。ピンアイコンをオフにしておけば、使わないときは隠れるぞ。いちいち
スライドしてきてうざいけどな
470_:02/05/14 13:35
外部Windowの位置を取得、変更させることはできますかね?
APIを使うと思って検索しているんですが上手いのが見つからないので
質問させていただきます。
471465:02/05/14 14:55
>>467,469

回答ありがとうございました。
実はフォームが7種類あって、共通のイベントが20くらいあるんですよね。
それでフォームのコード部に呼び出しばかり並ぶのがどうも・・・。
という訳で質問してみたんですけど、クラスモジュールに書き換えても
同じような感じになっちゃいますね。

サブクラス化という手法もあるようですが、使用した事がないのと、時間の
制約がある、ということで避けてしまいました。

とりあえず、可読性の向上という意味でクラスモジュールに書き換えようと
思います。
>>471
ユーザーコントロールに組むってのは駄目?
あんまし使ってる所みたことないけど、便利かもって思う。
WebBrowserコントロールを使っているんですが
これでソースを取得することはできるのでしょうか?
Inetと組み合わせてやればできるのでしょうが
これだけでできるのならそっちの方を選びたいのです。
具体的にやりたいのは
WebBrowserコントロールで開いているページのソースをTextに表示
これがやりたいんですけど・・・。よろしくお願いします。
474Delフサギコ ◆zE1iiRdQ :02/05/14 15:14
>>442

  ∧,,∧
ミσ゚Д゚ミσ

Private Const NumericTable As String = "0123456789"

Function ExtractNumeric(ByVal S As String) As String
 Dim i As Integer
 
 For i = 1 To Len(S)
  If 1 <= InStr(NumericTable, Mid$(S, i, 1)) Then
   ExtractNumeric = ExtractNumeric & Mid$(S, i, 1)
  End If
 Next i
End Function
>>473
おいらはWinInet使う方でやったがめんどかった。
それでできるなら知りたいっす。
>>442
int strtoval(char *str, char *valstr)
{
for( ; *str != '\0' ; ) {
if((*str >= '0') && (*str <= '9'))
*(valstr++) = *(str++);
else
str++;
}
*valstr = '\0';
return 0;
}
477    :02/05/14 17:39
>>474
   Private Const NumericTable As String = "0123456789"
      InStr(NumericTable, Mid$(S, i, 1))

    NumericTable を探索開始位置にするとどうなるのでしょうか。
478467:02/05/14 17:58
>>471
それだと標準モジュールぐちゃぐちゃだろ。

イベントにはそれぞれ意味があって、モジュール単位で分けられるだろ。
それに名前をつけてクラス化したほうが可読性がいいし、
将来の改造が楽になると思うが。

>それでフォームのコード部に呼び出しばかり並ぶのがどうも・・・。
普通そういうもんじゃない?漏れの書いてるコードはそんなだぞ。
だってそうしないとフォームイベントのコードが画面に収まりきらんぞ。
>>477
InStr使ったこと無いだろ。開始位置は省略できる。
それより、IsNumeric(Mid(S,i,1))を使ったほうがいいかも。
>>479
IsNumericの方が高速だろうね。
でも、それだと数字だけだけど、
>>474の方法だとNumericTabelを書き換える事で、
ひらがなだけを抜き出すとか、あ行の文字だけを抜き出すとか、
アルファベットだけを抜き出すとか使えそう。
それとも、そんな用途ならもっと上手い方法あるかな。
>>479-480
全角数値もIsNumericでTrueになるので注意ね。
>>481
他に"+"とか"-"もIsNumeric = Trueだったけ。
数字だけ抜き出したい時に使いたくなるけど、
そういう罠があるんだよなぁ。
やっぱり>>474か。
>>471
コントロールのイベントで同じ処理をさせたいの?
だったらクラスモジュールで解決するとおもうけど。

クラス側(cPicProc)
private withevents mPic as PictureBox

public sub Initialize(pic as PictureBox)
 set mPic=pic
end sub

private sub mPic_Click()
 Msgbox "Pic Click"
end sub

フォーム側
private mPicProc as cPicProc

sub Form_Load()
set mPicProc=New cPicProc
mPicProc.Initialize Picture1
end sub
(フォーム側でPicture1のClickイベントのコードはいらない)

こんな感じで共通処理できるんでない?
はずしてる?
484即レス:02/05/14 21:51
>>470
SetWindowPos

>>473
一応WebBrowser.Document.Body.innerHTMLで取れる。
ただBody以下の内容しか入っていない上、ソースそのままではない。
あと、WebBrowser.Document.All.Item.....も使える。

(MSも日本語版のまともなブラウザコントロールぐらい
標準装備しておけよ、と思う今日この頃。)

>>442
フサギコの使っとき。
485デフォルトの名無しさん:02/05/14 22:30
integerよりlongの方が処理早いって聞いたのですが、
longの方がたくさんメモリ食いそうな印象ですが、その辺り具体的に
教えて下さい。i = 0 To 7なんていうループに使うのもlongが良いのでしょうか。
>>485
だって今のCPU32ビットだもん。32ビットのlongの方がそらね。
487485:02/05/14 22:35
>>486
解答ありがとうです。
どこで聞いてもその解答なんです。僕も「32Bitだから」って知識しかないので
出来れば具体的におながいしたいのですが…。
488即レス:02/05/14 22:35
>>485
今はIntegerを使う理由はほとんど無い。
大量に配列で確保する時ぐらいかな。
ループカウンタなんてその最たる例だよ。
489即レス:02/05/14 22:55
ありゃ、かぶった。まあついでに。

Longを使うメリット

・処理速度はLongの方がIntegerより平均10%ぐらい速い。(大体)
・128MB以上のメモリが載っているPCが普通なのでメモリのことを
気にする必要はない。(100万個確保しても2MBしか差はない)
・代入可能な数値が大きい。

てな感じ。

16bitの時代は32bitの計算に時間がかかったが
今は速度的にはあんまり変わらん。
「32bitだから」ってのはIA32にあわせた使い方だから、
って意味だろう。
ヘルプをなんど読んでもFor Eachが理解できん!
とかいう独り言。無視してくれ・・。
>>490
Treeだろうがリストだろうがスタックだろうが同じようにアクセスできてしまう仕組み。
STLのイテレータを想像すればわかりやすい。
IntegerはLongのメモリ領域を2つに分割して使ってるから
オーバーヘッドがあるとか聞いたよ。
ホントかどうかは知らないけど、実際にLongの方が速いから
Long使ってる。
悩むのは配列かな。Hoge(i) ってやるとき、iはLongがいいのか
Integerがいいのか…。
配列の添え字ってたしかIntegerだよね。型変換が起きちゃう。

>>490
Dim Frm As Form
For Each Frm In Forms
  If Frm.Caption = "hoge" then .....
Next

のように使ったりするよ。
コレクションの全要素参照に便利。
>>487
16ビットから32ビットへの変換かますから。
>>468
SDKだけでやれば問題解決。俺はSDKで遊んでるよ。
補完機能、パラメータヒント、F1でヘルプ呼び出し、
一括コメント化/非コメント化等の機能は欲しいけどさ。
495デフォルトの名無しさん:02/05/14 23:20
統合アーカイバライブラリのDLL使いづらくて仕方がないんですが…
一般的な評価ってどんなもんですか?
??今 OCNの6番鯖落ちてるのか?
おでの鯖と一緒 鬱だな
497即レス:02/05/14 23:25
>>495
LZHのサンプルはよく見るけどな。

俺は個人で使うツールにはeoを使ってる。
コマンドラインで色々指定できるので便利。
DLL不要だし。
だな 落ちてるな
メンテかな
ひろゆきも ここ持ってんのか 一緒かよ
鬱だな
499デフォルトの名無しさん:02/05/15 00:30
>>476
不要なカッコ、とれよ。評価順序わかってないだろ?
500まとれす ◆mato/KTI :02/05/15 00:40
>>470
FindWindowでウィンドウハンドルを取得して、MoveWindowだな

>>471
まぁ、VB6だと限界もあるしな。VB.NETでは、フォームが継承できるんで、かなり楽に
なるな

>>485
速いとはいっても、それほど差があるわけじゃない。あまり考えられないが、プログラム
的にわかりづらくなるぐらいなら、Intergerを使うほうがいいぞ

>>491
_NewEnumとかが関わってくるんだが、まぁ、気にしなくてもいいか

>>494
SharpDevelopを使う、ってのもひとつの手だな。うざったいウィンドウはないし。ただ、
VB.NETにきちんと対応していないという罠

>>495
統一するためにいろいろやってるし、しょうがないだろう。VBから使いやすくしたラッパOCX
もあるし、それを使うのもいいぞ

>>499
俺は、コードをよりわかりやすくするために、括弧をつけるほうが好きだな。評価順で悩む
こともないし

501470:02/05/15 01:39
>>484 >>500
ありがとうございます!
お陰で外部ウィンドウはちゃんと動かしたりできました。
それで、位置を「取得」するのもそれでできるのかと調べていたのですが
どうもうまくいっていないみたいです。
外部ウィンドウのウィンドウハンドルがわかっていれば、
位置を取得することなどは簡単に行えると思うのですけど・・・。
GetWindow〜〜って奴でしょうかね?
502まとれす ◆mato/KTI :02/05/15 01:45
>>501
そうだ。GetWindowPlacementとかGetWindowRectだな
メールの送信、受信の進行度をプログレスバーで視覚化したいんですけど
送信、受信したバイト数を得るにはどういう方法がありますか?
504まとれす ◆mato/KTI :02/05/15 03:06
>>503
何を使ってメールを送受信してるかによる。WinSockコントロールなら、受信バイト数
が取得できるし、送信バイト数は自分で管理できる。

POPやSMTPをラップしてるようなコントロールだと、コントロールが提供していなけれ
ば難しいな
505デフォルトの名無しさん:02/05/15 07:18
VB6で作成したフォームを、VB以外のアプリも含めて
際前面に表示させたい(CTRL+TAB等で切り替えられない)のですが、
可能でしょうか?
もしできないのであれば、
タイマーコントロールで、定期的に最前面表示するというのでも可です。
よろしくお願いします。
>>505
STAYONTOPとか知らない人?
>>505

Private Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal uFlags As Long) As Long

Private Const HWND_TOPMOST = -1
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOMOVE = &H2

Private Sub Form_Load()

SetWindowPos hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE

End Sub

>>506
StayOnTop ??? オレも知らんぞ
508_:02/05/15 09:27
VBでエクスプローラのファイルリストビューの内容を取得するプログラムを作ろうとしています。
LVM_GETITEMTEXTメッセージを送るとエクスプローラがコケるんですが、何が悪いのでしょうか?
ソースはおよそ以下の通り。

LVITEM.mask = LVIF_TEXT
LVITEM.iItem = 1&
LVITEM.iSubItem = 0&
LVITEM.cchTextMax = 255&
LVITEM.pszText = String(.cchTextMax + 1&, vbNullChar)
Call SendMessage(ExplorerhWnd, LVM_GETITEMTEXT, 1&, LVITEM)  '←ここでエクスローラがコケる

どなたかご存じの方、教えて頂きたく宜しくお願い致します。
509即レス:02/05/15 09:40
>>508
プロセスを超えたメモリへのアクセスはアクセス違反になるからだよ。

そのコードはエクスプローラーに自分のプロセス内のメモリへ書きこませる、
って言う命令なのでプロセスを超えたメモリへのアクセスで落ちる。
そういうことをしたい場合はVirtualAllocやら何やらで共有メモリを
使わないといけない。

http://pc.2ch.net/tech/kako/1009/10091/1009174392.html
このスレの最後にサンプルあるんで使ってみ。バグあるけど。(すまん)
510465:02/05/15 09:44
>>472
ユーザーコントロールも作成した事がなかったので、似たような事を(私がしたい事と)
しているサンプルを探して見てみました。
ものすごくソースが大量かつAPI呼びまくりだったので、「ここまでしなくてはならないの
か」と思ってしまいました。
とりあえず今回は見送る事にして次回以降の課題としたいと思います。
確かに作っておけば便利そうですね。

>>478
一応種類ごとにモジュールも分けて使ってるので、探したりするのはそれほど大変で
はないのですが、やはりプロシージャの数は結構なものになってしまっています。
後半部分の書き込みを読ませて頂いてだいぶ気が楽になりました。

>>483
実はそういう事ができないのかな?と思い質問してました。
(イベント処理自体をどこかに代行させるような形態)
前回まとれすさんが書いてくださった事もこういう事だったのか、と今気が付きました。
恥ずかしながらこういうものがあるとは全然知らず、先ほど早速試してみたのですが、
下記の2件がどうもうまくいきませんでした。

1:コントロール配列の場合は渡せないのでしょうか?
2:フォーム自体を渡した場合、それに属するコントロールのイベントは受け取れない
  のでしょうか?

私のやり方がまずいだけかもしれません。
ただ2についてはまとれすさんが500で言って下さってる事が非常に気になります。
(ちなみに私はVB5を使っています。書くのが遅くてすいませんでした。)
1についてはフォームによってはコントロールが100以上あったりするのでなんとかな
らないものだろうか、と思ってしまいます。

いずれにしても、どの助言も非常に勉強になります。
何度もありがとうございます。
511_:02/05/15 09:54
>>509
これを元にしてやってみます。
ありがとうございました。
512508:02/05/15 11:01
>>509
むぐっ、今気が付いた。
これってWin98では無理ですか?(汗)
VirtualAllocEXってNT専用だった気が・・・。

それと、VirtualAlloc使っても戻り値が0なのですが、GetLastErrorも0が返ってきます。
これはどういう状態でしょうか?
確かVirtualAllocの戻り値はアドレスだと思ったので、0はエラーだと思うのですが、この認識が間違いですか?
513即レス:02/05/15 11:42
>>512
そうだよ。
VirtualAllocExは9x系には意味のある実装はないのだ。
(戻り値は常に0。)

9x系ならFileMappingかな。逆にNT系ではこういう用途で
FileMappingが使えない。
514508:02/05/15 11:46
>>513
むー、いろいろと面倒臭いんですね。
なんとか頑張ってみようと思います。
レス有り難うございました。
515まとれす ◆mato/KTI :02/05/15 12:21
>>505
「切り替えられない」ってあたりは難しいが、最前面表示だけなら、>>507 の方法でいいな

>>506
Delphiか?VB.NETでは、TopMostプロパティだ

>>508
即レスがよさげなレスをしてくれてるが、あれはポインタとかメッセージとかの仕組みを理解
していないと使いづらい。というわけで、Shellオブジェクトからたどる方法をお勧めする

>>510
VB5でもVB6でも、この辺は変わらないはずだ。コントロール配列を渡したことはないが、
「フォーム自体を渡した場合・・・」ってのは無理だな

>>513
9x系なら確かにメモリマップドファイルだな。しかし、オーナードローものには効かないという
罠。というわけで、まだ試していないが、MSAAをお勧めしておく

>>514
丹念に探せばサンプルが見つかるはずだ。がんがれ
516ななし:02/05/15 12:54
技術以外の質問で申し訳ないんですが、VB.NETの単体パッケージ(一番安いやつ)って、
ヘルプはついているんでしょうか?
いくら安くても、ドキュメントがなければ使いこなせないので、買いたくないのですが。
>>516
ヘルプナシの言語が売れるとは到底・・・。
確か入門書まで付いてきた気が。。。
518即レス:02/05/15 13:03
>>516
心の底から517に同意。
NET持ってないけどね。
>>516
後、覚えるならC#のほうがいいと思われ。
言語のレベルは同一だ。
せっかく新しい世界が開けたのにわざわざマイノリティに甘んじることもないでしょう。
>>516
無料のSDKでもヘルプはついてる。
SDKのはさすがに全部じゃないとは思うが、
言語仕様やライブラリのリファレンスなどはついているので十分。
521ななし@516です。:02/05/15 15:09
やはり、愚問でしたか?

(異常なまでな価格の低さに、販売政策上、高価なパッケージが売れなくなると困るから、
ドキュメントを抜いてるんじゃないかと、疑問を抱いてしまいました。(^^;)
旧VBのラーニングみたいに制限多すぎてロクに使えないようなヨカン。
523観鈴:02/05/15 20:10
質問です。

VBでAccessを扱っているのですが
変数をSQLの中に使いたいのです。
ただそれだけならいいのですが
検索もかねたいのです。
SQLでいえばLIKEのように。

その書き方がどうしてもわかりません。
ご存知の方、ご教授ください。

524即レス:02/05/15 20:14
>>523
Dim SQLStr$
Docmd.RunSQL SQLStr
525デフォルトの名無しさん:02/05/15 20:30
テキストファイルの行数を取得したいのですがEOFまで行読み込みを
行う方法だとちょっと男らしすぎるのでもう少しスマートな方法はない
でしょうか?
526観鈴:02/05/15 20:30
>>524
ご返答どうもです。
ちなみに私はこういう書き方をしています。

StrSql = StrSql & "社員名称 = ' " & syainMei & " ' "

上の[syainMei]についてlikeを使いたいのです。
524さんの言われる書き方で出来るのでしょうか。
>>525
あると思うか?
テキストもバイナリの部分集合だと言うことを考えれば改行コードの数数える以外に方法はない。
クラスなどを使っても裏では結局そうやってる。
528デフォルトの名無しさん:02/05/15 20:33
>>526
えっと。
LIKEのような動きにしたいのなら
StrSql = StrSql & "社員名称 LIKE '*" & syainMei & "*' "
のようにしないとだめですね。
ワイルドカードはわかりますよね?
529観鈴:02/05/15 20:37
わ!出来ました!
すごいうれしいですー・・・。
ありがとうございますです。
>>528
> StrSql = StrSql & "社員名称 LIKE '*" & syainMei & "*' "
AccessでこういうSQLを書くとsyainMeiを工夫するだけで
command.com呼び出せるんだぜ。
531デフォルトの名無しさん:02/05/15 21:55
このスレはなんか、いい感じだなあ
532age:02/05/15 22:23
すまん
SendMessageの定数をしらべたいんだが
WM_〜〜〜〜とかいう定数に、代入しておかなくちゃいけないだろ
その代入するやつはどこでどうしらべてどうすればいいんだ?
全くわからん。俺の文も全くわからんけどよろしこ。
最初のVB初心者スレ立てたの、実はDel厨なんだけどね。
>>532
ごめん。
理解の限界超えた。
535デフォルトの名無しさん:02/05/15 22:27
Labelに出力されたデータを
CSV形式で保存するにはどうしたらいいんでしょうか・・・。
536デフォルトの名無しさん:02/05/15 22:28
>>532
まずは定数とは何なのかを勉強してください。
自分のあほさ加減に気付くでしょう。
>>535
お好きなところにカンマ挿入して下さい。
って言うかLabelに出力されたデータ??
538デフォルトの名無しさん:02/05/15 22:43
>>定数に、代入
君は若い頃からステキなことばかり言ってたが相変わらずだなあ
539535:02/05/15 22:49
>>537
はい。
LabelにAccessから取ってきたデータを
CSV形式で印刷するのが今の目的です。

しかし、適当なところにカンマを入れる・・・と
いうのであっているのでしょうか
>>539
まずはCSVがなんなのかを勉強することからはじめたらどうだ?
そうだな最初はCSVが何の略なのかからだな。わかったらレスしたまえよ。
541535:02/05/15 22:53
Comma Separated Values
542デフォルトの名無しさん:02/05/15 22:55
>>541
はいはい、で。アクセスからデータは何単位で取ってくるのかね?
543デフォルトの名無しさん:02/05/15 22:57
9です〜
544  :02/05/15 22:57
>>535
1)ACCESSから読み込んだデータをCSVで保存したい...2)ACCESSでテーブルのデータをCSVで保存したい...
3)LABELにCSV形式で印刷したい...

あなたの質問が3番なら意味不明だぞ。
CSVって何の略かわかってるの?
仮にそうだとして何の意味があるのか
>>544
すでにそれに沿った指導が始まっているのにそんな質問するのは
たまたま知っていた事だったので偉そうにしたかったからですか?
546デフォルトの名無しさん:02/05/15 23:00
コンビニエンスストア。
547535:02/05/15 23:01
はい、そうですね。
3だとしたら意味不明ですね。

私は1希望です。
しかしその間に処理が入るのです。
ラベルに出力してからCommandクリックされたら
CSV形式で印刷します。

書き方悪くてごめんなさい ペコリ(o_ _)o))
>>547
>CSV形式で印刷します。

表示と印刷は明確に区別してくれ。ちょっとこんがらがってきた。
549544:02/05/15 23:05
>>545
>すでにそれに沿った指導が始まっているのに
私が書き込みボタンを押すまで始まってなかったですよ。
2,3分の書き込みでしょ?
550デフォルトの名無しさん:02/05/15 23:07
ACCESS VBAなんて言わないでしょうね?
>>532
APIビューワで調べれ。
載っていないやつは、VC++のヘッダーファイルで。
552535:02/05/15 23:08
えっと・・・。
1.VBにてAccessからデータ取得
2.取得したデータをラベルに表示
3.印刷ボタンを押されたら表示したデータをCSVにて印刷。

以上です・・・。
すみません、混乱させちゃいました(汗)
553まとれす ◆mato/KTI :02/05/15 23:09
>>525
Cとかで作った外部アプリを使う。速いっちゃ速いな

>>530
そのセキュリティホールはふさがれたはずだが・・・ ま、パスワード入力をスルーされる
可能性があるし、パラメータにしたほうがいいな

>>532
Cのヘッダファイルを見ろ

>>547
変数に入れてWrite#だが、俺的にはPrint#の方がお勧めだな
554デフォルトの名無しさん:02/05/15 23:12
まとれすカコイイ!!
555デフォルトの名無しさん:02/05/15 23:13
3.印刷ボタンを押されたら表示したデータをCSVにて印刷。

「表示したデータ」はString変数とかに格納してるんでしょ?
それを印刷するだけだと思うが。CSVとは何の関係もない
質問じゃねーかYO!!質問は印刷でしょ?

印刷って....紙ですよね!?...
556デフォルトの名無しさん:02/05/15 23:17
もちろん紙です・・・が。

CSVとは関係ないんですか?

>>553
プリンタの指定とかはどうすればいいのでしょうか?
558 :02/05/15 23:21
>>CSVとは関係ないんですか?
ふーん
559デフォルトの名無しさん:02/05/15 23:21
まとれすチュウトハンパ!!
560 :02/05/15 23:24
560のリンクの6を実行するだけでしょ
562まとれす ◆mato/KTI :02/05/15 23:46
>>554
ありがとー

>>556
あんまり関係ない。印刷なら、Printerオブジェクトを使ってもいいし、専用のツールを使ってもいい。
Excelでもいいしな

>>557
まずは、Printerオブジェクトについて調べてみろ。その後、印刷に何を使うか決めるんだ

>>559
スマソ

>>561
ひでーな。ま、Windows XPなら関係ねーが
563532:02/05/16 00:10
ちょっと皆さんの理解の範囲を超えたことを書いてしまい申し訳ありませんでした。
まぁこれで一人の厨房がひとつ大人になったのでご勘弁(w
Cのヘッダファイル っすか。
ぐぐるしかねーか。ヽ(;´Д`)ノ イッテキマス
564デフォルトの名無しさん :02/05/16 00:26
>>563
紛らわしい去り方はヤメレ。556と勘違いしたよ。
>>564
紛らわしかーねーだろ。
名前532にしてるし。
566503:02/05/16 00:29
>まとれす
サンキュー。WINSOCK使う予定だからどうやら送信受信バイト数得れそうです。
567即レス:02/05/16 01:04
>>563
今更だけど、WINUSER.hね。
VC++入れてないとインストールされないので注意。
568563:02/05/16 01:56
>>567
あの書き込みから20秒後ぐらいにそれに気づきました。
が、VC++6Proあったのでセーフ。
ていうかそれわからんかったからSpy++とかいうやつで調べたんだけど。
別に変わりないよな・・・?あれでも
メッセージの表示→詳細って見ればそのイベントの奴が&0foみたいに見れた。
569535:02/05/16 07:40
560さんサンクスです。
570535:02/05/16 07:57
>>まとれすさん
レスありがとうございます。

印刷は言われるとおり、Printerオブジェクトで
やれるとわかりましたが
それとは別にCSV形式で出力するための
PGを書かなければいけないと思うのです。

違ったらごめんなさい
571デフォルトの名無しさん:02/05/16 11:43
色々調べてもどうしてもしっくりいかないので教えてください。

いま、VB4.0からVB6.0(or .NET)へのコンバートを考えています。
そこで、絶対にやってはいけないこと、明らかに気をつけたほうがよいこと、
末端の利用者へ配布するのは6.0のランタイムだけでよいか、
その場合4.0のランタイムは捨てたほうがよいか、等々。

おしえていただけませんか?
572535:02/05/16 12:02
無事出来ました。
なんだかとても難しく考えていたみたいでした…。
573デフォルトの名無しさん:02/05/16 12:08
68 :参加するカモさん :01/12/11 17:29
ひろゆきってたまーに驚く程幼稚なセリフ真顔で吐くんだけど、いったいどういう
青春を送ってきたのだろう?
普通に成長を遂げた人間であれば赤面してしまうような恥ずかしいセリフ

82 :参加するカモさん :01/12/13 15:02
なんとなく言ってることわかる。
俺もひろゆきと何回か話したことあるけど、大昔のドラマでも見てるような気になった

95 :参加するカモさん :01/12/22 16:35
飲み会になると、必ず「遅刻」の話を得意気に語りだすけど、ひろゆきって遅刻することかっこいいと
思っているのかな?
回りの人間は苦笑するしかないけど、この人やっぱり幼稚だと思う
574デフォルトの名無しさん:02/05/16 12:11
>>571
VB6.0はサポートの打ち切りが決定しているので .NETにしましょう。
ランタイムは.NET Frame WorkでOKです。
問題はコンバートですが、長くなるのでレスを分けます。
>571

 ドトネトへは、コンバートというより新規開発みたいなイメージになるんじゃないかな。
 ZDNNなんかでも、ヘタにコンバートするよか作り直す方が早いってあったよ。
576ななし:02/05/16 12:49
>>540

>CSV

バージョン管理ツールのことでしょ?(違
577574:02/05/16 12:53
>>571
VB6.0は文字列がUnicode(常に16bit)なので、結構コンバートはうざいよ。
この際 .Netで作り直してヒーローになろうぜぃ。
578初心者質問ですいません:02/05/16 13:15
みなさん、こんにちは

ピクチャーボックスにAPIを使い(CreateFont)フォントを描画したのですが、
.PrintFormで印刷かけると、フォントがギザギザに印刷されてしまいます。
画面ではきれいに見えているのですが・・・

こういう場合、どうすれば良いのでしょうか

均等割付・長体などを書体として使っているので、
ピクチャーボックスに描画するしか方法がないのです

VB6.0/Windows200Pro
579即レス:02/05/16 13:29
>>578
API使ってるんならPrinter.hDCに出力すれ。
580デフォルトの名無しさん:02/05/16 13:51
フレキシブルグリッドコントロールを複数選択できなくするには、
どうしたらいいんですか?
581578:02/05/16 13:58
>>579 即レスさん、ありがとうございます

Printer.hDCって初めて聞くので、ぐーぐるで調べてみたのですが、
理解できませんでした・・・ 初心者ですいません

フォームにいくつもピクチャーボックスを貼っているので、
フォームをそのまま印刷したいのですが、
Printer.hDCを使う場合は、どうすればよいのでしょうか?

m(__)m 何度もすいません
582デフォルトの名無しさん:02/05/16 14:01
>>580
私はコードで書きました。
選択行数が1行以上だったら、選択範囲を1行にするように
マウスアップとキーダウン(アップ?)関係のイベントに書きました

うろ覚えですいません
583貧乏プログラマ:02/05/16 14:11
VS-FlexGrid Pro 7.0J を使ってる方います?
コレ使いたいんですけど、個人で買うにはちと高過ぎて・・・。
VB6 おまけの MS-FlexGrid だと役立たないし・・・。
いらなくなった人がいたら、安く譲ってくれませんかね〜?
スレ違いだったかな?すんません。
584580:02/05/16 14:12
やっぱり、プロパティとかでできないんですね、
キーダウン?イベントとかでやってみます。

ありがとうございました。
585即レス:02/05/16 14:27
>>581
普通Printerオブジェクトを使う場合は
PrintやらLineやらPaintPictureやらで
描画してNextPageやEndDocで印刷するでしょ?

BitBltやStrechBltのhDCをPrinter.hDCにすれば
プリンタに描画できる、ってこと。あとは上と同じで
NextPageやEndDocで印刷。

で、質問の答えだけどPrintFormを使うなら
ギザギザを修正する方法は無いよ。

っつーわけで、あきらめるか自前でプリンタに描画すれ。

>>583
ヤフオクとか・・・であるかな?・・・無いか。
つかそれって譲渡できたっけ?
586即レス:02/05/16 14:35
追記。

>Printer.hDCって初めて聞くので、ぐーぐるで調べてみたのですが、

こういうのはMSDNで調べたほうがいいぞ。
MSDNは読みにくいが初歩的なことは詳しく書いてあるので
分かりやすい。ネットは断片的なことが多いからね。
ぐーぐるをぐーるぐーるくぐーる
588貧乏プログラマ:02/05/16 14:42
>>585
オークションやWinM○とかでも調べたんですけど、
コントロールってマイナーだし全然ないんですよねー。
譲渡は・・・どうなんだろ?
589即レス:02/05/16 14:56
>>588
こんなのハケーン!
http://www.wise.co.jp/software/download/orderform/files/doc/PhotoManager%E6%B3%A8%E6%96%87%E7%94%A8%E7%B4%99.doc

第3条 禁止事項
 お客様が、以下の行為を行うことを禁止いたします。
◎1.本製品及び本製品の複製の、譲渡、販売、転貸。
 2.本ソフトウェアのプログラムコードの改変あるいはリバースエンジニアリング。
 3.本契約に反する本製品の複製及び使用。

( ´д`)

素直に買ったら?
590即レス:02/05/16 15:03
ごめん。こっちの間違い。
http://www.grapecity.com/japan/support/powertools_license.htm
の、VS-FlexGrid Pro 7.0J

内容は一緒。
591名無し募集中。。。:02/05/16 15:08
>>583
6.0J ならあるがどうする?
592貧乏プログラマ:02/05/16 15:20
>>590
やっぱり素直に買わないと駄目なのかなー。
でも今買うのもね・・・。7月に.Net用のが出るみたいだし。
でも.Net用には、きっとActiveXのは含まれてないだろうから、
う〜ん悩む。

>>591
6.0J は配布するのに関連DLLを含める必要があるんですよね?
7.0J のLight版を使いたいなと思ってるもので。
593:02/05/16 15:28
前にも指定座標の色を取得したい、と
質問していた厨ですが、今度は画面外の色を取得したいのですが。
どういうことかというと、たとえばウィンドウが
画面から出ていても、出ている部分の色を取得したいと
いうことです。これはできるのでしょうか・・・
594名無し募集中。。。:02/05/16 15:50
>>593

Private Declare Function GetDC Lib "USER32" (ByVal hWnd As Long) As Long
Private Declare Function ReleaseDC Lib "USER32" (ByVal hWnd As Long, ByVal hDC As Long) As Long
Private Declare Function GetPixel Lib "gdi32" (ByVal hDC As Long, ByVal nXPos As Long, ByVal nYPos As Long) As Long

Private Sub Command1_Click()

Dim lngDC As Long

lngDC = GetDC(0)
MsgBox Hex(GetPixel(lngDC, 100, 100))
ReleaseDC 0, lngDC

End Sub
595デフォルトの名無しさん:02/05/16 15:58
>>592
使ったことないんで知らんが Light 版ってのは
「メモリを最小限に抑える」だけなんじゃないの
http://www.grapecity.com/japan/support/database/P1_88.htm#新機能 (全製品)
596594:02/05/16 16:11
>>593
スマソ 多分違ったな
画面外の色っつーとこしか見てなかった
逝ってくる
597_:02/05/16 17:42
Lightじゃないけど仕事でVS-FlexGrid使ってるけどそんなに良い物でもないと思う。
MS-FlexGridと使い勝手は大差ないし十分代用出来るし。
むしろアプリが重くなって開発PCが不安定になるから個人的にはお勧めしないです。
BOC製品のコントロール張り付けただけで画面表示が遅くなる罠。
598デフォルトの名無しさん:02/05/16 17:45
>597
でもBOCのSPREADは名作コントロールと思う
多機能な分だけバグも多いけどね
599即レス:02/05/16 18:17
>593
ちょっと文章が分かりにくいけど
自分以外のアプリのデスクトップ外、
ということなら無理。
600貧乏プログラマ:02/05/16 20:37
>>595
Light版ってそうなのかな?今度試用版をDLして、ヘルプをチェックしてみます。

>>597 >>598
VS-FlexGridは、V2.0とV3.0を持ってて昔使ってたんです。(その頃は今ほど高くなかった)
それで中々良いコントロールだと思ったんだけど・・・。
サブセットのMS-FlexGridは、機能的にはたぶんV2.0相当じゃないですか?
残念ながら使いたい機能(セルのグラフ表示とか)がないんですよー。
SPREADは試用版を試した事ありますが、自分的にはVS-Flexの方を
気に入りました。

とういう訳で、VS-FlexGrid Pro 7.0Jを使わなくなった方がいましたら、
よろしくお願いします _(._.)_
labelのcaptionに値を入れると、
ちらつくのですが、簡単な回避方法はありますか?
>>601
そんなにチラつくか?
ものすごい勢いで変更しまくったらそりゃちらつくだろうけど。
非表示にしてから値入れて、また表示させなおせば
マシになる、、、かも。
>>602
>非表示にしてから
ちらつきの元
うーん、あとはリーブ21をつかうしかないかな〜
>>602
うぃ。ものすごい勢いで変更しまくりますのです。
>画面から出ていても、出ている部分の色を取得したいと
>いうことです。これはできるのでしょうか・・・
WINDOWのことだよね?
なんにしてもウインドウハンjが取得できれば何とかなるよ。
TEXTOUTつかったら?
>>605
Timerと組み合わせて、表示を端折る。
GetTickCountかなにかで時間を計り、10msとか経過していない場合は
表示しないでおいて、Timer=Enabledにしてあとで表示、とかなんとか。
609デフォルトの名無しさん:02/05/17 00:35
色取得したいって言ってた人。こんなのなの?
自分も作ってみたかったので(・∀・)ツクーテミマシタ!
Option Explicit
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long
Private Declare Function ScreenToClient Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
Private Type POINTAPI
x As Long
y As Long
End Type

Private Sub Form_Load()
Timer1.Interval = 100
End Sub

Private Sub Timer1_Timer()
Dim lnghWnd As Long, lnghDC As Long
Dim rctPoint As POINTAPI, lngColor As Long
Call GetCursorPos(rctPoint)
lnghWnd = WindowFromPoint(rctPoint.x, rctPoint.y)
Call ScreenToClient(lnghWnd, rctPoint)
lnghDC = GetDC(lnghWnd)
lngColor = GetPixel(lnghDC, rctPoint.x, rctPoint.y)
Me.Caption = "R:" & (&HFF And lngColor) & "G:" & ((&HFF00& And lngColor) \ 256) & _
"B:" & ((&HFF0000 And lngColor) \ 65536)
Call ReleaseDC(lnghWnd, lnghDC)
End Sub
610糞レス ◆MSW.t6RU :02/05/17 00:59
>>609
ワルイけど
2ちゃんからコードコピペしたくないな
ブビクラだったり
コード見ろって?
他人のものは面倒なんだよね(´Д`;)
611デフォルトの名無しさん:02/05/17 01:39
VBでVCの作ったDLLを参照したいです。

VC側
int hoge(int,int,char*)

なんですが、VB側でどう宣言したらいいのでしょう?
612即レス:02/05/17 01:51
>>611
public declare function hoge lib "hoge.dll" (byval arg1 as long,byval arg2 as long,byval argstr as string) as long
613まとれす ◆mato/KTI :02/05/17 01:53
>>611
__stdcallじゃないと、IDE環境から呼び出せないという罠。
このトリップヤル
VB6/hGDY : #bサkxdJen
なんかHだろ?(藁
615デフォルトの名無しさん:02/05/17 04:53
Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

と宣言しておいて、第四引数に

Public Address As String

の Address を与えるとVBごと落ちます。SP6です。

Public Address As String * 64

だと平気です。こういうものでしょうか?
616まとれす ◆mato/KTI :02/05/17 04:56
>>615
それは、初期化してないからだ。固定長文字列は、宣言時に初期化されるが、可変長
文字列は、明示的に初期化してやらんといかん。

ということで、API呼び出しの前に、Address = Space(256)とかしてみろ
617615:02/05/17 05:05
>>616 こんな朝早くリアルタイムで感激です。
まとれすさんのスタンスは超クールです。
これからもがんばってください。

とさておき、Address = Space(256) とかすると
結局固定長と同じっぽいので、固定長で Trim で空白処理することにします。
ありがとうございました。
618615:02/05/17 05:35
すみません、追加質問です。>>615 の例で、
Trim(Address) をしても空白が削られません。全然削られません。
APIを通すと変数の管理方法が変わってしまうからでしょうか?
>>618
Trimは空白文字しか削らない。&h00は空白文字とは見なされないみたい。
だから、Replace(Address,vbNullChar,"")とするか、ゴミが怖いなら
n = Instr(Address,vbNullChar)
If n = 0 Then n = len(Address)+1
strHoge = Left$(Address,n-1)
こんな感じで地道にやるしかない。
620618:02/05/17 10:02
>>619 ありがとうございました。こんなんC知らないとわからないですよね。
みんなだうしてるんだろう。

とりあえず、Replace(Address,vbNullChar,""):Address=Trim(Address)
で切り抜けます。
621デフォルトの名無しさん:02/05/17 10:07
メニューで、mnuFileState.Checked = True のチェックマークではなく、
丸い選択されたしるしはひょうじできますか?
622即レス:02/05/17 11:53
>>621
GetMenu,GetSubMenuでメニューハンドル取得して
SetMenuItemBitmapで変更。

サンプルはこちら。
http://homepage1.nifty.com/MADIA/vb/API/SetMenuItemBitmaps.htm
623621:02/05/17 11:56
>>622 ありがとうございました。

うへえ、Bitmap使うんですね。チェックマークでがまんしときます。。。
漏れが使ってるコードよかったら使ってくれ>>618
Function NullCut(lpstr As String) As String
lpstr = lpstr & vbNullChar
NullCut = Left$(lpstr, InStr(lpstr, vbNullChar) - 1)
End Function
625618:02/05/17 17:53
>>624 ありがとうございます!みんなで幸せになれますね。
626デフォルトの名無しさん:02/05/17 21:54
初心者ではないのですが、このスレがいちばん活気付いているので
質問させていただきます。

当方VisualStudio6.0使ってます。
標準モジュールにてきちんと定義済みの
グローバル列挙型変数があるんですが、
何回かデバッグ実行しているうちに
「この変数は定義されていません」っていうエラーがでます。
(ちなみにOption Explicit使ってます。)
VBを一旦落として再度起動するとそのエラーは出なくなるのですが、
デバッグ実行してるとそのうち出ます…

…誰か同じ悩み持ってる人&解決策あったらおながいします!
>>626
使用言語書かない時点でPC初心者板にいるアフォと大して変わらん。
>>627
> 標準モジュール
> (ちなみにOption Explicit使ってます。)
> VBを一旦落として再度起動するとそのエラーは出なくなるのですが、
お前がアフォと突っ込まれたいのか ?
629626:02/05/17 22:31
>627>628
すみません、VBスレだから書かなくていいかと思って…
使用言語はVBです。
630即レス:02/05/17 22:33
>>626
API系など、メモリに関する処理をしてるならそこをチェック。
アドインを使ってるならそっちをチェック。
何も使ってないなら・・・聞いたこと無いな。

>このスレがいちばん活気付いているので

そおかあ?
631即レス:02/05/17 22:37
追記。

どうしても無理なら再インスコすれ。
それでも無理ならMSに報告してもいいと思うぞ。
>>626
とりあえず、サービスパックはちゃんと当ててる ?
633デフォルトの名無しさん:02/05/17 22:56
いくつはいるか分からない配列を用意したいんですが、
どんな手があるでしょうか。
MSDN見ると
Dim a() as String
とかってやって、必要な数が分かったところで
ReDim a(必要な数) as String
ってやれって書いてありますけど、必要な数ってのが分からないのです。
動的にどんどん増えていくもので。
最初から
Dim a(ものすごい数) as String
ってやるしかないでしょうか?
634即レス:02/05/17 23:02
>>633
dim lng() as long
redim lng(0)

for i=0 to 10
redim preserve lng(i)
lng(i)=i
next i

とかな。
635デフォルトの名無しさん:02/05/17 23:03
>>633
Dim a() As String ってやって、
Redim a(0) とかして初期化して、
Redim Preserve a(必要な数) とすればok。

ただし、Redim Preserveを1個ずつ10000個までとかやると
スタック食い尽くして落ちることあるからやらないように。
636デフォルトの名無しさん:02/05/17 23:04
>>633
必要に応じてそのつど増やしていけばいい。
 Cnt = Cnt + 1
 Redim Preserve a(Cnt) As String

+100でもいい。
>>633
> 動的にどんどん増えていくもので。
増えた時点で、ReDim すればいいだけ。値が壊れたら困る場合は、
Preserve キーワードが必要。
638デフォルトの名無しさん:02/05/17 23:06
列挙型とユーザー定義型の違いって?
639デフォルトの名無しさん:02/05/17 23:06
おいおい、集団結婚か?w
未だかつて見たことのない勢いでケコーンしてるぞw
なんだおまえらw
640デフォルトの名無しさん:02/05/17 23:08
>>639
んなこといちいち突っ込むなって。
>>639
> なんだおまえらw
お前こそなんだよ。誤爆か ?
642即レス:02/05/17 23:10
>>638
全然違うぞ。enumとtypeでMSDN引いてみれ。

>>639
まったくだw
643633:02/05/17 23:12
>>634-637
なるほど。
Redim Preserveですか。
やってみます。
ありがとうございました。
644まとれす ◆mato/KTI :02/05/17 23:12
>>633
ReDimを使うやり方が紹介されているが、このメモリ確保には、かなりのコスト
がかかる。というわけで、ある程度まとめてやったほうがいいな

>>638
列挙型は、長整数。で、そのうちのどれかを使う。たとえば、↓みたいな感じだ。

Enum WeekDay
  Sunday
  Monday
   ・
   ・
End Enum

ユーザー定義型はひとつの「型」の中に複数の変数をまとめて持つことができる。
この変数のことを、「メンバ」という。

Type Human
  Age As Integer
  Name As String
End Type

というような感じだな
良いクラス無いの?VBって。
DelphiならTListととか使えるけど。
VB.NETになればC#のライブラリ借りれるから
そっち使え。
>>644
> ReDimを使うやり方が紹介されているが、このメモリ確保には、
> かなりのコストがかかる。というわけで、ある程度まとめて
> やったほうがいいな

何ですぐこういうこと言う奴いるんだろうな...。どれくらいコストが
かかるから測定してから言ったらどうよ。
648デフォルトの名無しさん:02/05/17 23:24
>>644

Enum aa
  abc
  def
  ghi
End Enum

aa.abc = 76

これで、コンパイルエラーエラー: 定数には値を代入できません。 が出ました。

もしかしたら、列挙型って言うのは、定数の列挙ってことですか?
>>648
お前基礎からやり直し。少なくとも >>642
> 全然違うぞ。enumとtypeでMSDN引いてみれ。
を実行してから出直してこいや。
650集団結婚組:02/05/17 23:28
>>648
そのもしかする。
Enumは開発時に入力候補を出せるのが便利っていうだけ、  だと思う。
651626:02/05/17 23:28
>即レスさん
アドインは使ってませんが、
APIはかなり使ってるので、調べてみます!
最悪は再インストールかMSサポートセンターへ連絡かぁ…(鬱

>そおかあ?
この板のVB系のスレを検索したら…です。
質問に丁寧にレスしてくれるのも(・∀・)イイ!

>632 SP5まで、出たら即あててました…

回答ありがとうございました。来週からまたがんがります。

あと、似たような現象ですが、
コーディング中にユーザ定義型変数のパラメータヒントが
出てこなくなる時がありますね。定義へのジャンプも不能に…
まぁこの辺の機能はなくてもいいのでアレですが
652デフォルトの名無しさん:02/05/17 23:33
>>649
ん?
お前基礎からやり直し。って…。
定数値の列挙でないの?
>>647
測定はしてないが、実感はしてるよ。
ReDimすると新しいメモリ領域が確保される。
ReDim Preserveすると、新しいメモリ領域を確保したうえに、メモリコピー
が行われてる。
だから、

Do While Not EOF(#1)
  Line Input #1,strHoge
  i = Ubound(astrHoge) + 1
  ReDim Preserve astrHoge(i)
  astrHoge(i) = strHoge
Loop
のようなコードは非常に効率が悪い。
なので、たとえば

i = -1
Do While Not EOF(#1)
  Line Input #1,strHoge
  i = i + 1
  If i > Ubound(astrHoge) Then
    ReDim Preserve astrHoge(i * 2 + 1)
  End If
  astrHoge(i) = strHoge
Loop
ReDim Preserve astrHoge(i)

こんなふうにする必要があったりする。
654即レス:02/05/17 23:36
>>647
せっかくなのでやってみた。
For文で10万回Redim実行。
Celeron800Mhz、メモリ384MB、WinXP

0-10万までインクリメント。
102ms

100万から追加。
5653ms

0だけで確保。
53ms

(参考)ループだけ。
3ms

--考察--
Redimのオーバーヘッドは確保しているメモリが
少ない時はほぼ無視できる程度である。

しかし大量のメモリを確保している時に追加する場合は
まとめてやった方がよい。

という結果になりますた。
655まとれす ◆mato/KTI :02/05/17 23:37
>>645
クラスライブラリって意味なら、ない

>>646
別に、C#のライブラリというわけじゃない。共通のものだ

>>647
で、お前は横から口を出すだけか? 文句があるなら、お前が出せ。
こんなのは、状況しだいで変わることだ。

>>647
そういうことだ

>>650
.NETになると、Enumの名称が取得できたりするんで、少しだけできることが
広がるぞ

>>651
そんなことになった記憶がないな。少なくとも、再起動すれば直るぞ
>>638
列挙型定数の使い道
VBの列挙型とはLong型の定数をグループに定義したものだ
Enum Chu
VB = 1
JScript = 5
VBScript = 9
Delphi =99
End Enum
と定義しておくと
Dim Language As Chu
とやれば、VBのコードエディタはこのChuのメンバーの中の定数を列挙してくれる
この中から選べと言う事だ、
ただし、実際はLong型であるから
実際はLanguageはLong型であることは変わらない
Dim Language As Longでも同じである
ただ、列挙型を定義しておけば、取りうる値を示す事ができる、まあ目安だ
あくまで文字どうり列挙なので強制はない
つまりLanguage=-1 と列挙されていないLong型数値を入れることも当然できる
外部にPublicでメンバーを公開した時に(例えばプロパティ)使うと便利だ

開発者向け





657即レス:02/05/17 23:38
>>653
またケコーン

>>651
Shift+F2が効かない時はたまにあるかも。
あんま覚えてないけど。
>>642,644,650,656
ありがとうございました。
なんか使えそうな構文ですね。これ。
>>656
おっと忘れた
続き
列挙型が便利なのは
組み合わせフラグに使える
実際、VBでもDirectX関係はバリバリにある

>>659
あぁ!Msgbox の第二引数に列挙型が使われてますね!
どうやって候補を自動的に表示してるんだろう?と思ってましたよ。
>>660
よかったね(笑
ActiveXとかクラスを自分で作って公開してやるようになれば
使うようになるかもねー ジャネー
なんかReDimばっかでてきてるけど、
なんでだれもCollectionやDictionaryをださんのだ?
663647:02/05/18 00:14
>>654
そう、まずは測定することからだよね。10万ぐらいから加速度的に遅く
なる。そう言うことも知らずに...
> こんなのは、状況しだいで変わることだ。
と言っている >>655 は、VB 厨だね。
>>626
それ、ときどきあるぞ。
ConstだったかEnumだったかの変数定義が見つかんなくなるみたいだ。
定義場所を切り取り、元に戻すなんかやってもなおるはず。
ときどき、むかつくが俺のとこではたいして発生していないので適当に気にしてない。
665即レス:02/05/18 00:20
>>663
てか、こんなことは普段使ってる奴ならみんな知ってる。
俺はただ念のためにやっただけ。

>VB 厨だね。

違うと思うぞ。
666糞レス ◆kuso.GD6 :02/05/18 00:49

もめてるのか?
667まとれす ◆mato/KTI :02/05/18 00:56
>>662
いいんだが、遅いしな・・・

>>663
状況しだいで変わるぞ。大きな構造体の配列をReDimしていってみろ。10万のオーダーに
なるまでに遅くて使い物にならなくなる。

そういう前提や、ReDim前に配列の要素数がわかるのか、といったことも含めて、「状況しだい」
なんだよ

人を罵るのはいいが、お前の言う「VB厨」より知識のないお前は、いったい何なんだ?

>>665
ありがとう。「VB厨」ってレッテルはよく見かけるが、言ってるやつがVBをきちんと理解している
とは思えんな
668662:02/05/18 01:31
>>667
まぁ確かに遅いには遅いんだが、意外と遅くなかったりもする。
万のオーダーを超えたあたりからReDimの場合と速度が逆転することもあるし、
使い勝手が良いから下手にReDimでごちゃごちゃするより楽だけどな。

>>645
DelphiのTListとかの代わりがCollectionやDictionaryだ。
669デフォルトの名無しさん:02/05/18 01:34
>状況しだいで変わるぞ。
VBがクソといわれる所以はここにある
>>669
お前バカか? いやバカだ。
状況しだいで変わるのはどの言語でも同じだろうが。
「状況しだいで」
VB厨がこの意味を取り違えてるに100ペリカ
>>671
どこがどう違うのかちゃんと説明してみろや。
バカにつける薬はありません。
674673:02/05/18 01:56
675即レス:02/05/18 01:56
いきなりだけどフォーカスを取得しないウィンドウって
どうやって作るんだっけ?
676糞レス ◆VB6.V49. :02/05/18 01:57
ヤハーリ、もめてんじゃん
それじゃ
フサギコに付け込まれるぞ
>675
Enabled=false が一番確実。
678即レス:02/05/18 02:11
>>677
いや、ユーザーからは操作可能で。
というよりフォーカスを取得しない以外は普通の
ウィンドウにしたいのだ。

9x系でも可能な方法無いかな?
679まとれす ◆mato/KTI :02/05/18 02:11
>>675
WM_ACTIVATE を処理する、ってのを昔作ったことがあるな。
680即レス:02/05/18 02:23
>>679
むう。やはりそう来たか。
極力使いたくなかったんだけどなあ。

ありがと。
676もサンクスコ。
681デフォルトの名無しさん:02/05/18 06:15
Dim a() as String とやって、
100個必要になったら、
ReDim a(100) as string とやる。
そんな感じでやる。
単にReDimだけでは変数の中身が元に戻ってしまう(""になる)ので
そうしたくない場合は ReDim Preserve a(100) as string とやる。
682デフォルトの名無しさん:02/05/18 07:19
背景を透明にしたいビットマップ画像があります。
透明にしたいところは&HFF00FFにしてあります。

で、このビットマップをフォームで「平らなところ」に張りたいのですけど、
適当なコントロールが見つかりません。

Picture と Image はマスクプロパティがありません。
Command Button にはありますが、でっぱてます。

いったいどうすりゃいいのでしょうか。
>>667
> ReDim前に配列の要素数がわかるのか
わからんかったらどうやって ReDim すんの ?

まあ、必死なのはわかったから、ちょっと落ち着いたらどうよ。ププ。
>>683
> わからんかったらどうやって ReDim すんの ?

配列をセットする前に配列の総数が分からない
というのが今回の前提だったと思うけどなぁ。
それがわかっていれば
> > ReDim前に配列の要素数がわかるのか
という発言がReDimを行うときに入れる要素数がわからない
という意味じゃないと分かるんじゃ?(というかあんた分かってるでしょ?)

嫌味臭い発言はやめようよ。
>>682
ビットマップじゃなくてGIFとかTIFFとかにするってのはどうなの?
>>683
漏れが書いた>>653のサンプル見てくれYo!
最終的な要素数はわからないだろ?
それとも何が書いてあるか理解できないかい?
ま、粘着はコレを最後に放置することにする。

>>685
LoadImageで透過GIFを読み込むと透過するよね、たしか。
GIFを使うのはライセンス問題を含めてちょっと嫌な感じなのだけど。

それ以外の方法としては、白黒マスク画像を用意して、bitbltして重ねるとか。
MaskColorみたいな簡単な方法は無かった気がする。
687デフォルトの名無しさん:02/05/18 12:50
>>683
例えば、テキストエディタ。
書かれた内容の分だけしかメモリを使いたくないというのが、技術者魂。
まぁ、VBだと勝手にメモリの無駄使いをしてくれちゃうけど、
なるべく節約してる気分になろうという事で・・・
688デフォルトの名無しさん:02/05/18 12:52
VB でポリモーフィズムを実現するにはどうすればいいんですか。
689>688:02/05/18 12:57
1.空のクラスファイル:実装が空という意味(a.cls)作成
2.1のモジュールを実装するクラスファイルを作成(implements a.cls)

おわり
690デフォルトの名無しさん:02/05/18 13:04
>>689

それって Visual Basic 6 でも可能ですか?
691おやぢ:02/05/18 13:54
スレ立てたら相手にされなかったので書きこみます。みなさん教えてください。
とかいっても煽られるんだろな。

mdbをAccess2000で変換し、connection string をjet.oledb.3.51から4.0にかえて、activex
とか変えて、プログラムに結合しなおしたが処理が3.51に比べて
10倍以上かかるようになってしまった。そんなに4.0って遅いの。
ちなみに自分はAcess95をAccess2000にアップして使ってます。
ソースは以下のようですがとくに問題無いとおもうんだけど。
だれか教えてください。

Private Sub subTransCostDwn()
Dim SP(12)
filenum = FreeFile
Open gListpath & "\rxalltrncost.csv" For Input As #filenum

SQL = "delete * from TransCost "

ADO_Connection.Execute SQL, , adCmdText

Do Until EOF(filenum) = True
Input #filenum, d0, d1, d2, _
, SP(1), SP(2), SP(3), SP(4), SP(5), SP(6), SP(7), SP(8), SP(9), SP(10), SP(11), SP(12)

SQL = "select * from TransCost where dealyear = " & Format(wAcntYear)
SQL = SQL & " and transcd = '" & d2 & "' and lensnm = '" & d4 & "'"

Set rs = New ADODB.Recordset
rs.Open SQL, ADO_Connection, adOpenStatic, adLockOptimistic

If rs.RecordCount = 0 Then
rs.AddNew
rs!dealyear = d1
rs!transCd = d2

End If

For i = 1 To 12
j = i + 3
If j > 12 Then
j = j - 12
End If
rs.Fields("shpqty" & Format(j)).Value = SP(i) + rs.Fields("shpqty" & Format(j)).Value

Next
rs.Update
rs.Close
Loop


Close #filenum


End Sub
>>691
jet.oledb.4.0って3.51に比べておそいの。
http://pc.2ch.net/test/read.cgi/tech/1021696894/l50

氏ね。
693デフォルトの名無しさん:02/05/18 14:05
http://storm.ug.to/
このSTORMっていうツールはどうやって使えばいいの?
694689:02/05/18 14:14
>それって Visual Basic 6 でも可能ですか?
なめてるのか?おまえVBで、って質問してるじゃねーか。
なんでおれがVBで出来ないことをお前に答えるんだよ。
2度と質問すんじゃねえ。キチガイが!

Q.バイクにのりたいんですけど?
A. 免許とればいい
Q.中学生なんですけど?

と似たようなもん。
>>694
今回の事例。

VBで〜→こうすればいいよ→VBでもですか?

アホ質問者の冗長が問題。


例え。

バイク→免許→中学生

後から答えを制限する事例を持ち出しているのが問題。


結局>>694はアフォ。
688=695
結局>>688はアフォ。
688≠695
だが、695はアフォっぽい。
698!=688,695:02/05/18 14:25
俺から見れば696みたいな事を書く奴もアフォ。
699688:02/05/18 14:25
お前等全員アフォだよ(w
氏ね
700デフォルトの名無しさん :02/05/18 14:28
アフォレスにレスするのは全てアフォだろ?
>>688
VB6で出来るよ。MSDNでimplementで検索してみ。
サンプルも確かあったはず。

>>698
わざわざ「!=688,695」と書くこともなかろーに(w
てか.NET用の答えかなと思い6でできるか聞いたんでは?
という解釈はダメ?
703701:02/05/18 14:35
.NETを触っている奴がポリモルフィズムの理解が無いとは思えんが?
>>703
それがVB厨と言うものです。
>>704
意味のない煽りやめろ。
>>705
お前らだってよくやってるじゃん。
なお、俺はJava厨だ。
被害妄想は怖いですねぇ。オーコワイコワイ
708即レス:02/05/18 15:24
>>682
Imageコントロール等もあるけどコントロールを
透過させるなら>686が一番かな。

ただ、透過しているとはいうものの、背景の
コントロールは見えない。単に透明部分を1色で
塗りつぶしてるだけなので。
どうしても完全に透過させたいならリージョン使っとき。

>>688
>689がすべてを物語ってる。

>>691
SP当てた?バリアントを使う理由は?
変換前と後で環境は変わってない?

全部違うなら知らん。
709仕様書無しさん:02/05/18 15:34
>>688
>689がすべてを物語ってる。
だからVB6でも可能か聞いてんだよ、クソ野郎!
710即レス:02/05/18 15:41
>>709
可能だよ。
VB5はポリモーフィズムできるんだっけ?
712即レス:02/05/18 15:55
>>711
出来るよ
713 :02/05/18 16:26
714デフォルトの名無しさん:02/05/18 16:51
VBでポリモーフィズムしたっていいことは無いだろ。

とりあえず、
C#やってる奴はVB.netもやれ。
VB.netやってる奴はC#もやれ。
どっちかしかできない奴は、おとなしくしとけ。
どっちもできない奴は、どっちかやれ。
>>714
それって、
「C#でポリモーフィズムしたっていいことは無いだろ。」
とも言い換えられるね。
>>714
滅びるのわかったる言語覚えるのも・・・。
717まとれす ◆mato/KTI :02/05/18 17:45
>>715
違うと思うぞ。VB6までは、インターフェイス継承しかできないという制限があるからな

>>716
じゃぁ、何の言語がいいんだ?
>>717
ポリモーフィズムするのに実装継承するのが必須なのかい?
VBでMIDIファイルはどうすれば再生できますか。
MCI
721まとれす ◆mato/KTI :02/05/18 19:25
>>718
必須というわけではないが、C#、VB.NETとVBの間で論じられているのなら、「インターフェイス
継承しかできない」点を無視するわけにはいかんと思うぞ

>>719
マルチメディアコントロール、DirectX、mciSendString APIのどれかだな
722デフォルトの名無しさん:02/05/18 19:31
>>574,575,577さん

質問者です。
激亀レスですが、ありがとうございます。
質問後倒れてしまいました。

やっぱり危険なにおいがします。
でもやらないといけないんだろうなぁ。
723デフォルトの名無しさん:02/05/18 19:41
>ポリモーフィズムするのに実装継承するのが必須なのかい?
ポリモーフィズムを前提としたライブラリーがつくれないだろうが。
(実装継承させるようなライブラリーね。意味わかるかな、これで)

だから、ポリモーフィズムをするのには実装継承は不要。
ポリモーフィズムを利用するには、実装継承が必要。
>>723
なんでポリモーフィズムを利用するのに実装継承が必要なんだよ。
おまえJavaのライブラリに汚染されてないか?
725デフォルトの名無しさん:02/05/18 20:46
ポリモーフィズムを前提としたライブラリーがつくれないだろうが。
>>725
ポリモーフィズムが出来るんだからポリモーフィズムを前提としたライブラリ作れるだろうが。
>>726
それ、フレームワークって言ったりしない?
728デフォルトの名無しさん:02/05/18 21:19
>おまえJavaのライブラリに汚染されてないか?
JavaのライブラリーってシンプルなOOのライブラリーだぞ。
あ、ブビ厨はOO知らないんだっけ?

>>728
同意。
MFCより見通しの良いフレームワーク(AWTとかね)だな。
独特の癖はあるが。
730デフォルトの名無しさん :02/05/18 21:23
>>728,779
729には同意。728は言ってることは正しいが人の話を聞かないアホ
731デフォルトの名無しさん:02/05/18 21:37
あ、ブビ厨はOO知らないんだっけ?
あるメソッドが成功するまで
そのメソッドを繰り返すコードはどう書けばいいですか?
733デフォルトの名無しさん:02/05/18 23:04
1変数のマイナス演算子と2変数の減法演算子との異なる点を挙げよ。
っていう問題を教えてください
>>733
氏ね。

>>732

while(func() != 成功コード);

あ、VBか・・・。
735732:02/05/18 23:12
>>734
あぃ。VB6+SP5です。
そういやぁ、On Error Resumeで繰り返せましたっけ?
試してみますです。
736732:02/05/18 23:20
Resumeステートメントでできそうな予感がしてきました!
>>736
そんなことせんでwhileで回しなされ。
738732:02/05/18 23:25
>>737
エラーが発生してストップしちゃうのです・・・。
返り値での判定不可なのです・・・。スマソ
>>738
いっそVB捨てる。
余命1年もないだろう。
740 :02/05/18 23:28
ファイルシステムオブジェクトは積極的に使うべきですか?
741即レス:02/05/18 23:30
>>733
c=-a
c=a-b
結果はやって見りゃ分かる。

>>732
エラーが出るメソッドはOnErrorで
トラップするしかないな。
別に言わんでも出来そうだがw
>>740
#1とかでアクセスするより遙かに良い。
743即レス:02/05/18 23:32
>>740
WSHが入ってるんなら使い倒すのもいいんでないかな。
俺嫌いだけど。
744740:02/05/18 23:43
>>742 >>743
素早い回答ありがとうございます。
良い、というのはどういう観点からでしょうか。
速度? ソースの見易さ? 記述の一貫性?
現場のソースは従来の open print# put dir$ を使っているのですが。
745即レス:02/05/18 23:47
>>744
FSOの良さ
・見やすい
・使いやすい
・機能が豊富

Dir、Openなどの良さ
・速い(少しだけ)
・WSHが無くても動く

ま、大まかなところ。
欠点は逆にしてくれ。
746740:02/05/18 23:53
>>745
なるほど。
せっかくあるのだから趣味でプログラミングする時はFSOを使うようにします。
ありがとうございました。
>>708
691ですが、解決しました。Access95で作ったdbをAcess2000で変換すると
処理速度が落ちるのを実験で確認しました。なぜかはわからぬが。
失礼しました。
748デフォルトの名無しさん:02/05/19 01:14
>>747
とりあえず最適化したらどうです?
>>745
目くそ鼻くそ
どんぐりの背比べ
巨大なファイル(たとえば50Mぐらいの大きさ)に
InStrBを使って15文字程度を検索すると(必ず一つだけ引っかかるとする)
どれぐらいの時間がかかりますか?
かなり時間がかかるんでしょうか?
それとも一瞬で検索できるものなんでしょうか?
似た体験した方とか答えられる方、教えてください。
質問の最初のレスはageよう。
ファイルの読み込み速度に依存すると思われ。(やったことはないが)
>>750
自分で試せ。
753即レス:02/05/19 11:23
>>750
読みこみ方にもよるが、一瞬では出来ない。
754デフォルトの名無しさん:02/05/19 14:16
String型変数に(例えばstrMoji)、どんどん文字を追加していくと、
サイズが大きくなるにつれ(?)遅くなっていくんですが、
これは対処可能ですか?
strMoji = strMoji & strTsuikaMoji
という感じです。
755即レス:02/05/19 14:18
>>754
まとめて追加すれ。驚くほど速くなるぞ。
まとめようにもまとめようがないというか…

うーん、最初に
Open "temp.dat" For Output As #1
てな感じにファイルを開いて置いて、文を追加した時に
Print 1, strTsuikaMoji;
とやり、参照したい時はクローズして再び開いて読み込むってやったら速くなりましが。
なんかこれだと恐ろしく無駄な事してるような気がします。
757即レス:02/05/19 14:37
>>756=>>754だよな?何か文章が繋がってない気がするが。

まとめて出来ないんだったら最初に必要分確保して
コピー、って方法もある。

>756でやってるのはコピー先がドライブのやり方。
扱うサイズが数十MBを超えるんなら考え方は間違ってない。

メモリでやるんならCopyMemoryとかStrPtrとか使う。
758まとれす ◆mato/KTI :02/05/19 16:11
>>754
最初に大きな文字列を確保しておいて、Midステートメントで追加(コピー)すれ
ファイル出入力のさいのFileNumberは#1とするよりも
FreeFile使った方がよさそうです。
>>754
どういう処理をしているのかが気になるな。
761デフォルトの名無しさん:02/05/19 18:48
moto(5)という配列と、tuika(2)という配列があったとして、

moto(0)="あ"
moto(1)="い"
moto(2)="う"

tuika(0)="え"
tuika(1)="お"

というふうになってたとき、
moto(3)とmoto(4)にtuika(0)とtuika(1)の値を追加したいんですが、
どのように書けばいいのでしょうか。
結果、
moto(0)="あ"
moto(1)="い"
moto(2)="う"
moto(3)="え"
moto(4)="お"
となると幸せです。

ループ回して一文字ずつ入れていくしかないですか?
VB6です。
moto(3)=tuika(0):moto(4)=tuika(1)
じゃだめなん???
String型の配列に一文字ずつ格納?
むむっ!
764デフォルトの名無しさん:02/05/19 19:07
>>761
いまいち何をしたいのか伝わりませんが。
今現在の質問内容ではループをまわすなりして代入してください
としか言いようがないです。
765即レス:02/05/19 19:07
>>761
配列1に配列2を追加する、ならこんな関数作ってみた。
Function AddArray(Str1() As String, Str2() As String, Optional SeparateChrCode As Byte = 0) As String()
Dim Separate As String
Separate = Chr(SeparateChrCode)
AddArray = Split(Join(Str1, Separate) & Separate & Join(Str2, Separate), Separate)
End Function

途中に追加(=変更)ならForで回すしかないな。
766761:02/05/19 19:20
>>762
例として2個しかない場合を示しただけで、
実際にはものすごい数処理したりする事になるかもしれんのです。

>>763
Stringなのはただスレ上で表現しやすいようにそうしただけで、
実際違うのです。

>>764-765
では素直にループ回して頑張ることにします。
767即レス:02/05/19 19:28
>>766
Long型とか、要素が固定長の配列なら配列確保してCopyMemoryとかも使える。
そこらへんのとこをちゃんと書かないと違った答えになるぞ。オレミタイニナ-
768デフォルトの名無しさん:02/05/19 19:36
>>766
>>765さんの関数は使えないの?膨大な数なのなら多分>>765
使えるような形にもっていけるような・・・・・。

それとも膨大な要素数の配列1をあらかじめ宣言しておいて
(もちろん要素数は分かってるんですよね?)配列2を代入しなくては
ならないの?
769761:02/05/19 19:42
すみません。
なんか最初出したのは頭の悪すぎる例だったみたいですね。
実際扱うのはByte配列です。
追加されるほうのByte配列はあらかじめ必要なぶんだけReDimしてあります。
例えば追加される方に100バイトまでしかデータが入ってなかったら、
101バイトから追加するほうのバイト配列の値をそっくり移したいのです。
>>761
うーん(謎
とりあえず>>765さんの関数では駄目な理由を教えてもらえます?
771まとれす ◆mato/KTI :02/05/19 20:07
>>770
>>765 のやり方だと、新しい配列を作っちゃうからだろ?

>>761
どうしても、ってことなら、>>766 にあるように、API を使うって手がないこともないが・・・
地道に入れていくほうが、プログラム的に確実だな

この辺、VB.NETだと便利なメソッドが使えるんだが
772即レス:02/05/19 20:11
>>769
こんなのになった。

Function AddByteArray(Byte1() As Byte, ByVal Byte1AddIndex As Long, Byte2() As Byte) As Long
Dim Byte2Size As Long
'Byte1AddIndexはByte1に追加する位置ね。戻り値=コピーしたバイト数

Byte2Size = UBound(Byte2) + 1
If UBound(Byte1) < Byte1AddIndex + Byte2Size Then Exit Function
CopyMemory VarPtr(Byte1(Byte1AddIndex)), VarPtr(Byte2(0)), Byte2Size
AddByteArray = Byte2Size
End Function

俺もVBの標準関数で出来るんならそっち使うけど。

>>770
Byte型だからってのもあるみたいね。
>>771
> >>765 のやり方だと、新しい配列を作っちゃうからだろ?

そんなのちょろっといじればすぐに解決するじゃん。
それが理由?????
>>769
Byte配列ならCopyMemory使えるから楽だよー。
手元に資料が無いからコード出せないけど、すごく簡単だ。
775761:02/05/19 20:28
自力でループ回して地道に追加する関数ができました。
上手いこと動きました。
でもCopyMemory版を>>772さんが用意してくれたので、
ちょっと試してみようかと思います。
そっちのほうがはやそうだし。
776まとれす ◆mato/KTI :02/05/19 21:09
>>773
ちょろっといじって解決するか?俺にはわからんかった
777デフォルトの名無しさん:02/05/19 22:02
ちょっと前にこのスレで外部Windowに・・・
ってのを質問していた者ですが、
現在どのWindowにフォーカスがあるのか、というのを
調べることはできるのでしょうか。
よろしければご教授おねがいします。
778777:02/05/19 22:02
あ、Windowの場合はフォーカスじゃなかったんでしたっけ?
どのWindowがアクティブになっているか、ってことです。
>>778
フォーカスを与えるとアクティブになる。
アクティブなウインドウにはフォーカスがある。
>>777
APIのGetForegroundWindowを見れ。
>>773>>776
Function AddArray(Str1() As String, Str2() As String, Optional SeparateChrCode As Byte = 0) As Long
Dim Separate As String
On Error GoTo errT
Separate = Chr(SeparateChrCode)
Str1 = Split(Join(Str1, Separate) & Separate & Join(Str2, Separate), Separate)
AddArray = UBound(Str2) + 1
Exit Function
errT:
End Function

こうかな?Str1は動的配列である必要があるけど。

>>777
GetForegroundWindowか、GetActiveWindow

>>775
がんばれ。

なおこのコードを実行した際に生ずる
いかなる責任も(略
782即レス:02/05/19 22:17
名前忘れた上にカブタヨ。
783777:02/05/19 22:24
APIビューワで見てみてわかりますた。
どうもでした。
784デフォルトの名無しさん:02/05/19 22:40
集合はつかえませんか?

pascalの、
if x in ['0'..'9','A'..'F','a'..'f'] then
のように、変数xが16進文字であるかどうか調べたいのです。
また、変数xが、0〜9の数字であるかどうか調べたいのです。
>>784
< >で文字コード比較すれば?
786デフォルトの名無しさん:02/05/19 22:45
>>785
あー、なるほど。
結構if文の条件式が長くなりますね。
パスカルのようにすっきり出来たらいいんですがね。(^^;
レスどうもです。
787デフォルトの名無しさん:02/05/19 23:08
>>786
Case "0" to "9", "A" to "F", "a" to "f"
788デフォルトの名無しさん:02/05/20 00:10
初心者的な内容ではないのですが・・
Win98+Access97がインストールされている環境にて
VB3+DAO2.0で
Dim g_dbMst as Database
にてコンパイルエラー(Out Of Memory)が発生します。
細かい情報は今会社ではないので覚えていないのですが
上記の環境のみでこのコンパイルエラーが発生する原因を
ご存知の方いらっしゃいませんか?
ちなみにDAO2.0がインストールされる前はコンパイルがとおりました。
>>788
変な所指した。
>>784
Like演算子を使うとか。
1文字ずつ切り出してInStr関数で"0123456789ABCDEFabcdef"の中を検索するとか。
あるいは、"&H"を頭に付けてから、CLng関数とか噛まして、On Errorでトラップするとか。
791デフォルトの名無しさん:02/05/20 13:20
VB6.0でFAXモデムを使い電話関連のプログラムをつくっています。
相手が電話に出たことを確認後自動で処理を行うようにしたいのですが、
相手が電話をとったこと(オンフック)を判定する方法がわからず困っています。

一応、MSCommでダイヤルを行ってポケベルを送信し、(オンフック関係ない)
電話を終了させるようなコードはできてるんですが・・・

よろしくおねがいします。
792_:02/05/20 15:34
VB6.0で他アプリのポップアップメニューを操作したいのですが、GetMenuでハンドルを取るにも子ウィンドウのポップアップなのでハンドルが取れません。
他アプリの子ウィンドウのポップアップメニューの項目数を取って、目当ての項目をクリックさせるにはどうしたらいいのでしょうか?
GetMenuでハンドルを取って、GetMenuItemCountでカウント取ろうとしましたけどダメでした。(結果-1が返る)
ハンドルが取れてないんだから当たり前ですけど・・・。
どなたかご存じの方、ご教授よろしくお願い致します。
793デフォルトの名無しさん:02/05/20 18:09
>>791
この前、電話取ったら、自動的に音声が流れるDMのような電話があったよ

うさんくさいし、犯罪の片棒を担ぐことになる可能性もあるので、
レスできないよ、自分一人でがんばれ。
794791:02/05/20 18:18
>>793
あー、動き的にはちょうどそんな感じです。
そのアプリだと犯罪の片棒ってかんじですね。
自分がつくろうとしてるのは、別アプリで機器の状態監視をして、その監視状態を
いろんな媒体で送信するっつーもんだったんですよ
メールとか、ポケベルとか、FAXとか他の媒体はできてるけど、どうにも電話だけが・・・

まぁ、もうすこし試行錯誤してみます。ありがとうございました。
795デフォルトの名無しさん:02/05/20 18:22
質問なのですが

繰り返しのアニメーションを作るプログラムを教えてください
796デフォルトの名無しさん:02/05/20 19:00
>>795
アニメーションの形式による。
GIFアニメーション。最強。
>>795
AVI貼れ。最強。
静止アニメーションにしろ。最強
800デフォルトの名無しさん:02/05/20 20:54
たしかに、AVIはっといたらだめなのか?
801デフォルトの名無しさん:02/05/20 22:17
6.0かnetどっちを買うべきなのか・・
6.0は6月に販売停止になります。(店頭では引き上げたところも多々)
803デフォルトの名無しさん:02/05/20 22:21
>>802
ぐはっ、マジですか
こりゃ買うべきなのかな・・近くの店に1つだけあったし
802
http://www.microsoft.com/japan/msdn/vs_previous/vstudio/vs6discon.htm
に出荷停止とありまが。
けど焦って選択を間違え・・・・。
805デフォルトの名無しさん:02/05/21 02:57
IEで履歴ボタンを押すと左側に履歴がでてきますよね。
左の履歴領域と右のWEB領域の間のラインを左右にドラッグすると
履歴領域の大きさを変更できますよね。
これと同じように領域変更させたいんですがどういう方法でやったらいいんでしょうか?
はぁ?
IE上?
VBのForm上?

Formで話す
PictureBoxがあるとする
その端っこにマウスが来たら カーソルをチェンジして、サイズ変更モードにする
(自分で変数でもスイッチにするという意味)
マウスが押されたまま、離されたところでサイズ決定
イベントの基本的マスターだな

ちなみにPictureBoxはAlignmenntプロパティだっけかな、左合わせとかにすれば
ピタリ IEの履歴とか、お気に入りフレームのような感じになるんだよね
基本すぎで 使ってないので忘れた(笑
今は亡きVB増強にサンプルがあったなぁ。
808デフォルトの名無しさん:02/05/21 03:14
>>805
VB6ならアプリケーションウィザードで
エクスプローラー風のスケル豚コードが作成できるよ
>>805
ツーか単なるframeタグのことダターリして
フレームじゃ怒るぞ(藁
Web製作板から漏れてきたのか?(´∀` )
812682:02/05/21 05:39
>>685 >>686 >>708 即レスさん ありがとうございました。

超悩んだんですけど、

ImageList(2).ListImages("NLN").Draw picState.hDC, , , imlTransparent

にしました。っていうか、こんな方法みんなどうやって知るんでしょうか?
813デフォルトの名無しさん:02/05/21 06:12
MSN メッセンジャー等ではツリーリストビューの背景に
画像を読み込んでるみたいなんですけど、VBでもできますか?
814山太郎:02/05/21 08:17
>805
スプリッタの事?だったら、これなんかどう?
ttp://hp.vector.co.jp/authors/VA014162/hitch/ActiveX2/activex2.htm
815g:02/05/21 11:53
VBで電卓を作りたいのですが、電卓に
@除算の余りを計算できる
Aべき乗を計算できる
B連続計算ができる
C数値を入力する時に誤った入力をすると警告を出して、入力できないようにする。
@〜Cまでの機能をつけたいのですが、まったくコードがわかりません。
教えてください。
816もきち ◆1bSaucJA :02/05/21 12:00
今VBでプログラム組んでるんですが
ネットなどに掲載されていたプログラムからパーツだけ引っこ抜いて一部つかったり
自分で組んだものと合わせて作っています。
VBとうい枠で作っている以上は機構が似たモノをつくっている以上プログラムの中身も
おのずと似てくると思うのですが、会社の上司は他人のプログラムの盗用じゃないか?
といってきます。(プログラムの事はなにもわかってない上司なのですが…)
 確かに一部たいへん効率が良いと思い取り入れたモノもありますが、私自身では盗用では
ないと思っています。
 他人のプログラムを一部変えただけで自分が作ったといって公開するのは盗用だとは
思いますが、(極端な例を除いては)今回は盗用にあたらないと思っています。
 ちなみに一部良いと思って使ったプログラムの部分は全体の3〜4%前後です。
 プログラムとはどれくらいの部分が重複していれば盗用などになるのでしょうか?
817デフォルトの名無しさん:02/05/21 12:08
>815
丸投げは(・A・)イクナイ
やるだけやってみて疑問点のみ聞け。
818即レス:02/05/21 12:25
>>792
基本的にお手軽な方法はない。
俺も教えて欲しいぐらい。

>>795
アニメーションの原理なら
アニメーション数分画像を用意して1つずつ転送、の繰り返し。

>>801
好きにすれ

>>804
ほんとだね。ただVB6.0自体のサポートはまだ続いてるし
EnterPriseはまだ売ってるみたいだからなあ。

>>812
参考書を読む数と経験ではないかな。

>>813
一応オーナードローで出来るけど。

>>815
1.MOD
2.^
3.4は817と同意

>>816
難しい問題だな。
商用アプリなら見た目が似てるだけでも
訴えられる可能性もあるし。

関数だけなら丸ごと使っても問題には
ならんだろうし。
819_:02/05/21 13:17
>>816
それを売りに出すから心配だと言うなら元の作者に断り入れれば済むと思われ。
異常なまでに著作権とかに五月蠅い作者で無い限り断り無しでも普通は問題無い。
内部で使うだけなら心配無用でしょ。
>>815
てか1と2は基礎中の基礎だろ。
821792:02/05/21 13:23
>>818
んー、やっぱり難しいんですか・・・。
ダメ元でもうしばらく格闘してみます。
レス有り難うございました。
822デフォルトの名無しさん:02/05/21 14:48
フォーカスを持たないフォームというのは作れますか?
ユーザーにはまったく操作させずデータ表示用にのみ使ってるフォームがあるんです。
フォーカスが来たらメインのフォームに移すように処理をしてるんで、
実質マトモに動いてはいるんですが、一瞬フォーカスが移るんで
ちょっぴり格好悪いです。
なんとかしたいです。
823即レス:02/05/21 14:55
>>822
>>675-678見れ。
Win2000以上なら拡張スタイルのWS_EX_NOACTIVATEが
使えるようだが。

#ちなみにPhotoShopも似たようなことしてるが
#あれはタイトルバー消して移動と描画を自前でやってるようだ。
824即レス:02/05/21 14:56
>>675-680ダタヨ
825 :02/05/21 15:05
APIに構造体を渡すときに、<StructLayout(LayoutKind.Sequential)>
を指定するのですけど、これって普通に考えたら特に必要無いと
思うのですが。(VBのときは付けてなかった)
逆につけておかないといけない場合というのがあるのでしょうか?

もちろん構造体のメンバのオフセットが思惑通りになっていると仮定して
ですけど。
826即レス:02/05/21 15:13
>>825
NETの話か?
NETでは構造体の並びが変更される可能性があるかららしいが。

#NETは使ったこと無いので知らんけど。
827 :02/05/21 15:33
>>826

>NETでは構造体の並びが変更される可能性があるかららしいが

マジですか。じゃあ必須じゃないですか、っていうか必須だったら
なんでわざわざアセンブリのオプションにするんだろう...
828 :02/05/21 16:13
PhotoshopをVBから起動して、アクションを動作させたいのです。
VB側からPhotoshopの起動はできますが、GetObjectで"実行時エラー
429" "ActiveXコンポーネントはオブジェクトを作成できません"
となり、インスタンスが作成できません。

フォトショップを起動した状態で、
Dim wobj As Object
Set wobj = GetObject(, "PhotoshopTypeLibrary.PhotoshopApplication")

フォトショップのバージョンは5.02か5.5です。
Web上ではEXCELやWORDの例はありますが、Photoshopはありません
でした。
どなたかできるかたお願いします。
829デフォルトの名無しさん:02/05/21 16:14
>>822
ツールウィンドウにするっていうのは?
830デフォルトの名無しさん:02/05/21 16:15
>>828
参照設定は確認した?
831828:02/05/21 16:25
>>830
ありがとうございます。
参照設定は、"Adobe Photoshop 5.0 Type Library"にチェックしてます。
832デフォルトの名無しさん:02/05/21 16:42
何行かあるテキストファイルの任意の行に文字列を1行追加したいが
Line Input で全部読んで Print で追加を含め書くって方法しか知らん
他にもっと合理的な処理があれば教えてくれ
833デフォルトの名無しさん:02/05/21 16:47
>>815
宿題を1から全部教えてもらうわけね
834デフォルトの名無しさん:02/05/21 17:57
昨日レポートの数値計算の問題のプログラムをWindowsMeのLSI-Cで
書いてたんですが、なんかそれまで動いてたコードが急に動かなくなって
再起動したらまた動くようになったんだけど、なんで?

ちなみに学校のLinuxでは普通に動いてました。
835デフォルトの名無しさん:02/05/21 17:59
>>834
誤爆しました。 すみません。無視してください。
836デフォルトの名無しさん:02/05/21 18:21
BASICの
・REM
・PRINT
・END
・INPUT
・LET
この五つのの意味を教えてください。
できればそこのURLを貼っていただくとありがたいです
837デフォルトの名無しさん:02/05/21 18:22
>>836
スレ違い。
ここはVisual Basic専用スレッド。
838 :02/05/21 18:27
Webを自動巡回して、
ひとつのサイト内のhtmlファイルを全てリスト表示させる
ようなものを作っています。
一応型はできていて、小さいサイトなら簡単に全部を取得できるのですが
ページ数が膨大となると、処理が遅くてやってられません。
どうにかして高速化したいのですがどうしたらいいでしょうか?
InetコントロールでOpenURLしてソースを取ってURLを辿る仕組みなのですが。
よろしければお願いします。
ちと質問が漠然としすぎてるよ。
>>838
光ファイバー引けよ
>>838
オーバークロックしてみて下さい
842デフォルトの名無しさん:02/05/21 20:55
>>836
よーし、VB初心者の俺がレスしちゃうぞー
15年ぐらい前のMSXの知識から(当時小学生)

・REM     ’と一緒
・PRINT    文字を表示する
・END     プログラムを終了
・INPUT    文字を入力待ち
・LET      なんだっけ?
843 :02/05/21 21:08
>>839-841
おめーらw
質問スレなんだから技術的に答えてやれ。ネタも面白くていいけど。

>>838
まずはOpenURLでなく、Executeでやれ。
前にもこの系統のスレで出ていた気がするが、
OpenURLは同期、Executeは非同期で処理できる。
そこらへんは検索すればいろいろサンプル出てくるだろう。
>>842
LET は代入文の最初につけるものです。
条件分岐文と分けるためでしょうかね?

すれ違いにつき、sage。
845842:02/05/21 21:31
>>844
なるほど、わかったような、わからないような
Dimみたいなもんかな?
あげてしまった、、、
847デフォルトの名無しさん:02/05/21 21:36
すまそ、
時間でプロセスを制御したいんですが
(9時に動かし、次に9時5分にという風に
どう書いたらいいですか?

よろしくおながいします
at コマンドか ntcron を使う。
でなきゃそういうサービスとして作る。
849デフォルトの名無しさん:02/05/21 22:00
>>847
GetTickCount を使う。
的外れならごめん。
850732:02/05/21 22:12
>>845
A=B

LET A=B

は一緒。
sage
851デフォルトの名無しさん:02/05/21 22:36
Seagate SoftwareのCrystalReports8.5Developer Editionについての質問です。

フォームにCrystal ActiveX Control (OCX)を貼り付けて、
印刷・プレビューができるアプリを作りました。
データソースはCrystalReports付属のCRXMLV36を使っています。

アプリはきちんと動くのですが、
CrystalReportsをインストールしているマシンでしか動作しません。

Runtime.hlpを読んだらいくつかのdllが再頒布可能なので
それを使ってインストーラを作りたいのですが、その方法が分かりません。

ocxはregsvr32.exeで登録して、普通のdllはWINNT\system32にコピーすれば
良いのだろうと思いますが、データソース周りがさっぱりです。(;´Д`)

どなたか分かる方、いませんか?
852デフォルトの名無しさん:02/05/21 22:57
クラス モジュールで定義されている関数の引数の型にユーザー定義型を使うにはどうしたらいいんですか?
>>852
クラスモジュールの関数がPrivateの場合
クラス内のPrivateユーザ定義型、もしくは標準モジュールのPublicユーザ定義が使える

クラスモジュールの関数がFriendの場合
クラス内のPrivateユーザ定義型、もしくは標準モジュールのPublicユーザ定義が使える

クラスモジュールの関数がPublicの場合
クラスモジュールをActiveXにして、クラスモジュールのPublicユーザ定義が使える
854即レス:02/05/21 23:29
>>828
クラスはあっても公開されてないケースもある。
adobeに問い合わせて見れ。

>>832
追加分(変更部分)だけ読み込んで
追加位置から書きこみ。
大して変わらんけど。

>>837
Basicスレってのは無いからねえ。
スレ立てるまでもない・・あたりか。

>>838
ネックになってる部分がよく分からん。
どこが遅いかチェックすれ。

>>847
Timerはいかんの?

>>851
Runtime.hlpに書いてない?
書いてないならメーカーに聞いた方が早い。
855デフォルトの名無しさん:02/05/21 23:30
>>847>>848
さんくすこ
ちょいとやってみます。
856805:02/05/21 23:30
>806
なんかうまく説明できなかったみたいですいません。
ピッタリ横並びした二つのコントロール(テキストボックスとリストビューとか)を
境目ドラッグでサイズ変更させたかったんです。
一度その方法でやってみます。

>808
そうだったんですか?
知りませんでした。
作成してスケルトンコードみてみます。

>814
今DLして見てみましたがまさにコレのこと言いたかったんです。
大変参考になりました。
助かります。

レス下さった方々ありがとうございます。
857853:02/05/21 23:33
>>853
適当に書いたからちょこっと間違っているかも。
ヒントということで、あとは頑張ってくれ。
ありがとうございました
と、お礼を言ってみるテスト
859デフォルトの名無しさん:02/05/22 05:00
>>852
俺も探したヨ!

ttp://www.int21.co.jp/pcdn/vb/noriolib/vbmag/9812/vb6/
↑の真ん中よりちょと上の所にサンプルコードがあるヨ
860832:02/05/22 08:36
>>854
スマソ
861デフォルトの名無しさん:02/05/22 12:04
>>853,859
ありがとうございます。
862828:02/05/22 12:21
>>854
ありがとやんす。adobeに問い合わせみます。でも
Dim wobj As Object
Set wobj = New PhotoshopTypeLibrary.PhotoshopApplication
でフォトショップの起動は出来るんです。クラスは公開されていると
言えない?
どこか回答してくれるようなスレとかも教えてください。行き詰まって
ます。
863即レス:02/05/22 13:16
>>862
PhotoShopのヘルプ見た?
一部抜粋
Photoshop では、Windows の OLE オートメーションや Macintosh の
AppleScript(TM) を使った外部オートメーションの一部がサポートされます。

何が公開されてて何が出来ないかはAdobeの文書を読むしかない。
AdobeのサイトにSDKかなんかがあるらしいが。(英語)

>どこか回答してくれるようなスレ
知らん
864828:02/05/22 13:30
>>863
それは見ました。で、出来ると思ったんです。
ありがとやんした。
865838:02/05/22 18:08
>>854
とりあえず>>843 のExecuteでやれっていうので
少しはわかってきました。
OpenURLで巨大なページを開かせていると、
その間は他の処理ができなくなってしまっていました。
これをどうやって高速化できるかな?と質問したのですが
やっぱ日本語下手なんでよくわからんかったんでしょう。すまんです。

ただ、今のところExecuteでやっても、情報の取得漏れが出る・・・
まぁ適当に試行錯誤してやってみようかな。

ありがとうございましたっ
866観鈴:02/05/22 21:00
こんばんは。お疲れ様です。

早速ですが教えてください。
スクロールバーでラベルをスクロールしたいのです。
どうか教えてください。切実です。
>>866
いってることがよくわからん
868デフォルトの名無しさん:02/05/22 21:16
AccessVBAしかやったことないんですが、VB触ってみました。
Accessのデータベースに接続して、ある列情報を取得してリストボックスに格納、
そこから一つずつデータを選択して別に用意したテキストボックスに入れて編集というのを
考えてやってみたのですが、VBのリストボックスって1列しか格納できないっぽくて断念中です。

リストボックスには、選択するべき項目(例えば「氏名」列)と非表示で一意のコードなんかを
格納して、コードを元にデータを取り出したいのですが、VBではどういう風に行うもんなのでしょうか。
おながいします。
869観鈴:02/05/22 21:18
>>867
label7.left = Hscroll1.value

などを使用してラベルをスクロールさせたいのですが
どうもうまくいかないのです。
870デフォルトの名無しさん:02/05/22 21:39
以下の記述の ファイルをEUC形式で書き出すにはどうしたらよいのでしょうか?


Dim fso, Mytextfile
Set fso = CreateObject("Scripting.FileSystemObject")

Set Mytextfile = fso.CreateTextFile("c:\age.txt", True)

Mytextfile.WriteLine("あいうえお")
Mytextfile.WriteLine("あいうえお")

MyFile.Close
871すー:02/05/22 22:00
だれか、マウスを1分間置きに自動で移動させるソース知っている人いませんかぁぁ
おしえてけれー
872デフォルトの名無しさん:02/05/22 22:03
>>871
タイマーじゃダメなんすか。
873すー:02/05/22 22:06
>>872
タイマーでもいいんだけど、マウスを上下に動かすソース
自体わからないんです。。。(泣)
だれかしってるひとおしえてーー
874観鈴:02/05/22 22:06
うーん、座標かいてmoveさせる、とか?
875デフォルトの名無しさん:02/05/22 22:08
API使ったらどうすか
>>869
Label1とHscroll1を置いて

Private Sub HScroll1_Change()
Label1.Left = HScroll1.Value
End Sub

これで動きますが・・・

それと、”どうもうまくいかない”というのでは解りません。
実際やってみてどうなったのか具体的に書いたほうがいいかと。
877デフォルトの名無しさん:02/05/22 22:13
Declare Function SetCursorPos& Lib "user32" (ByVal x As Long, ByVal _
y As Long)
878デフォルトの名無しさん:02/05/22 22:18
>>871
SetCursorPos でできる。
879デフォルトの名無しさん:02/05/22 22:19
コントロール配列に一気に値をぶち込むにはForループで回すしかないですか?
動的にLoadして増えていくコントロール配列の部品があるんですが、
フォームのリサイズ時に一緒にリサイズさせたいです。
そうすると、Form_Resize時に
For i=0 to コントロールの数
  コントロール名.Width = Frm_Main.ScaleWidth
Next i
みたいに書くしかないですか?
なんか一行でスマートにかっこよく見やすいステキコードの書き方ってないですか?
880すー:02/05/22 22:20
おしえてくれたみなさんありがとうございました!
頑張って作ってみます!
15回くらい[>]ボタンをクリックしたら
1ドットくらい右に移動するかもよw
882881:02/05/22 22:25
>869
883観鈴:02/05/22 22:28
>>876
お返事どうもです。
そのPGで確かに動きます。動きますが・・・。
ラベルのすべてを表示していないのにバーはMAXを迎えてしまいます。
うまくすべて表示するにはどういったことが必要でしょうか。
884879:02/05/22 22:30
すんません。
記述ミス。

For i=0 to コントロールの数
  コントロール名.Width = Frm_Main.ScaleWidth
Next i



For i=0 to コントロールの数
  コントロール名(i).Width = Frm_Main.ScaleWidth
Next i
885876:02/05/22 22:55
>>883
HScrollのMAXの値を大きくすればいいのでは?
あとは、FromのScaleModeを変えてみるとか。

どういうことを実現したいのかちとわからないが
画面左端からLabelをスクロールさせて全部表示させるだけなら

Form1.ScaleMode = 3
HScroll1.Max = Label1.Width
Label1.Left = - Label1.Width

としておいて

Private Sub HScroll1_Change()
Label1.Left = -Label1.Width + HScroll1.Value
End Sub

とりあえずこんな感じでいいと思うけど。
886デフォルトの名無しさん:02/05/22 22:58
>>868なんですが…DBに接続とかってスレ違いですか?
Accessスレ逝った方が良いのでしょうか。
887観鈴:02/05/22 23:09
>>885
ありがとうございます。早速やってみます。

>>886
ADOとかDAOでできますよん。
板違い・・・・ではないと思うのですが(。・_・。)ノ
888  :02/05/22 23:15
>>886
ListViewにしてみそ
889観鈴:02/05/22 23:41
>>885
折角PGまで書いてくださったのにすいません。
思うようにいきません。

普通にスクロールしたいだけなのですが・・・。
データが非常に横長いのでどうしても横にバーがいるのです。
リストボックスですと縦しかバーは出ないものですから・・・。

885さんのおっしゃるPGでは一度動かすと何も見えなくなって
しまう位に移動してしまいました …c(゚^ ゚ ;)ウーン
890デフォルトの名無しさん:02/05/23 00:20
バイナリファイルの操作なんですけど
「ABCDEF」という内容があったとすると(文字列だけどバイナリとして考えて)
ファイルを開いて3文字目、4文字目を消して「ABEF」という風に
くっつける事は出来ますか?
コレを巨大なファイルでやりたいんですけど。。。
>>889
> リストボックスですと縦しかバーは出ないものですから・・・。
>>888
892デフォルトの名無しさん:02/05/23 00:21
>>889
フォームより長いラベルがあって、それを全部見えるようにスクロールさせる、ということでしょうかね。

Dim lblLeft As Long

Form1.ScaleMode = 3
HScroll1.Max = Label1.Width + Label1.Left - Form1.ScaleWidth
lblLeft = Label1.Left

Private Sub HScroll1_Change()
Label1.Left = lblLeft - HScroll1.Value
End Sub

こんな感じでどうでしょうか?
893即レス:02/05/23 00:43
>>870
EUC保存はVB標準関数では無理。
nkf32.dllあたりつかって見れ。

>>879
それで十分ステキコード。
つか、そんなもん無い。

>>889
LB_SETHORIZONTALEXTENTを使うのも良い。

>>890
素早くやるのは無理。地道にFor使っとき。
どうしても、っつーならMoveMemoryかな。
CopyMemoryではなく。
894即レス:02/05/23 00:49
>>890
スマソ、ファイルの話だった。
ファイルなら尚更無理。
895デフォルトの名無しさん:02/05/23 01:53
>>870

EUC保存

改行の置換とかでできないかね〜
気合と根性のスクロールウインドー!!
897観鈴:02/05/23 02:18
出来ました〜・・・。
こうで出来ましたです。

HScroll1.Max = lbl7.Width '最大値
HScroll1.Min = lbl7.Left '最小値
HScroll1.LargeChange = HScroll1.Max / 7 '矢印クリック移動量
HScroll1.SmallChange = HScroll1.Max / 5 'バークリック移動量

lbl7.Left = HScroll1.Min - HScroll1.Value

>>892さん
どうもありがとうです。コードは凄く参考にさせていただきました。
それでは今夜も頑張ったのでそろそろ寝ちゃいます。
明日もがんばってくるです。
ありがとうございました ペコリ(o_ _)o))
>>889
普通だが。
Private Sub HScroll1_Change()
Label1.Left = HScroll1.Value * 2
End Sub
観鈴さんって オッパイある人?

セクハラだよ きっぱり
なんか最近VBのスレ乱立多いな
どうしたもんだか…やれやれ
厨はこのスレで留めておかないとな
あきられてきたかな?
厨を引きつける企画はないかな んで、そこまで考えないかんねん
901デフォルトの名無しさん:02/05/23 04:07
PersistableってJavaでいうSerializeと同じ機能と思っていいよねぇ。
902デフォルトの名無しさん:02/05/23 11:09
みなさん、こんにちは

独自に作成したフォントをVBからWindowsに登録(削除)したいのですが、
どうすれば良いのでしょうか?

プログラムは Windows2000Pro で動作させます
903笑む獅子:02/05/23 12:22
言語なんて何でもいい
問題はそれで何をやるのか?
その為の楽はOK
VBが楽だと言うのならOK。ただそれだけ
904即レス:02/05/23 12:34
>>902
フォントフォルダにコピーすれ。
905902:02/05/23 12:42
>>904 即レスさん、ありがとうございます。

早速試してみます。
フォントの削除は、
コピーしたファイルを削除するということで大丈夫ですか?
906笑む獅子:02/05/23 12:43
>>904
ねぇ聞いてるの?
ねぇーってばー!
907笑む獅子:02/05/23 12:45
>>905
ばかー!
908905:02/05/23 12:48
>>907さん すいません、おばかなので・・・

何かおかしい事してます?
コピーじゃだめですか?
>>908
そのアフォじゃないがFontフォルダに登録しなくてもAPI2つで使えるようになるっしょ。
GetScalableFont(だったっけ?)、GetFontData(だったっけ?)、SelectObjectとか調べてみ。
910即レス:02/05/23 13:04
>>905
コピー元を削除、ね。

>>909
それは動的に作成したフォントの割り当てだから。
「Windowsに登録」っつってんだからチョト違うような。

>>903
そうだね。
911即レス:02/05/23 13:05
>>905
ごめん、間違い。905でいい。

#最近あんまり文章見ずにレスする癖が付いてきた。とほほ。
912905:02/05/23 13:13
>>911 即レスさんありがとうございます。

試してみました。
コピーでフォントが登録できました。

ですけど、ファイルを削除する時に、エラーがでる時があります。
エクスプローラーから削除すると、「ファイルが使用中」という警告が
でました・・

この状態でも、コントロールパネル−フォントから削除してみると
消すことができました
913905:02/05/23 13:15
>>912
使用中のファイルを削除する方法を調べた方が良いのか、
コントロールパネル−フォント−削除の方法を調べた方良いのか

こういう場合、どちらが良いのでしょう

914デフォルトの名無しさん:02/05/23 13:20
早めに新スレ勃てておきました。

▼ VB初心者質問スレ Part 10 ▼
http://pc.2ch.net/test/read.cgi/tech/1022127528/
Toolbarコントロールをテキストの配置=tbrTextAlignRightにして
キャプションをアイコンの隣に表示するようにしてるんですが、
すべてのボタンの幅が、その時一番大きなボタンにあわされてしまいます。
labelコントロールのオートストレッチみたいにそれぞれのボタンを、
それぞれのアイコン幅+キャプション幅に自動調整して表示する方法はないでしょうか?
916即レス:02/05/23 14:38
>>905
やや間違った答えをしてしまった。
ちょっと調べてたんだが、

・フォントのインストールはレジストリもいじる必要がある。
 (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT(9x系はWindows)\CurrentVersion\Fonts)
・レジストリにはフォント名一覧のほかにFontLinkなどのキーで
 フォントの名前だけを変更できる。(ショートカットみたいなもの)
・フォントをコードから削除してもフォントフォルダを開いている場合は
 更新してもフォルダの内容は変更されない。
 (もう一度開きなおす必要がある)
・一度使用したプロセスが生きている限りフォントは削除できない。
 (エクスプローラーでも一緒。)

最後のは体験で言ってるだけだけど。

http://homepage2.nifty.com/winfaq/fontstrouble.html
http://www.dais.is.tohoku.ac.jp/~kabe/win/msgothic/g-both.html
これ参考になるかな?

>>913
それはたぶんVBで削除した後、レジストリを削除していないか
フォントフォルダが更新されていない状態。

その場合、エクスプローラーで削除するとエラーが出た後
レジストリをエクスプローラーが修正して開きなおす。
だから削除されたように見えるはず。

どちらにしても使用中のフォントは削除できない。
再起動時に削除するようにしとき。
917笑む獅子:02/05/23 14:48
>>905
ううん、だいちゅきだよ
918905:02/05/23 15:32
>>916 即レスさん

詳しく調べてもらって、ありがとうございます。

ファイルをコピーしただけでも登録されているみたいですので、
しばらくテストして、問題なければ、この方法でやってみます。
ちょっと、レジストリとか詳しくないので・・・

削除できない場合があるので、そのやり方を工夫してみます。
もし削除できなければ、「OSを再起動してからすぐに再実行してください」とか
メッセージを出そうと考えています。

色々とありがとうございました、なんとか解決できそうです。



そろそろVB.NETスレにせんのかな?
9201:02/05/23 21:53
>>919
立てようか?ワラ
9211:02/05/23 21:54
1じゃなかった・・・。なんでやろ・・・
922 :02/05/24 14:08
>>921
こんなスレ後半になって1が出現するのも珍しい
923デフォルトの名無しさん:02/05/24 17:21
VB6で、IMEの制御やカナの自動入力を、
ACCESSみたいに、プロパティーで設定だけでできないのでしょうか?
出来ない場合、API呼び出しで制御するしかないのでしょうか?
924デフォルトの名無しさん:02/05/24 17:23
VB6 で、 form の LinkTopic には、自フォーム名を入れた方がいいんですか?
DDEはよくわからないし使わないですが、その場合も入れたほうがいいんですか?
925デフォルトの名無しさん:02/05/24 17:27
923>
IMEModeを使わずにですか?
926@:@:02/05/24 19:49
ちょっと質問したいことがあります。
環境:WinXP VB6

今トラフィックモニタを作っているのですが
送信バイト数、受信バイト数などを取得したいのです。
APIか、Win付属のDLLか何かでできそうだと思うのですが
検索しても有力な情報がかからず困ってます。
WinXPのタスクマネージャにあるネットワーク負荷のグラフみたいなのが
作れれば十分なのですが・・・。
よろしくお願いします。
927O_O...:02/05/24 21:51
学校の授業の宿題(月曜日授業時提出)で
コマンドボタンの色を変えたいのですが、
command1.style=1
にしているのに、"取得できない"というエラーが出て、
プログラムが実行されません。
解決方法解る人いませんか?
教えてください・・・。お願いします。

Win2000 VB(たぶん)6です。
>>927
今VB持ってる?
ならコマンドボタンをクリックしてF1キーを押す。で、プロパティを見る。

command1.style=1でのエラーは
値の取得のみ可能なプロパティに値を設定することはできません。
だ。
値の取得はいいが、設定することはできん。実行時。

で、色変えは、
ForeColorじゃないか?BackColorもな。
>>926
http://www.microsoft.com/japan/developer/library/default.asp?URL=/japan/developer/library/jpwinpf/_win32_PdhBrowseCounters.htm
ここらへんにパフォーマンスモニタに関するAPIがあるみたいだが、
これを使うのはどう?
930がる〜ら:02/05/25 00:08
暗号プログラムを作ったのに馬鹿にされたよ
>>930
実際バカじゃんw
932926:02/05/25 13:40
>>929
む、無理っぽい・・・
そこらへん読みまくってみたんだができないです。
う〜む、そこらへんにある転送量測定してるソフトはどうやってんだろうなぁ
>>932
TrayMeter作者に聞いたら?
934933:02/05/25 14:38
TrayMeter、ソース公開されてるじゃん。
オイラも勉強してみよっと。
935926:02/05/25 15:15
>>934
こちらもソースみつけたんで読んでみてるんですけど
わからんYO!C++?知るかヴォケって感じ・・・。
核心部分がどうなってるのかってのだけ誰か説明してくれぇ〜
API使うのWin付属DLLでやるの それともなんかもう難しいことやってんの?
そこさえもわからん・・・
>>935
ソースに載ってる。
937933:02/05/25 15:43
webbrowserコントロールのメソッドプロパティの説明一覧が
書いてあるページを教えて下さい。VB
939O_O...:02/05/25 21:44
>928
とりあえず見てみる事にします。
ありがとうございました。(^o^)
ForeColore 入れるの忘れてた...。^_^;
940デフォルトの名無しさん     :02/05/25 21:56
お前等、タバコ2ヶ月止めるだけでVB.net買えるんだからさあ。
もうやめなよVB6。絶対.netのほうが面白いって。
941_:02/05/25 22:04
>>940
MXで取ってきましたが何か?
942:02/05/25 22:09
質問させてください。

今VB6でタスクトレイに常駐するようなソフトを作っているんですけど
タスクトレイのアイコンにカーソルを合わせると出てくる文字列を設定できますよね
それを、アイコン追加時だけでなく状況に応じて変更したいのですが
いちいちアイコン消去→アイコン追加(新しい文字列)
ってやらないとだめなのでしょうか。そうするとタスクトレイが乱れる(?)のですが・・・
それと、アイコンをちゃんと消すように作ってあるのに、アイコンが消えないことがあります。
ちゃんと終了されているのにアイコンだけのこっていて、変だな、と
カーソルをもっていくと、消えてしまいます。何が悪いんでしょうか。

長文すみませんがよろしくおねがいします。
NIM_MODIFYは?

>何が悪いんでしょうか。
消せてないんでしょ
添削してほしけりゃコード貼れ
944942:02/05/25 23:14
>>943
そうですか。丸投げはいけないかと思い遠慮していたのですが、
コード貼っていいようなら貼っちゃいます

Dim NotifyIcon As NOTIFYICONDATA

'タスクトレイのアイコンを削除
With NotifyIcon
.cbSize = LenB(NotifyIcon)
.hwnd = Me.hwnd
.uID = 10
End With
Call Shell_NotifyIcon(NIM_DELETE, NotifyIcon)
'-------------------------------------------------

'サブクラス化の終了
Call SetWindowLong(Me.hwnd, GWL_WNDPROC, lpOldWndProc)
945942:02/05/25 23:16
あ、NOTIFYICONDATAは

Type NOTIFYICONDATA
cbSize As Long
hwnd As Long
uID As Long
uFlags As Long
uCallbackMessage As Long
hIcon As Long
szTip As String * 64
End Type


こうなってます。
どこが悪いんだろぅ。943のNIM_MODIFYというのが入ってないなぁ
それをどっかに入れないとだめなんでしょうか?
946942:02/05/25 23:26
あ、検索してわかった。
NIM_MODIFY=アイコンの状態を変更
こういうことでしたか。すみません。
でもアイコンが消えずに残るのはどうしようもないのかなぁ
NIM_MODIFYは定数だんべ

・・・定数設定どうなってんだべ?
タスクトレイか、適度にがんばってね。
949デフォルトの名無しさん:02/05/25 23:30
>>946
アイコンを消す直前にフォーカスを当てればオッケー。
これ、FAQだわよ。
>>946
ちゃんとNIM_DELETEしてすべてのリソース解放してるか?
>>949
??
それVBアプリのファッキュー?
952942:02/05/25 23:48
>>947
定数はきちんと設定されてるようです
Public Const NIM_ADD = &H0
Public Const NIM_MODIFY = &H1
Public Const NIM_DELETE = &H2

>>949
消す直前にフォーカス・・・?
まずどこにフォーカスを当てればいいのかわからないという、、、

>>950
944のでちゃんと解放しきれてないんのでしょうか・・・
だったら困るなぁ・・・まじ


というかNIM_MODIFYとサブクラス化の兼ね合いがうまくわからん
サブクラス化解除してからNIM_MODIFY?
サブクラスとかほっといてNIM_MODIFY?
NIM_MODIFYでやってからサブクラス解除して開始しなおす?

もうわからん。ごっちゃになった。氏ぬマジ鬱
953デフォルトの名無しさん:02/05/25 23:49
>>951
当然、VBに限らない。
Winの仕様。
>>953
そんなんやらんでも消えたはずだが
Windowsのバージョンは?全部そうなの?
955デフォルトの名無しさん:02/05/25 23:52
>>952
自分で調べろよ。
あとでマウスカーソルをアイコンの上に持っていった時に消えるだろ?
でないとしても、どっちみちこの処理は必要だし。
>>942
アイコン用に別フォームでも作ったら?
>>952
サブクラス化はメッセージ拾ってるだけだろ?
起動時と終了時にやっとけばいいじゃん
NIM_MODIFYとは関係ない
958デフォルトの名無しさん:02/05/25 23:55
>>954
98SEや2Kぐらいまでは、そう。MEとXPは知らないが…。
実際、アイコンが残るフリーソフトはけっこう多い(VB製,VC製、Delphi製,etc)。
それと、常駐する以上、いろんな条件で試してみないと確認できないこともある。
950超えたから
▼ VB初心者質問スレ Part 10 ▼
http://pc.2ch.net/test/read.cgi/tech/1022127528/
こっちに逝こうよー
960942:02/05/26 00:01
>>955
そうですね。これ言うと教えて君の印が押されそうですが
一応Googleにて検索しまくってんですけど・・・。
http://homepage1.nifty.com/CavalierLab/lab/vb/clsmdl/staico.html#Shell_NotifyIcon
とか思いっきりその話題のページがあるんだが
サブクラス化と一緒にして使ってるところが無くて・・・。

>>957 の言う通りだと思い、最初はそうやってたんですが
何故かうまく変わってないんですよねぇ・・・どうしてだろ
じゃぁ別のところに問題があるのかもしれないですね。
>>945
ふと思ったけど、NIM_CLOSEどこでやってるんだろ?
OnCloseイベントでやったらちゃんと消えたみたいだけど。
以下C++Builderのソースだが(VBでなくてスマソ)、

// OnCloseイベント
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
(略)
 Shell_NotifyIcon(NIM_DELETE,&pNotifyIconData);
}

// タスクトレイアイコン右クリックメニュー「閉じる」
void __fastcall TForm1::E1Click(TObject *Sender)
{
 Close();
}
962961:02/05/26 00:07
NIM_CLOSEはNIM_DELETEの間違い、スマソ
>>960
>何故かうまく変わってないんですよねぇ・・・
なにが
964942:02/05/26 00:11
>>961
NIM_DELETEは
Form_QueryUnload でやってます。

>>963
タスクトレイのアイコンにカーソルを合わせると出てくる文字列 です。
>タスクトレイのアイコンにカーソルを合わせると出てくる文字列 です。
サブクラス化と関係ないし・・・
Shell_NotifyIconの使い方がやばいんでしょ
966942:02/05/26 00:16
'タスクトレイのアイコンの状態を変更
Dim NotifyIcon As NOTIFYICONDATA

With NotifyIcon
.cbSize = LenB(NotifyIcon) '構造体のサイズ
.szTip = List1.List(ListNum) & vbNullChar 'マウスポインタがアイコン上にとどまったときに表示される文字列
End With
Call Shell_NotifyIcon(NIM_MODIFY, NotifyIcon)

>>965
こうやっているんですが・・・。
これで間違ってるならはっきりいって俺がヴァカでしたってことで。
>>966
状態を変更はいいが何を変更したい?
968942:02/05/26 00:32
>>967
szTipです。そのList1.List(ListNum)は、これが呼ばれるたびに変化しているはずなのです
が、実際は変更されてないで表示されてしまっている・・・
>>966
そういうの聞くのが教えて君だよな
szTipだけ指定して変わるわけない
970942:02/05/26 00:34
>>969
ガ━━Σ(゚д゚lll)━━ン
言われてみれば・・・。
NotifyIconはここで宣言したものだ・・・
じゃぁ他のも指定しないと変わるわけないや。
マジすまん。単なる勘違いのミスでした!
お手数かけて申し訳ない・・・
>>958
98で試したがちゃんと消えるし
よくわからん
972デフォルトの名無しさん:02/05/26 00:55
すごいつまらない質問ですが、
コマンドボタソなどの絵を貼れるコントロールに拡張子icoのファイルを貼る時、
16×16で貼れないのでしょうか。
32×32ではデカくて…。
>>972
>コマンドボタソなどの
ネタと判断。おやすみ〜。
974勝負パンツ:02/05/26 01:02
うちの>>973がすみません…
寝る前に何か書き込みたくて仕方なかったようです。
>>974
自作自演ですか。
976勝負パンツ:02/05/26 01:13
>>975
そんな馬鹿な。良スレで煽ろうとしてっからさー。
977勝負パンツ:02/05/26 01:15
まぁ、VBが最強ってこった。
Delphi厨は氏ね。
Delphi厨は氏ね。
Delphi厨は氏ね。
Delphi厨は氏ね。
Delphi厨は氏ね。
Delphi厨は氏ね。
Delphi厨は氏ね。
Delphi厨は氏ね。
Delphi厨は氏ね。
Delphi厨は氏ね。
978勝負パンツ ◆fOmLffjg :02/05/26 01:20
>>977
そういうの飽きた。
寝る。
979勝負ブリーフ:02/05/26 01:21
うちの>>978がすみません…
結局自分が寝る前に何か書き込みたくて仕方なかったようです。
980日本男児は褌だろ?:02/05/26 03:49
うちの>>979が迷惑を掛けたの〜
以下省略
>>942
NIM_ADD って Form_Load() でやってる?
んで、NIM_DELETE したあとに Form1.〜〜 ってやってない?
982即レス:02/05/26 08:14
>>972
貼れるよ

>>942
削除してない。コードはあっても実行されてない。End使ってないか?
つか、MSDN一度ちゃんと嫁。
>>982
End 使ったらサブクラス化してるから致命傷になると思う。
984972:02/05/26 10:33
>>982
お返事ありがとうございます。
出来ればヒントだけでもおながいします…。
985即レス:02/05/26 10:44
>>984
ヒントって言われても。
16x16のアイコンつくってPictureに
設定するだけなんだけど。

>>983
んじゃUnloadかな。どっちにしろコード見直してみないとな。
986972:02/05/26 10:54
>>985
ああ、ええと、通常の32×32のアイコンを縮小表示した時のサイズで貼りたいのですが…。
987即レス:02/05/26 11:36
>>986
つまり32x32のサイズしかないアイコンを
動的に縮小させたサイズで貼りたい、ってこと?

それならImageListかな。
ImageListのサイズを16x16にしておいてアイコン読みこむ。
その後ExtractIconの戻り値をCommand.Pictureに設定。

#アイコン編集ソフトで16x16のアイコン作ったほうが
#楽だと思うが。
>#アイコン編集ソフトで16x16のアイコン作ったほうが
>#楽だと思うが。
それにきれいだ。
989972:02/05/26 11:51
ありがとうです。
アイコン編集してみるっす。
990958:02/05/26 23:09
>>971
消える場合と残る場合があるが、適切な処理をすれば必ず消えるようになる。
そう言ってるのに対して、「自分の場合は消えた」なんて何の意味がある?
「適切な処理」と唱える根拠を示してないからだよ。
9921000:02/05/26 23:22
1000
次スレに GO

▼ VB初心者質問スレ Part 10 ▼
http://pc.2ch.net/test/read.cgi/tech/1022127528/
9941000:02/05/26 23:28
1000
995デフォルトの名無しさん:02/05/26 23:29
>>991
文句を言う前に、少しは検索しろ!
9961000:02/05/26 23:30
1000
>>995
してられっか!
9981000:02/05/26 23:31
1000
9991000:02/05/26 23:31
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。