アプリ版:「スタンプのみでお礼する」機能のリリースについて

まったくの初心者です。初歩的な質問で申し訳ありません。
カラーのところでクリックが実行できません。
なぜなのかよくわかりません。お暇なときご教授下さい。
 そしてもう一つ質問ですが以下のコードを追加したいの
ですがどこに挿入すればいいのですか。
→private sub image_click()
ccolor = 7
end sub ここまでのコードを追加したいです。


ーーーーーーーーーーーーーーーーーーーーーーーーーー
Private Sub Command1_Click()
Form1.Cls
End Sub

Private Sub Command2_Click()
End
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Form1.DrawWidth = 3
If Button = 1 Then
PSet (X, Y), QBColor(ccolor)
End If
End Sub

Private Sub Label1_Click()
cccolor = 14
End Sub
Private Sub lavel2_click()
cccolor = 0
End Sub
Private Sub label3_click()
ccolor = 9
End Sub
Private Sub label4_click()
ccolor = 12
End Sub
Private Sub label5_click()
ccolor = 10
End Sub

A 回答 (3件)

#2です。

1も2も分からないといった状況ということですね。

>コードと作ったオブジェクトをどうつなぐのかがわかりません。

まずプログラムを実行した時、何かしらの[アクション]により実行される部分の
最小単位を[プロシージャ]と呼びます。
例えば[Private Sub Label1_Click()]から[End Sub]までの部分です。
意味としては、[Label1]というオブジェクトが[Click]されたら、この間にある
コードを実行しなさい。という命令です。

ここで注意しなければならないのは、[Label1]という名前です。
[Label1]というのは[オブジェクトを識別する名前]であり、太郎さんなのか次郎
さんなのか、という区別する名前です。

例えば[ボタン]オブジェクトに[Label1]という名前を付けることも出来ますし、
[ラベル]オブジェクトに[List1]という名前をを付けることも出来ます。これはち
ょうど、犬に[タマ]、猫に[ポチ]という名前を付けることに良く似ています。

話を戻しまして、[Label]オブジェクトをフォーム上に配置すると標準で[Label1]
…[Label2]…[Label3]、という風に名前が付けられます。この名前は通常[重複]
してはいけませんが、VB6の場合はオブジェクト配列として扱う事が出来ます。
しかしここでは深く語りません。

この[オブジェクトを識別する名前]を理解したところで、本題です。

>コードと作ったオブジェクトをどうつなぐのかがわかりません。
>カラーのところでクリックが実行できません。

ということなので、配置したオブジェクトとコードの名前が一致していないので
はないでしょうか?

例えば、プロパテイの[オブジェクト名]が[OBJ]という名前のオブジェクトを
クリックアクション時に実行する[プロシージャ]は[Private Sub OBJ_Click()]
とする必要があります。

>コードをどこに挿入すればいいのですか?

基本的に順番はありませんのでどこに記述してもかまいませんが、一点だけ注意が必要です。

[プロシージャ]はネストすることは出来ませんので、例えば
[Private Sub Label1_Click()]から[End Sub]までの間の部分には記述出来ません。

お分かり頂けましたでしょうか?
    • good
    • 0
この回答へのお礼

二番さん、詳しい説明有り難うございました。一番さんにも感謝です。ようやくつかめてきました。また質問するときは宜しくお願い致します。

お礼日時:2005/01/21 17:13

少しスマートに手直し(labelは全てimage1の配列に,Command1も配列)



Option Explicit
Dim ccolor As Long

Private Sub Form_load()
Form1.DrawWidth = 2
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Static X2, Y2 As Single
If Button = 1 Then Line (X, Y)-(X2, Y2), QBColor(ccolor)
X2 = X: Y2 = Y
End Sub

Private Sub image1_Click(Index As Integer)
Select Case Index
Case 0: ccolor = 0
Case 1: ccolor = 7
Case 2: ccolor = 9
Case 3: ccolor = 10
Case 4: ccolor = 12
Case 5: ccolor = 14
End Select
End Sub

Private Sub Command1_Click(Index As Integer)
Select Case Index
Case 0: Form1.Cls
Case 1: Unload Me
End Select
End Sub

この回答への補足

お返事有り難うございます。一番さんの補足に書いた通り
のことで今悩んでおります。コードと作ったオブジェクトをどうつなぐのかがわかりません。実行をしても黒いカラーだけがでてしまいます。お時間があるときご存知でしたらアドバイス下さい。

補足日時:2005/01/21 11:58
    • good
    • 0

質問がわかりづらいです。


何となく想像はつきますが...

>カラーのところでクリックが実行できません。

カラーのところって?
Labelxx_Clickのところでしょうか?

実行できませんとは?
???という動作を期待しているのに、
???なってしまうのでしょう?

cccolor と ccolor の違いと型は?
単に転記ミス?(lavel2_clickってなってるし...)

余談1
>Private Sub Command2_Click()
>End
>End Sub

Endは使わない方が良いです。
終わらせたいなら、Unload Meにしましょう。

余談2
私の場合は、ラベルはコントロール配列にして...
Private Sub Label1_Click(Index as Integer)
Select Case Index
case 0: cccolor = 14
case 1: cccolor = 0



End Select
End Sub

この回答への補足

お返事有り難うございます。ご指摘されたところを手直ししました。ソースを記述しなおしたものと+プロパティウィンドウをさわりながらつくったオブジェクトを実行してもできませんでした。アドバイス、お時間があるとき下さい。

補足日時:2005/01/21 11:49
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!