tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルカスタムコントロールで配列の使い方
記事No14130
投稿日: 2009/10/03(Sat) 16:06
投稿者けいま
いつも お世話になっています。ありがとうございます。
開発環境は VB6+SP6 WindowsXP or Vista です。

複数のボタンを配列にして配置したOCXを 作成しております。
ActivXコントロールインターフェースウィザードにおいて
ボタンをマッピングの設定を行っていますが
配列としてカスタムメンバに登録することは 可能なのでしょうか?

現在は 一つ一つをカスタムメンバとして登録してマッピングしております。
このOCXを使ったフォームにおいては もちろん配列として使えるわけもなく
一個のボタンごとにコードしている状態です。
ocxコードでは、
Command1_Clickイベントで クリックされたボタンの  RaiseEventを indexにより判定して 処理をさせています。

Private Sub Command1_Click(Index As Integer)
    Select Case Index
        Case 2: RaiseEvent ccc2
        Case 1: RaiseEvent ccc1
        Case 0: RaiseEvent ccc0
    End Select
End Sub


それから 表題とは関係なくなりますが
OCXをバージョンアップ後 このOCXをコンポーネントで指定しているプロジェクトを開くと 読み込み中のエラーが発生します。
コンポーネント一覧を見ると チェックが外れてしまっています。
フォームに再度 このOCXを作成し直しになります。
これの 対処の方法あるようでしたら教えていただけないでしょうか。

以上 二つの質問になりましたが よろしくお願いいたします。

[ツリー表示へ]
タイトルRe: カスタムコントロールで配列の使い方
記事No14131
投稿日: 2009/10/04(Sun) 12:21
投稿者魔界の仮面弁士
> Private Sub Command1_Click(Index As Integer)
>     Select Case Index
>         Case 2: RaiseEvent ccc2
>         Case 1: RaiseEvent ccc1
>         Case 0: RaiseEvent ccc0
>     End Select
> End Sub
それでも良いですが、引数付きイベントにして
 RaiseEvent ccc(Index)
とした方が扱いやすいかも。

> OCXをバージョンアップ後 このOCXをコンポーネントで指定しているプロジェクトを開くと 読み込み中のエラーが発生します。
2 回目以降は、以前作った ocx をベースにして「バイナリ互換」でコンパイルしてください。
http://support.microsoft.com/kb/161137/ja

[ツリー表示へ]
タイトルRe^2: カスタムコントロールで配列の使い方
記事No14132
投稿日: 2009/10/04(Sun) 16:50
投稿者けいま
魔界の仮面弁士様 ありがとうございました。

> それでも良いですが、引数付きイベントにして
>  RaiseEvent ccc(Index)
> とした方が扱いやすいかも。
その ccc をどのようにActivXコントロールインターフェースウィザードで 設定するのでしょうか?
ウィザードのマッピングでは 配列の指定ができないようです。

> 2 回目以降は、以前作った ocx をベースにして「バイナリ互換」でコンパイルしてください。
> http://support.microsoft.com/kb/161137/ja
確認いたしました。OKでした。

[ツリー表示へ]
タイトルRe^3: カスタムコントロールで配列の使い方
記事No14133
投稿日: 2009/10/05(Mon) 15:34
投稿者魔界の仮面弁士
> その ccc をどのようにActivXコントロールインターフェースウィザードで 設定するのでしょうか?
> ウィザードのマッピングでは 配列の指定ができないようです。

1. UserControl を追加。(Name = "UserControl1")
2. そこに Command1(0〜2) を貼りつけ。
3. ActiveX コントロール インターフェイス ウィザード起動。
4. カスタムメンバの追加。名前 = "ccc"、型 = "イベント"。
5. 属性の設定。パブリック名 = "ccc"、引数 = "ByVal Index As Integer"。
6. 以下のコード追加。

Private Sub Command1_Click(Index As Integer)
    RaiseEvent ccc(Index)
End Sub

[ツリー表示へ]
タイトル(お礼)
記事No14146
投稿日: 2009/10/09(Fri) 16:05
投稿者けいま
返事おくれて申し訳ありませんでした。
プロパティなど まだまだ手を入れるところがあります。
こちらのヒントを参考に 自分でやってみます。

魔界の仮面弁士様 色々とありがとうございました。
今後ともよろしくお願いします。

[ツリー表示へ]