くだすれVB6.0以前(超初心者向け)
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/12/08(金) 19:36:45他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
VB使いが優しくコメントを返しますが、
お礼はVBの布教はしなくてよいので、初心者の救済をお願いします。
0577デフォルトの名無しさん
2007/08/31(金) 13:58:58gotoの動作としてはまったくかわらんよ
ローカル内で考えると、goto HANDLEがErr.Raiseって感じだし
やっぱり、gotoを絶対使わないという信条の人なら
On Error Resume Nextを使う必要があるんじゃないのかね
0578デフォルトの名無しさん
2007/08/31(金) 13:59:400579デフォルトの名無しさん
2007/08/31(金) 15:04:06は>>569見たいな状況
「上から下に読める」なんてドンだけフローチャートの世代なんだ
>>570(>>559)
>>564がぬるぽ
>>574
>>565がぬるぽみたいだ
「エラーでジャンプ」し尚且つErrオブジェクトで意味も参照できるからいいんじゃないかと
これは If cond Then A Else B 文で「condで A または B にジャンプ」という意味があるのと同じ
したがって >>576 はちょっとナンセンスな切り返しだ
ただVB6の言語仕様が昔ッからのを引きずっているのは確かで、
その状況で「GOTOを禁止する」ことが果たして万全なのかどうかは俺にはわからない
本嫁
0580デフォルトの名無しさん
2007/08/31(金) 15:07:150581デフォルトの名無しさん
2007/08/31(金) 19:04:45だから、教条主義的にgotoを禁止するのは馬鹿げてるけど
大概の処理はgoto無しで、かつgoto使った場合より可読的に書けるよ。
それと、なんか君は「コードを書く時」の目線ばかりを優先しているように見えるけど、
(どうしたらよりコンパクトに書けるか、みたいな)余計なお世話だろうがよくない兆候だよ。
「コードを読む時」目線で考えるべきだ。
つまり、他人にとって、あるいは一年後の自分にとって「読んで理解しやすいかどうか」を
(gotoならgotoの使用の是非の)判断の指針にすべきだ。
>>579
上から下に読み下せないコードはヒトにとって読みにくい、
という経験的事実がフローチャートとどう関係するんだろうねw
構造化プログラミングすら理解してないなら黙ってればいいのに。
ループ、分岐、関数、といった「構造」に抽象化するのは上から下に読み下すためだろう。
ループも分岐も、ループや分岐という概念を知らずそれを「ループ」や「分岐」として
認識できなければ、ただのgotoだ。
というか、日本語書けよ馬鹿。
0582559
2007/08/31(金) 20:25:54を意識しているつもりではいるのですが。
(GOTO嫌いな人にとって感情的に読む気が失せる・・・のは無視します)
「大概の処理をGOTOを使った場合より可読的に書く」
イメージがなかなか沸かないです・・・。
0583デフォルトの名無しさん
2007/09/01(土) 10:53:51飛び元と飛び先のロジックの関係を考慮しなくちゃならなくなるケースを考えてみるとか。
複数の場所から一つのラベルにGotoが貼られているとする。
仕様変更でラベル以降のロジックを修正しなきゃならなくたった場合、呼び元の全ての
ロジックへの影響を考慮しなくちゃいけない、とか。
0584デフォルトの名無しさん
2007/09/01(土) 13:28:47同じことを考慮しなくちゃならないと思うけど
0585デフォルトの名無しさん
2007/09/01(土) 17:41:41まあ本当に構造化プログラミングを理解してる人間なんていないと思うんだが
もしかして、構造化=ソースの構造化、と間違えてる?
0586デフォルトの名無しさん
2007/09/01(土) 21:56:28実際にプレイする小中学生とかが
ターンとかロールなんて言われても何の意味だかわからんだろ。
やたらと横文字使えばいいってもんじゃねーぜ。
だから、ゲーム作る奴はバカって言われるんだよ。
もう一度言ってあげようか?
バ・カだよ。バ・カ
0587デフォルトの名無しさん
2007/09/01(土) 22:27:16vb関係ないし
日本語でおk
ってか人間でおk
0588デフォルトの名無しさん
2007/09/01(土) 22:52:040589デフォルトの名無しさん
2007/09/02(日) 05:10:05英単語覚えたな
昔のADVはコマンドをすべて、自分で考えて打ち込まなければならなかったしかも英語でw
もちろん小学生の頭じゃほとんど理解不能でクリアしたのはずっと後だったけど
0590デフォルトの名無しさん
2007/09/03(月) 09:18:24このIEのユーザーエージェントを変更する方法は
ありますでしょうか?
0591デフォルトの名無しさん
2007/09/03(月) 09:34:16navigateの引数にありました。
0592デフォルトの名無しさん
2007/09/03(月) 15:55:25SQL文の区切り(?)に使われている GO がエラーとなってしまいます。
'現在試している方法
Dim hTextStream As TextStream
Dim hFso As New FileSystemObject
Set hTextStream = hFso.OpenTextFile("foo.sql")
Call MyConnect.Execute(hTextStream.ReadAll())
foo.sqlは、EnterprizeManagerで作成したテーブル、ストアドプロシジャの削除、登録のSQL文で、
当然ながら、クエリアナライザでは正常に動作します。
クエリアナライザで実行する場合と同じ結果を、VB6で得られないでしょうか。
0593デフォルトの名無しさん
2007/09/03(月) 17:50:39GOはSQLコマンドじゃないからです。
ここ参照
ttp://technet.microsoft.com/ja-jp/library/ms188037.aspx
0594デフォルトの名無しさん
2007/09/03(月) 18:33:25GOを無視し(というか、//に置き換え)てやってみたら、希望通りの動作になった様です。
GOってのはあっても無くても動作に変わりは無いのですかね?
とりあえず、簡単に試したところ正常に動いているようなので、これでいってみたいと思います。
ありがとうございました。
0595デフォルトの名無しさん
2007/09/04(火) 02:52:37/\___/ヽ ヽ
/ ::::::::::::::::\ つ
. | ,,-‐‐ ‐‐-、 .:::| わ
| 、_(o)_,: _(o)_, :::|ぁぁ
. | ::< .::|あぁ
\ /( [三] )ヽ ::/ああ
`ー/-‐‐ヽ‐‐´ ぁあ
0596デフォルトの名無しさん
2007/09/06(木) 23:34:19配列を2つ作って一方がもう片方を参照するには
どうすればいいのでしょうか?
0597デフォルトの名無しさん
2007/09/07(金) 00:06:46VB6の配列は値型です(関数のByRefで渡した場合の仮引数は参照ですが)
どうしても、という場合はクラスでラップするか、関数の仮引数としてByRefで渡してあげてください
0598596
2007/09/07(金) 12:37:04試してみます
0599デフォルトの名無しさん
2007/09/07(金) 15:26:15氏ね
屑野郎
0600[Fn]+[名無しさん]
2007/09/08(土) 11:46:27すみませんが,VISTAに普通にインストール&使用は可能でしょうか。
動作可能にはなっていますが,特にインストールの必要なファイルなどは
あるのでしょうか?
0601デフォルトの名無しさん
2007/09/08(土) 12:03:05インストーラーのインストール手順に従っておけばおkです
詳細については
ttp://www.microsoft.com/japan/msdn/vbasic/support/vistasupport.aspx
のHPを見てください
0602デフォルトの名無しさん
2007/09/08(土) 12:36:46http://pc11.2ch.net/test/read.cgi/tech/1189038267/37-38
ENDは使っちゃいけないのでしょうか?
0603[Fn]+[名無しさん]
2007/09/08(土) 20:29:57ありがとうございます。
インストールしていますが,問題ありのメッセージが2度ほど出てきます。
無視して続行していますが,大丈夫しょうか。
0604デフォルトの名無しさん
2007/09/10(月) 16:19:20ドロップダウンリストのどっちを使うか悩む事ってないですか?
どういう判断基準で、使い分けしてますか?
0605デフォルトの名無しさん
2007/09/10(月) 18:37:30考えるな感じ取れ、だよ。
【ドロップダウン】
○ 省スペース
× 選択肢の「見通し」が悪い。
ラジオボタンはこのちょうど反対。
0606デフォルトの名無しさん
2007/09/11(火) 23:32:20ファイルの送受信(メッセンジャー等に付いている様な)を行うプログラムを作成したいと
考えているのですが、VB6.0にそのような機能はついているのでしょうか?
また、上に挙げた様な機能がなくともそのようなプログラムを作成する事は可能なのでしょうか?
もし参考になりそうな本等がありましたら教えていただけると幸いです。
0607デフォルトの名無しさん
2007/09/11(火) 23:36:18ついてない。
> そのようなプログラムを作成する事は可能なのでしょうか?
可能。
> もし参考になりそうな本等がありましたら教えていただけると幸いです。
「○日でできるVB6.0」とか「VB6.0入門」とか、そういう系統。
0608デフォルトの名無しさん
2007/09/13(木) 13:50:31数量、単価、金額、消費税、原価率・・・などなどの四則演算を行う場合、
各々のデータ型をどう定義したら良いのでしょう。
VBでSingle/Double
SQLSERVERでfloat/decimal
ネットとかでよく見かけるのは、これらの浮動小数点型なんですが、
これって誤差がつきものですよね?
システム上同じ数字を出す全箇所について、必ず同じ計算ロジックを通すという
コーディング制約を設けて、それを遵守しないと、絶対どこかで誤差が出ますよね?
さらに、VBはDouble(倍精度)、SQLはfloat(単精度)などの定義をしている
例をことさらよく見かけますが、こんなのはアリなんでしょうか?
「金額が関わるところに浮動小数点を使うのはあり得ない」と断言しているサイトも
どこかで見ました。
必ず固定小数点型、VBはCurrency・SQLはmoneyだろう、スピードは落ちると言っても、
最近の機械ならそれこそ誤差の範囲だ・・・という感じの紹介で。
私も、数字に誤差の出ない固定小数点がいいんじゃないかなー、と思っています。
でも、現実はどちらかといえばそうじゃないことの方が多い・・・・
一般的には、どう考えるものなんでしょうか。
0609デフォルトの名無しさん
2007/09/13(木) 14:10:230610608
2007/09/13(木) 14:21:19decimalは概数型じゃないですね。
SQLSERVERでの単精度はreal、倍制度はfloat。
VBはDoubleでSQLはfloatなのは、データ型としては同じだから、
そこは問題ないんですね。
>>609
エクセルのセルに値を渡して、シート関数で計算させて
結果を読むってことでしょうか?
0611デフォルトの名無しさん
2007/09/13(木) 14:48:13Currency/Decimalだって何進法でも起こる誤差を避けることは不可能。
ただ、十進法で有限小数となる値の中には、
二進法へ変換すると無限小数になるので正確に表現できない、
つまり有限桁しか扱えないコンピュータでは、それだけで打切り誤差が発生するものがある。
だから十進法中心に考える人間には、一見すると誤差が付き物に思えるだけ。
もちろん、金融では致命的な弱点となるので、Single/Doubleは脱落。
また十進法の浮動小数点数 (VBのDecimal)はどうかというと、
下手に計算すれば情報落ちが問題になりやすいし、
VB固有の事情としてDecimal型の値はVariantに入れるしかないという
不便さもあって、駄目ではないが要注意。
そんなわけでCurrencyに落ち着く。もちろん整数だけなら整数型がよい。
0612デフォルトの名無しさん
2007/09/13(木) 14:52:17全部浮動小数点でOK
最終的に、小数点以下の金額にならないように
1円まで切り上げるでしょ?
その時に元の金額(整数)を使って金額の誤差がないか
1円の増減がないかを再計算するのさ〜
経理、給与計算プログラムの常識だよ〜
0613デフォルトの名無しさん
2007/09/13(木) 14:56:320614デフォルトの名無しさん
2007/09/13(木) 15:02:090615デフォルトの名無しさん
2007/09/13(木) 16:38:19軽くぐぐってみました。
一般的な企業の販売仕入や財務、給与などのシステムでは、
まず無理数の計算などは行われないし、丸めだけしかるべき関数を作れば、
やっぱりVB:Currency SQL:moneyで十分対応できますよね?
>>612
> 元の金額(整数)
この整数って、どの段階で出てるものでしょう・・・?
また、これを使って金額の誤差・増減の有無を、・・・再計算?
すみません、よくわかりません・・・
0616デフォルトの名無しさん
2007/09/15(土) 11:51:10これを確実に終了させるにはどうしたらいいのですか?
0617デフォルトの名無しさん
2007/09/16(日) 01:35:49それは変な話だな・・・
自分自身はEndでたいてい残らずに消えるはずですが。
むしろ自分以外のリソースやプロセスが残る可能性がある。
あ、でも>>616はどのプロセスが残ってるのかまでは書いてないのか。
どうなんでしょう?
一般論としては、UnloadやTerminateイベントでリソースの後始末をして
Endを使わないように、ということです。
Endを使わないとそれこそ残る、というならそれは潜在的なバグだ。
0618看護婦
2007/09/16(日) 19:50:07「問題が発生したためVBを終了〜」
「アプリエラー "0x04246c88"の命令が"0x1da1adad"のメモリを参照しました。メモリが"written"になることはできませんでした。」
とのこと。
これって何がダメなんですか?
どなたかお願いします。
0619デフォルトの名無しさん
2007/09/16(日) 19:53:50リンクアドレスの<a href=〜>タグのアドレス部分は下記で取得できたのですが、
str=Pattern"<a href=""([^>]*(\.jpg|\.gif|\.png))"" target=""_blank"">(.*)</a>"
単純に、http://abc.defg.net/hijk/lmn.jpg
とかの単純なjpgファイルへのアドレス文字列の正規表現が思いつきません。
教えてください。
0620デフォルトの名無しさん
2007/09/16(日) 22:48:31あとはURLかどうか調べるAPIがあったはずだからそれに任せる。
0621619
2007/09/16(日) 23:28:290622デフォルトの名無しさん
2007/09/17(月) 16:10:45いや〜それだけの情報だと
"0x04246c88"の命令が"0x1da1adad"のメモリを参照するのが
ダメなんじゃないかなあ〜としか。
F9やF8でダメな行を特定してみましょう。
あとここはささくれだった人が多いので、「エスパーw」みたいな
書き込みは華麗にスルーしてください。みんなイライラしています。
0623看護婦
2007/09/17(月) 17:13:39>>662 お騒がせしてすいませんでした。
0624デフォルトの名無しさん
2007/09/22(土) 07:33:11自分で書いてたのが、loopしまくりで自分でワケわからなくなってしまいました。
なにか簡単な方法がありますかね?
0625デフォルトの名無しさん
2007/09/22(土) 09:16:29> 2007年の第3木曜日
ちょっとおかしいよな.適当に月指定があるもんだとしたぞ.
だめでも,下の関数使える.
しかもついでに,2007/9/18は第3火曜日だ.
Public Function XthWeekDay( _
ByVal Year As Long, _
ByVal Month As Long, _
ByVal x As Long, _
Optional ByVal week_day As VbDayOfWeek = VbDayOfWeek.vbSunday) As Date
XthWeekDay = DateSerial(Year, Month, 1)
While Weekday(XthWeekDay) <> week_day: XthWeekDay = XthWeekDay + 1: Wend
XthWeekDay = XthWeekDay + 7 * (x - 1)
End Function
で, format$(form1.XthWeekDay(2007,9,3,vbTuesday),"yyyymmdd") みたいに.
0626デフォルトの名無しさん
2007/09/23(日) 16:48:16VBAでいうとApplication.Screenupdateみたいなのってありますでしょうか?
sub main()
Label1.caption = "処理を実行中です"
'この時点でフォームに実行中の表示をさせたいんです
call データベースに接続
Label1.caption = "処理が完了しました"
End sub
0627デフォルトの名無しさん
2007/09/23(日) 17:13:44VBAよくしらんけど
0629デフォルトの名無しさん
2007/09/25(火) 18:32:59VB6.0で作られてるのをAccess2000のVBAで作ってみてるんですが互換性はあるんでしょうか。
wiki見る限りVB7から互換性はないとのことだし
できることならそのまま流用、自己解読のためにも互換性の有無を教えていただけるとありがたいです。
0630デフォルトの名無しさん
2007/09/25(火) 18:34:400631デフォルトの名無しさん
2007/09/25(火) 23:26:59VBの言語仕様自体は共通。
ただしフォーム等のオブジェクト構造はほぼ別物。
ほとんどの場合、コピペするだけじゃ動かないと思っておいたほうが良い。
0632629
2007/09/26(水) 17:54:23言語が一緒、ということは片方がわかればもう片方もわかる、というわけでもないか
もう少しソースとにらめっこしてきます。ありがとうございます。
0633デフォルトの名無しさん
2007/09/27(木) 13:16:16Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Button1.Text() = "動作中"
Timer1.Interval = ComboBox1.Text
Timer1.Enabled = True
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
End
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Button1.Text() = "時間です"
Beep()
Timer1.Enabled = False
End Sub
End Class
という、タイマーのプログラムを作ったのですが、
タイマーの動作中はButton1をクリックできないようにしたいのですが、
どのようにプログラムを変えればよいのでしょうか?
お教えください。よろしくおねがいします。
0634デフォルトの名無しさん
2007/09/27(木) 14:16:30Button1_Clickの時に、
Button1.Enabled = False
で良いのでは?
あと、Timer1_Tickで
Button1.Enabled = true
で戻しとく
0635デフォルトの名無しさん
2007/09/27(木) 14:53:20なるほど、有り難うございます。
ってことは、
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Button1.Text() = "動作中"
Timer1.Interval = ComboBox1.Text
Button1.Enabled = False
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
End
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Button1.Text() = "時間です"
Button1.Enabled = true
Beep()
Timer1.Enabled = False
End Sub
End Class
で、よいのでしょうか・・?
初心者なものですみません・・・。
0636デフォルトの名無しさん
2007/09/27(木) 15:07:45それで動くかわかりません、環境が無いもので。。
しかし、コードを記述する場所はそれでいいんじゃないでしょうか
とりあえず、Button1.Enabled = False は使用不可にする意味ですので、
実現したい場所に記述して下さい。
ちなみに、.NETの質問はこちらに
ttp://pc11.2ch.net/test/read.cgi/tech/1189038267/l50
0637デフォルトの名無しさん
2007/09/27(木) 15:16:32わかりました。ありがとうございました。
スレ違いでしたか・・。すみませんでした。
0638デフォルトの名無しさん
2007/09/28(金) 18:00:27ttp://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?print+200512/05120059.txt
でVB6でpdfのページ数を求めるソースがあるのですが、
5 AcroPDF:AcroPDF1 を Form1 に貼り付ける
この意味が判りません。何をどうすればよいのでしょうか?
ここ以前まではできたと思います
(生成したクラスの名前をClass1からtagWndに変更するなどを含め)。
Adobe Reader 7.0はインストール済み、WindowsXPです。
よろしくおねがいします。
0639638
2007/09/28(金) 18:15:29実行→完全コンパイル後に開始
を行うと、変数「AcroPDF1」がハイライトされ、「コンパイルエラー:変数が定義されていません」
と表示されます
0640デフォルトの名無しさん
2007/09/28(金) 19:28:580641デフォルトの名無しさん
2007/09/28(金) 20:46:440642デフォルトの名無しさん
2007/09/28(金) 23:20:53これ書いたの俺だけど,
とりあえず,
> 4 [プロジェクト]-[コンポーネント]
> -[Adobe Acrobat 7.0 Browser Control Type Library 1.0]
> にチェックを入れる
はちゃんとチェック入れた?
チェック入れているなら,VBのツールボックス(ボタンとかテキストボックスとかピクチャボックスがあるアレ)
にAcroPDFのツールが選択可能になるから,ソレをForm1のデザイナに貼り付ければおk
ってか動くかどうか確かめてみた
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4989.zip
動くね.(要AcrobatPDF 7)
0643デフォルトの名無しさん
2007/09/29(土) 14:16:43ありがとうございます。書いてあるとおりチェックは入れております。
AcroPDFのツールをForm1のフォームに貼り付けてみました。
ですが、メニューを押してもページ数が表示されるとかそういった事は起こりません。
まず「PDFファイルパスを入力してください」というウィンドウが出るので入力してOKを押します。
するとForm1というタイトルのあるウィンドウが出てきますが、この時「AcroPDFのツール」を
貼り付けた部分は透明になり、その下にある画面が表示されます。そしてメニュー(pGetPageCount)を押すと
ディスクアクセスは起こるようですが何の変化も起こりません。うpして頂いたzipを解凍してやっても同様です。
「(フリーの)Adobe Reader 7.0が必要」なのではなくて「(製品の)Adobe Acrobat 7」などが必要なのでしょうか?
まあそういった事で駄目なら他の方法を探しますorz
0644デフォルトの名無しさん
2007/09/29(土) 20:02:34表示するプログラム作らないといけないんですが
APIの使い方が分かりません
0645デフォルトの名無しさん
2007/09/30(日) 00:21:420646デフォルトの名無しさん
2007/09/30(日) 02:41:22APIは初心者向けの内容じゃないから他スレで聞いた方がいいですハゲ。
自分自身のプロセス(exe)内だったらForm.ZOrderとかがあります。
他プロセスだったら、使うのはFindWindowとかSetForeGroundWindowだと思います。
あとはググレカス。
あと、最近のWindowsは他プロセスのウィンドウを手前にしようとかしても
点滅するだけで手前に来ないようになってます。よろしく。
0647デフォルトの名無しさん
2007/09/30(日) 07:00:59遅くなった
うーん,確実に俺の環境とは違うなぁ
とりあえず,動作検証用にSS貼り付けるから,こちらで確認できる正常動作を見てくれ:
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4993.zip
> 「(フリーの)Adobe Reader 7.0が必要」なのではなくて「(製品の)Adobe Acrobat 7」などが必要なのでしょうか?
そんなことはないぉ
Adobe Reader 7.0(バージョン7.0.7)で確認しているぉ(^ω^
あと,Adobe PDF ReaderでActiveXコントロールとして表示されない,をググると…
ttp://www.google.co.jp/search?complete=1&hl=ja&q=Adobe+PDF+Reader+ActiveX%E3%80%80%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84&lr=&aq=null
あとはよーわからん
0648デフォルトの名無しさん
2007/09/30(日) 13:04:220649デフォルトの名無しさん
2007/10/01(月) 08:14:46何度もありがとうございます。原因を探してみます。
矢張り当方が根本的な部分で理解していない可能性もある訳ですしねorz
0650デフォルトの名無しさん
2007/10/03(水) 10:10:43あのう、IEのツール->インターネットオプションで出てくるような、タブコントロールの
乗ったダイアログで、かつそこでの設定変更をリアルタイム(というかイ
ンタラクティブ)で、元のウィンドウに反映されるようなのをダイアログ
を作りたいのですが、
(つまり、適用を押さなくてもラジオボタンとかを
変えただけで変更が反映されるような)
これはやはり
−フォームで自作する
−ラジオボタンの変更イベントをキャッチしてイベントドリブンで自分で作る
という感じで皆さんやっておられるのでしょうか?
なんかいいアクティブXとか標準のコンポーネントとかありますでしょうか。
なにとぞよろしこ。
0651デフォルトの名無しさん
2007/10/03(水) 10:16:41逆にあったら不便だろ
言わなくても分かってると思うから今後誰か見たときのためにかくけど,自分中心で考えたら世の中まわりゃせんよ.
VB6はそのへんの処理の抽象化があまり出来ない言語だからゴリゴリ作るしかほかない.
何かデザパタ参照するとちょっとは楽できるかもしれんが.
0652650
2007/10/03(水) 11:12:21おせわになりましこ。結構ググりまくって自分の理解ぎりぎりのところで
文章書いているので変な日本語スンマソン。
>デザパタ
ググッテみたらアプリケーションウィザードでいろいろ作ってみるというのを
ハケーンしてワクテカしながらいろいろ作ってみたけど肝心のツール->オプション
が空で、実行したら「てめえでコードを記述すれ」と言われてガカーリシターヨ。
なんか、近いのご存じでっか?
0653デフォルトの名無しさん
2007/10/03(水) 11:55:09デザパタはこちら:
ttp://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3_%28%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%29
別に万能の利器でもなんでもない,デザインパターンだから何かツール的な使い方があるわけでもない.
けど考えるとき便利.
今回の件でもっとも難しいのが,やりたいことが余りにも抽象的な位置に属していること.
全てをひっくるめると「何か行動したとき [イベントが発火したとき] に何かしたい [アクションを起こしたい] 」ってことに纏まるわけだが,
これじゃあイベントドリブンそのものを言っているに過ぎない.
こういうものは,結局「何でも使えるけど何にも使えない」物なので,
仮にツールやフレームワークとして提供されていてもほとんど自分で書かなくては成らない.
/*
抽象的な表現からもうちょっと掘り下げて,たとえば「特定のボタンを押したときに,特定のウィンドウに"A"を表示する」
程度だったらちょっとはツールキットとして成立するかもしれん.
*/
まあ,現状の説明で作るってんならゴリゴリ書いていくしか無いだろうね.
0654650
2007/10/03(水) 13:16:51サンクスコ。そんな回答でいいの。
もともと抽象的というか、何から手をつけて良いのかわからない段階だったので、
テンプレになるものが「ある」のか「無い」のかわかればそんでいいの。
誰もが一度は通るべき道を掲示板で聞いて楽しようと思っているのではなくて、
誰もが利用している便利なテンプレがあるのを知らずに何ヶ月も悩むのを避けた
いだけなので、みながゴリゴリ作っている事だと分かれば安心してフルパワーを
つぎ込んだりあっさり諦めたりできる。その割り切りができるのがありがたいの。
しっかし「デザインパターン」ってのも一種の予約語なんだな。サンキュスコ。
世話になったね。
0655デフォルトの名無しさん
2007/10/03(水) 18:48:20なんか変なアドバイスをしてる人がいるけど、別に君が欲しがってる様なUIは
必ずしも変ではないし、またデザインパターンなんて大げさなこと言わなくても
実現できるよ。
大雑把にはこんな方針でやればいい。
■ 設定値は(その設定が属する「存在」を抽象化した)クラスのCHogeの
プロパティとして実装する。
■ Form1(君のいう「元のウィンドウ」)と設定用フォームSettingFormには、
どちらもCHogeの同じインスタンスHogeへの参照を持たせる。
■ Hogeは設定値が変更されたとき、イベントを生成する。Form1はこのイベントを
受信して設定値の表示を更新する。
■ SettingFormのコントロールの値が変更された時、Hogeのプロパティを連動して変更する。
というか、普通このぐらいのことは自分で思いつかなきゃダメダメだな。
そんな程度ならいまさらVB6なんて終わってる言語やってもしょうがないと思う。
0656デフォルトの名無しさん
2007/10/03(水) 22:09:43ってだからそれ自体は普通のイベントの発火とアクションだって.
しかも親子で明示的に参照しあってると循環参照になるから普通はWithEvents使うって.
…って言っても分かってくれないんならもういいや
0657デフォルトの名無しさん
2007/10/03(水) 22:24:34655の文章のどの部分に対して「ってだから」なんだ?
訳が分からんよ
0658デフォルトの名無しさん
2007/10/03(水) 22:34:00>…って言っても分かってくれないんならもういいや
むしろこっちの方がもういいや
0659デフォルトの名無しさん
2007/10/03(水) 22:42:54全部だよ.
>>655の書いてることは,要はイベントの発火とハンドリングをVB6のイベント処理とは別の独自の方法でやるってことだろ?
非標準な方法を使うと色々コストが高くつくし,
何より「イベントの発火の結果何をするかは設定要素次第」なんて言ったら,
もはや「イベントは発火するけどその結果をどう使うかは貴方次第」ってことになって,
>>653で述べた結果になると思うってことだ.
つまり,それは「何でも使えるけど何にも使えない」物になるってこと.
具体的に>>655だと,たとえば
■ SettingFormのコントロールの値が変更された時、Hogeのプロパティを連動して変更する。
の部分が「何にも使えるけど何にも使えない」部分だと思われ.
「Hogeのプロパティを『〜のように』連動して変更する」だったらまだ使い物になる.
けれど「Hogeのプロパティを変更する」じゃ,アタマ空っぽの人間に仕事を押し付けてるようなもんだ.
まとめると,もともとの>>650のしたいことは”イベントを処理すること”を工夫するのではなくて,
”イベントによって行う処理”を工夫して纏めることだと思うんだが,
あえてイベント処理自体を自力で実装する>>655はお門違いだと思うってことだ.
>>657へ.
ちゃんと日本語で具体的に書いたぞ.
そっちも具体的に書いてね
0660デフォルトの名無しさん
2007/10/03(水) 22:49:13> またデザインパターンなんて大げさなこと
大げさか。
0661デフォルトの名無しさん
2007/10/03(水) 22:55:21>要はイベントの発火とハンドリングをVB6のイベント処理とは別の独自の方法でやるってことだろ?
誰もそんなこと書いてないよ。
後の部分については、言っては悪いが日本語になってない。
リカイデキマセン。
まあよく分かってないならあんまり無理しなさんな。
0662デフォルトの名無しさん
2007/10/03(水) 22:58:140663デフォルトの名無しさん
2007/10/03(水) 23:01:44> 誰もそんなこと書いてないよ。
じゃあなんて言いたいの?
理解できない部分があるのはお互い様だろ.
0664デフォルトの名無しさん
2007/10/03(水) 23:05:50むしろ>>655のどこをどう読めば
「イベントの発火とハンドリングをVB6のイベント処理とは別の独自の方法でやる」
なんてユニークな解釈ができるの?
「くだすれ」だから当該言語について初心者なのはまあ許されるかもしれないが(でも
お前さん回答者なんだろw)日本語の読解および表現力に関して初心者なのはどうなのよw
0665デフォルトの名無しさん
2007/10/03(水) 23:09:03>■ 設定値は(その設定が属する「存在」を抽象化した)クラスのCHogeの
>プロパティとして実装する。
の「存在」とか言う部分も相当ユニークだと思うが・・・
まあいいや,解釈がユニークなのは誰しも当たり前だし,
当たり前のこと言ってる奴見るのも飽きるからそろそろ寝る
またな
0666デフォルトの名無しさん
2007/10/03(水) 23:12:02ん?
でも>>655って結局は「イベントを処理する」って言いたいだけじゃないのか?
0667デフォルトの名無しさん
2007/10/03(水) 23:23:33ピクチャボックスに画ごとに色分けて作った「あ」という画像を表示して、
画順にPSetで塗りつぶしていくってのを作ってみたんですが、
1画塗り終わるのにめっさ時間がかかってしまうんです。
なにか、早くスムーズに、塗りつぶしていく方法ってあるでしょうか?
0668デフォルトの名無しさん
2007/10/03(水) 23:25:480669デフォルトの名無しさん
2007/10/08(月) 19:54:23ActiveXを使ってやろうと思っているのですが、GrapeCity以外で、何かよいものをご存じありませんか?
0670デフォルトの名無しさん
2007/10/08(月) 19:55:58http://www.hi-ho.ne.jp/babaq/
0671デフォルトの名無しさん
2007/10/09(火) 17:27:25VB 2005でデスクトップマスコットを制作しているのですが、
マスコットとメッセージの同期移動がどうしても上手くいきません。
それぞれ個別のフォームで表示させていて、
タイトルバーを非表示にしてある状態で
↓のサイトを参考に同時移動の処理を考えたのですが
どうしても上手くいきません。
ttp://dobon.net/vb/dotnet/form/moveform.html
何か良い案は無いでしょうか?
よろしくお願いします。
0672671
2007/10/09(火) 17:35:35スレ違いでした。
0673デフォルトの名無しさん
2007/10/09(火) 18:33:41情報ありがとうございます。
これから、使用例など見て検討したいと思います。
個人の作者さんというのがちょっとネックか?というところです。
0674デフォルトの名無しさん
2007/10/10(水) 23:26:41VB6で変数を宣言しなきゃバリアントになるというのはどこみても書いて
ありますが、その時のスコープはどうなるんでしょうか?
これも標準モジュールかフォームかクラスモジュールかによって違うんでしょうか?
いや、自分で書くときゃ必ずOption Explicitなんですが、買ってきた本に
書いてあるコードが理解できない。。。
0675デフォルトの名無しさん
2007/10/10(水) 23:36:49基本的に閉じたスコープで宣言したものになるはず
0676デフォルトの名無しさん
2007/10/10(水) 23:38:12■ このスレッドは過去ログ倉庫に格納されています