VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2005/01/11(Tue) 13:53
投稿者緋桜
Eメール
URL
タイトルIndex値の受け渡しについて(PopUp,API使用)

まず一つのフォームにLbl_SetTemplateFolderという名前のラベルがあり、それは
配列(0 to 4)の計5つ存在します。

Private Sub Lbl_SetTemplateFolder_MouseUp(Index As Integer, _
                                          Button As Integer, _
                                          Shift As Integer, _
                                          x As Single, _
                                          y As Single)
'ラベルをクリックした際の処理

  '左クリックを制御
    If Button = vbLeftButton Then
        If Lbl_SetTemplateFolder(Index).Caption = vbNullString Then
        Else
          '動作ファイル名をフルパスで表示する
            MsgBox "動作ファイルには現在、" & vbCrLf & vbCrLf & _
                   " フォルダ名:" & _
                   Lbl_SetTemplateFolder(Index).Caption & vbCrLf & _
                   "が読み込まれています", _
                   vbOKOnly + vbInformation, "動作ファイル"
        End If
  '右クリックを制御
    ElseIf Button = vbRightButton Then
      '「フォルダ変更」のポップアップを表示する
        MainForm.PopupMenu MainForm.Mnu_PopFolder
    End If

End Sub

Private Sub Mnu_ChangeFolder_Click()
'「フォルダ変更」のポップアップをクリックした際の処理

  Dim StrFolder     As String

 'SHBrowseForFolderのAPIを使用しフォルダのパスを返す
 'ShowFolder Functionは標準モジュールに格納されています。
    StrFolder = ShowFolder

    If StrFolder = vbNullString Then
      'キャンセルが押されたので何も処理は行わない
    Else
      'ラベルの中身を書き換える
        Lbl_SetTemplateFolder(0).Caption = StrFolder
    End If

End Sub

上記コードでは各ラベルをクリックした時は、配列の何番をクリックしたのかをIndexで判定できます

が、その後選択したフォルダ名を書き込む際に上記では(0)と打っていますが、ここに
Index値を入れておかねば意味ないのです。
どうやってIndex値の受け渡しが出来るのでしょうか?
MouseUpの時点でIndex値をPublic変数に叩き込んでおけばいいのですが、
部の方針でPublic変数使用禁止なので、くだらないことで困っています。
どうしても受け渡しが不可能ならば許可を得てPublic変数を使いますが、
可能か不可能かだけでも解れば幸いです。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -