- PR -

【VB6.0】処理内容が同じイベントを纏めて記述したい

投稿者投稿内容
ハルシオン
常連さん
会議室デビュー日: 2005/03/29
投稿数: 24
投稿日時: 2006-09-28 19:11
お世話になっております。

引用:


R・田中一郎 さんの書き込み

僕もユーザーコントロールにしますね。VB6.0でw
(作れますよん)




Σ(゚д゚lll)そうだったんですか!!
また一つ知らない事を知れてしまった。
ありがとうございます。

そして、甕星 さん、せっかく教えて頂いたのに失礼なことを言ってしまって
申し訳ありません。
早速調べてみます。

引用:


じゃんぬねっと さんの書き込み

試していませんが、できないと思います。
コントロール配列は、素直に Index 付きのイベント プロシージャでやると良いでしょう。

サブクラス化する方法を採ればできると思いますが、お勧めはできないですね。




そうだったんですね。
やはりコントロール配列はダメでしたか…
サブクラスは、手出しをしてはいけない危険なカオリがするので
助言頂いたとおりなるべく避けたいと思います。

素直にそのままのイベントプロシージャでやる事は最後の手段として、
もう少しあがいてみます。


これはますますユーザーコントロールに期待が掛かるところです。



新しいことを知れると日常の業務でも楽しいですね。
ありがとうございます。

進展あり次第、ご報告させて頂きます。
ハルシオン
常連さん
会議室デビュー日: 2005/03/29
投稿数: 24
投稿日時: 2006-09-30 21:52
お世話になっております。

ユーザコントロールですが、何とか作成してみました。
すごいですね!
こんなことが出来たなんて…
あのときのあのプロジェクトのアノ機能、コレで作りたかった!という場面が
走馬灯のように脳内を駆け巡りました。

ただ、今のプロジェクトでこの方法(ユーザコントロール)が採用されるかということになると少し厳しい状況です。

現在のプロジェクトメンバーが今まで、ユーザコントロールに未経験
だったこともあり、画面上の動作は問題ないのですがexeにしたときや、客先の環境に入れ替えた時に、
「もしかしたら予期しない大変なことが起こるのでは!?!?」
という不安がメンバー内でかなり拭い去れない状況なのです。
(そんなことないよ、実はこんな時はヤバイ、等ありましたらチラッと教えていただけると助かります)

というわけで、今回は、最初に試してみたクラスで、実装することになりそうです。



皆様、ありがとうございました。
かなり勉強になりました。

今後とも宜しくお願い致します。
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-09-30 22:37
引用:

ハルシオンさんの書き込み (2006-09-30 21:52) より:

現在のプロジェクトメンバーが今まで、ユーザコントロールに未経験


僕が作ったソフトウェアでは、ユーザーコントロールを使わなかい方が少なかったくらいです。
問題無いですよ。ガンガン使って下さいw

ocx として独立させた場合は、バージョンの互換性を保つ必要が生じるので、この点だけ注意していただければ・・・

もし不安なら、同じプロジェクトに含めても良いかもしれませんね。
_________________
R・田中一郎 -  R.Tanaka.Ichiro’s Blog
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2006-09-30 22:38
引用:

ハルシオンさんの書き込み (2006-09-30 21:52) より:
現在のプロジェクトメンバーが今まで、ユーザコントロールに未経験
だったこともあり、画面上の動作は問題ないのですがexeにしたときや、客先の環境に入れ替えた時に、
「もしかしたら予期しない大変なことが起こるのでは!?!?」
という不安がメンバー内でかなり拭い去れない状況なのです。
(そんなことないよ、実はこんな時はヤバイ、等ありましたらチラッと教えていただけると助かります)


ActiveXコントロールプロジェクトでOCXを作る場合は二つほど注意事項が・・・
客先にリリースしたOCXファイルをなくさないで下さい。これをなくすとOCXだけをバージョンアップしたい時に困ります。
プロジェクトのプロパティのバージョン間の互換性に気をつけてください。リリース後はバイナリ互換にしておかないと、やはりOCXだけをバージョンアップしたい時に困ります。
この二点を守らないと、OCXをビルドしなおした時に、OCXを参照しているプロジェクトを全てビルドしなおす事になります。

標準EXEにユーザーコントロールを追加した場合、ひとつだけ注意事項が・・・
ユーザーコントロールのコンパイルエラーやバグに注意してください。そのユーザーコントロールを参照しているフォームを開けなくなったり、ファイルを保存できなくなったり、プロパティの設定が失われたりします。標準EXEにユーザーコントロールを追加するのではなく、ActiveXコントロールとしてOCXファイルにしておいた方トラブルは少ないように感じます。
ハルシオン
常連さん
会議室デビュー日: 2005/03/29
投稿数: 24
投稿日時: 2006-10-02 16:59
お世話になっております。

引用:


R・田中一郎 さんの書き込み

僕が作ったソフトウェアでは、ユーザーコントロールを使わなかい方が少なかったくらいです。
問題無いですよ。ガンガン使って下さいw




ユーザコントロールって、そんなにポピュラーな機能だったんですね!
確かに便利でお手軽!
知らなかった自分が恥ずかしい…(/ω\)

今後ガンガン使わせて頂きますw

引用:


ocx として独立させた場合は、バージョンの互換性を保つ必要が生じるので、この点だけ注意していただければ・・・




バージョンの互換性…
これは例のDLLヘルという恐ろしい現象が起こるぞ、と言うことでしょうか。

気をつけます!


引用:


甕星 さんの書き込み

ActiveXコントロールプロジェクトでOCXを作る場合は二つほど注意事項が・・・
客先にリリースしたOCXファイルをなくさないで下さい。これをなくすとOCXだけをバージョンアップしたい時に困ります。
プロジェクトのプロパティのバージョン間の互換性に気をつけてください。リリース後はバイナリ互換にしておかないと、やはりOCXだけをバージョンアップしたい時に困ります。
この二点を守らないと、OCXをビルドしなおした時に、OCXを参照しているプロジェクトを全てビルドしなおす事になります。

標準EXEにユーザーコントロールを追加した場合、ひとつだけ注意事項が・・・
ユーザーコントロールのコンパイルエラーやバグに注意してください。そのユーザーコントロールを参照しているフォームを開けなくなったり、ファイルを保存できなくなったり、プロパティの設定が失われたりします。標準EXEにユーザーコントロールを追加するのではなく、ActiveXコントロールとしてOCXファイルにしておいた方トラブルは少ないように感じます。




バ・バイナリ互換…!?バイナリで、互換…。
ちょっと調べてきます。

R・田中一郎 さんも仰っているように、特にOCXを作成する場合は注意が必要なんですね。
あと、標準exeに加えた場合も、気をつけないと困った事になると…
インストーラを作る時など、忘れていると地獄を見そうな予感がします。
しっかり覚えておく事に致します。

気付かないバグでフォーム自体を開けなくなる可能性もあるのですか。
実験の為に作ったユーザコントロールで早速試してみる事にします。



色々と教えて頂きありがとうございます。

なんとなく後半ついて行けていない感じでしたが、教えて頂いたキーワードを元に、これから自分なりに調査いたします。

行き詰まった時はまた質問させて頂くかもしれません。
いつも惜しみなく親切に教えて頂きありがとうございます。

今後とも宜しくお願い致します。


R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-10-03 09:08
おおっ、甕星さんフォローありがとうございました!

引用:

ハルシオンさんの書き込み (2006-10-02 16:59) より:

R・田中一郎 さんも仰っているように、特にOCXを作成する場合は注意が必要なんですね。
あと、標準exeに加えた場合も、気をつけないと困った事になると…


そうですね。もう少し具体的に書きます。

ocx として独立させた場合、そのocxを使って作った exe ファイルが例えば4つあったとします。
ocx の中身を変更した場合、この4つの exe ファイルとの互換性が保てなくなる可能性がでてくるということですね。
この管理がちょっと面倒くさいです。
なので、まだ仕様があやふやだったりバグが潜んでいる可能性があるものは、同じ機能のユーザーコントロールであっても、使用する exe ファイルごとに別々のものを用意するとか、その時点のバージョンをきちんと保存しておくなどの必要があるのです。

それと、あるフォームに貼り付けたユーザーコントロールを、更にその裏で変更したり、いぢりまわす訳ですから当然、様々な危険が潜んでいますw
最悪は、貼り付けたはずのユーザーコントロールがいつの間にか picture ボックに変わっていて設定したプロパティが失われてしまうなどのいう経験は、僕も何度か経験があります。

このため、僕はできるかぎりユーザーコントロールのプロパティ設定を、プロパティウィンドウを使わずコードで書いています。

結局のところ、一度リリースしたユーザーコントロールは、なるべく後から変更しないようにするため、仕様をきちんと決め、十分テストしてから利用しましょう、ということになるのでしょうか。

_________________
R・田中一郎 @ わんくま同盟  -  R.Tanaka.Ichiro’s Blog

[ メッセージ編集済み 編集者: R・田中一郎 編集日時 2006-10-03 09:10 ]
ハルシオン
常連さん
会議室デビュー日: 2005/03/29
投稿数: 24
投稿日時: 2006-10-23 23:27
返信遅れて申し訳ないです。

引用:

最悪は、貼り付けたはずのユーザーコントロールがいつの間にか picture ボックに変わっていて設定したプロパティが失われてしまうなどのいう経験は、僕も何度か経験があります



ええ!!
それってスゴイ大変なことですよね?
なぜテキストボックスがピクチャーボックスに…
もうすこしいじり倒していたらこういったことが起きるのだろうか…

今回のことを期に、コントロールを色々作ってみました。
そして早速exeのバージョン違いで動作しない現象を体験することが出来ました。

ありがとうございます。

最近VB6.0でずっと仕事をしているのですが動作もサクサクですし、実は色んなことが出来ることがわかって楽しいです。

ありがとうございました。
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-10-24 09:26
引用:

ハルシオンさんの書き込み (2006-10-23 23:27) より:

それってスゴイ大変なことですよね?


凹みますねw
しかし、それでもユーザーコントロールの便利さには変えられません。

引用:

ハルシオンさんの書き込み (2006-10-23 23:27) より:

なぜテキストボックスがピクチャーボックスに…


恐らく、これは仕様なのだと思います。
使う側としても、単に消えてしまうよりは置き換えらる方が発見も容易です。

PictureBox になる理由としては、フォームへのドッキングが可能ですし、コントロールとしての基本的な実装も持っていますから、元々存在したコントロールへの置き換えが容易と言う理由だと勝手に思っています^^;

引用:

ハルシオンさんの書き込み (2006-10-23 23:27) より:

最近VB6.0でずっと仕事をしているのですが動作もサクサクですし、実は色んなことが出来ることがわかって楽しいです。


.Net で開発してから改めて VB6 に戻ると、これはこれで良い言語だったんだな、と改めて思うことがありますね。
_________________
R・田中一郎 -  R.Tanaka.Ichiro’s Blog

スキルアップ/キャリアアップ(JOB@IT)