KONDO-NETいい掲示板 By KLEB Ver 0.03

KLEB KONDO-NETいい掲示板

メンバーリスト 会員登録 ログイン
いい掲示板 - 掲示板一覧 - ソフト開発塾
ソフト開発(VB VC Perl PHPなど)に、関わるQAなど
現在、作成中!!
V0.02になって、この板からも投稿・返信できます。
なんでも掲示板より、使いやすくなったと思っています。

[173] 題名:Re[172]:標準EXEからActiveXに変更
オブジェクト指向を実現するためにクラスがある考えてください。
オブジェクト指向の基本概念を理解していてクラスを、理解しているとなるのです。
−−−−
ActiveXは、カプセル化です。
−−−−
位置口が1つであるActiveX、プロパティなしでメソッドが1つのみを作ることは可能です。
−−−−
>この場合のクラスの中の関数って、私がお話していたフォーム
>モジュールの中のイベントをクラスの中で関数化するということ
>ではいけないのでしょうか?
「フォームモジュールの中のイベントをクラスの中で関数化」って言ったに何?
VBの場合、フォームは、モジュールよりクラス(オブジェクト)でしょう。
だって、フォームに、プロパティやメソッドを追加できるでしょう?
クラス階層は、どう考えているのでしょうか?
−−−−
2・3年前、作りかけて、途中で制作を中断している
http://www.kondo-net.gr.jp/softca/dtp/
の、ソースを見てみますか?
ActiveX DLLだけど。。。。
掲示板投稿時のメールアドレスに、お送りしますが。。。。
投稿日:2006/04/23 21:30 投稿者:近藤  返信 引用返信 修正 削除

[172] 題名:標準EXEからActiveXに変更
こんにちは。

>いったい何がわかっていないのだろう?
私が思っているのは、
「クラスモジュールが主体になっていて、フォームモジュールから
クラスを宣言して使う作りがActiveX」
です。

クラスモジュールが主体とは、クラスモジュールに関数などを書き
込んでいるというものです。
(これは、教えて頂いたサンプルを以前見ていて思いつきました)

このやり方が間違っているのかどうか判らないため、今回投稿させて
頂きました。

私が上げたサンプルソースでは、
・End
・Form1.Show , Me
・Form2.Show , Me
・ADD_DATA
あたりをクラスモジュールに書き込んで呼び出すように変更すれば
可能かなと思っていました。

すみません。
間違っていたら、ご指摘下さい。

よく判らないのですが、サンプルのようにクラスモジュールを一つ
作ってプロジェクトをスタートアップに設定し、フォームモジュール
からクラスの中の関数(?)を指定すれば上手くいくのでしょうか?

この場合のクラスの中の関数って、私がお話していたフォーム
モジュールの中のイベントをクラスの中で関数化するということ
ではいけないのでしょうか?

すみません。
私自身何が何だか解らなくなってきました。

結局のところ、どのようにすれば良いのでしょうか?
投稿日:2006/04/10 19:00 投稿者:なな  返信 引用返信 修正 削除

[171] 題名:Re[170]:標準EXEからActiveXに変更
[168]のソースだと、
http://www.kondo-net.gr.jp/softca/activexdll.htm
http://www.kondo-net.gr.jp/softca/activexexe.htm
に、なります。

いったい何がわかっていないのだろう?
投稿日:2006/04/09 20:32 投稿者:近藤  返信 引用返信 修正 削除

[170] 題名:標準EXEからActiveXに変更
こんにちは。

>このサンプルソースは、
>>メニュー画面も含めて標準EXEを沢山作って、メニュー画面とDDE
>>通信をするような自作アプリを作成しました。
>>ActiveXにする目的は、
>>メニュー以外の標準EXEをActiveXにして、メニューから各ActiveX
>>を呼び出すようにする
>>というものです。
>を、満足していませんね?
DDE通信と云っても、メイン画面が終了するときにサブ画面が終了する
ようにしているだけの単純な機能な為とソース自体が膨大になる為省略
しました。

何の説明もなくコードを記述してしまい、申し訳ございませんでした。
投稿日:2006/04/07 09:14 投稿者:なな  返信 引用返信 修正 削除

[169] 題名:Re[168]:標準EXEからActiveXに変更
このサンプルソースは、
>メニュー画面も含めて標準EXEを沢山作って、メニュー画面とDDE
>通信をするような自作アプリを作成しました。
>ActiveXにする目的は、
>メニュー以外の標準EXEをActiveXにして、メニューから各ActiveX
>を呼び出すようにする
>というものです。
を、満足していませんね?


投稿日:2006/04/06 09:07 投稿者:近藤  返信 引用返信 修正 削除

[168] 題名:標準EXEからActiveXに変更
こんにちは。
折角教えて頂けるというのに、サンプルソースをどう作れば良いか
悩んじゃってしまい、今日になってしまいました。
(結局、すごく簡単なものになってしまいましたが...)

サンプルソース
(実際はDBにデータを追加しています)

メニュー画面(フォームジュール)
Option Explicit
Private Sub cmdEnd_Click()
End
End Sub
Private Sub cmdForm1_Click()
Form1.Show , Me
End Sub
Private Sub cmdForm2_Click()
Form2.Show , Me
End Sub

サブ1(フォームモジュール)
Option Explicit

Private strMainData As String
Private Function ADD_DATA(ByVal sData As String) As Boolean

On Error GoTo Error_ADD_DATA

ADD_DATA = False
If Len(strMainData) = 0 Then
strMainData = sData
Else
strMainData = strMainData & vbCrLf & sData
End If
ADD_DATA = True

Exit Function

Error_ADD_DATA:
Call MsgBox(Err.Description)

End Function
Private Sub cmdAdd_Click()
If ADD_DATA(Text1.Text) Then
frmMenu.Label1 = strMainData
End If
End Sub
Private Sub cmdClose_Click()
Unload Me
End Sub
Private Sub Form_Load()
strMainData = frmMenu.Label1.Caption
End Sub

サブ2(フォームモジュール)
Option Explicit

Private Sub cmdClose_Click()
Unload Me
End Sub
Private Sub cmdDelete_Click()
Dim strTemp As String
If DEL_DATA(strTemp) Then
frmMenu.Label1.Caption = strTemp
End If
End Sub

標準モジュール
Option Explicit

Public Function DEL_DATA(ByRef sData As String) As Boolean

On Error GoTo Error_DEL_DATA

DEL_DATA = False
sData = ""
DEL_DATA = True

Exit Function

Error_DEL_DATA:
Call MsgBox(Err.Description)

End Function

以上、宜しくお願いします。
投稿日:2006/04/03 14:41 投稿者:なな  返信 引用返信 修正 削除

[167] 題名:Re[166]:Re3:標準EXEからActiveXに変更
サンプルコードを作成して頂けないでしょうか?
現在の方法で
メニュー、サブ1、サブ2
の標準EXE
これを、サブ1をActiveX DLLに、サブ2をActiveX EXE
に、変更してみますが。。。。


投稿日:2006/03/27 22:38 投稿者:近藤  返信 引用返信 修正 削除

[166] 題名:Re3:標準EXEからActiveXに変更
こんにちは。

>呼び出し側と呼び出される(ActiveX)側の区別をして、説明して頂けないと
>内容がよくわからないですねぇ。
今回初めてActiveXを作ります。

通常の標準EXEは、関数などをフォームモジュールや標準モジュールに書き込み
フォームモジュールから関数を呼び出すような仕組みになっていると思います。
(フォームモジュールが主体)

ActiveXは、フォームモジュールに通常書いていた関数をクラスモジュールに
書き込み、フォームモジュールからクラスを呼び出しクラス内の関数を使用
するようなものになっていると思っていました。
(クラスモジュールが主体)

そのため、先日のような(1)〜(3)の書き方をしました。
間違っている場合、ご指摘お願いします。

>また、「この方法」って、1)2)は、何の意味があるのでしょう?
フォームモジュール内の関数は、そのままでは使えないと判断したからです。
すみません。
あまり根拠はありません。

標準EXEからActiveXに変換する場合、通常どのような方法を取るのでしょうか?

宜しくお願いします。
投稿日:2006/03/27 16:23 投稿者:なな  返信 引用返信 修正 削除

[165] 題名:Re[164]:Re2:標準EXEからActiveXに変更
>こんにちは。
>
>>クラスは、理解(使用)していますか?
>>クラスモジュールを、理解(使用)していない人の場合、(制作は)無理でしょう。
>この自作アプリでは使用していませんが、クラス自体は理解していると思います。
>
>合っているかどうか判らなかったので、前回投稿内容に記述しませんでしたが...。
>
>標準EXEをActiveXに変更する場合、
>(1)フォームモジュールに書き込んだコントロールのイベントは、クラスモジュール
>にてイベントを作成しておき、フォームからクラス内のイベントを呼ぶようにする。
>(2)フォームモジュール内のPrivate関数は、標準モジュールにPublic関数として
>書き込む。
>(3)ActiveX.DLLやActiveX.EXEでコンパイルする。
>と考えていました。
>
>この方法では無理なのでしょうか?
>それとも、他に何かより良い方法があったりするのでしょうか?
>
>宜しくお願いします。
呼び出し側と呼び出される(ActiveX)側の区別をして、説明して頂けないと内容がよくわからないですねぇ。
また、「この方法」って、1)2)は、何の意味があるのでしょう?


投稿日:2006/03/26 10:36 投稿者:近藤  返信 引用返信 修正 削除

[164] 題名:Re2:標準EXEからActiveXに変更
こんにちは。

>クラスは、理解(使用)していますか?
>クラスモジュールを、理解(使用)していない人の場合、(制作は)無理でしょう。
この自作アプリでは使用していませんが、クラス自体は理解していると思います。

合っているかどうか判らなかったので、前回投稿内容に記述しませんでしたが...。

標準EXEをActiveXに変更する場合、
(1)フォームモジュールに書き込んだコントロールのイベントは、クラスモジュール
にてイベントを作成しておき、フォームからクラス内のイベントを呼ぶようにする。
(2)フォームモジュール内のPrivate関数は、標準モジュールにPublic関数として
書き込む。
(3)ActiveX.DLLやActiveX.EXEでコンパイルする。
と考えていました。

この方法では無理なのでしょうか?
それとも、他に何かより良い方法があったりするのでしょうか?

宜しくお願いします。
投稿日:2006/03/24 14:19 投稿者:なな  返信 引用返信 修正 削除
---KONDO-NET.GR.JP---