2012-09-26 4 views
7

Jestem tylko nowicjuszem i próbowałem zrobić prosty program w Visual Basic 6. Kod jest prawie równoważny z tym w podręczniku. Miał to być rodzaj programu do malowania. Co zaskakujące, nie można go było skompilować z błędem podanym w tytule tego pytania. Jest to kod:deklaracja procedury nie pasuje do opisu zdarzenia lub procedury o tej samej nazwie

Option Explicit 

Dim Col As Long 

Private Sub Form_Load() 
    AutoRedraw = True 
    BackColor = vbWhite 
    Col = vbBlack 
    DrawWidth = 3 
End Sub 

Private Sub Command1_Click() 
    CommonDialog1.ShowOpen 
    Form1.Picture = LoadPicture(CommonDialog1.FileName) 
End Sub 

Private Sub Command2_Click() 
    CommonDialog1.ShowSave 
    SavePicture Image, CommonDialog1.FileName 
End Sub 

Private Sub Command3_Click() 
    CommonDialog1.ShowColor 
    Col = CommonDialog1.Color 
End Sub 

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) 
    PSet (X, Y), Col 
End Sub 

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) 
    Select Case Button.Key 
    Case "Line1" 
     DrawWidth = 3 
    Case "Line2" 
     DrawWidth = 20 
    End Select 
End Sub 

awarii aplikacji na następującej linii:

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) 

z błędem:

procedure declaration does not match description of event or procedure having the same name

Odpowiedz

20

Problemem jest tutaj:

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) 

Ok, ponieważ kodujesz w VB6, nauczysz się kilku sztuczek w podręczniku VB6. Tymczasowo zmień nazwę metody na coś innego, jak qqToolbar_ButtonClick, a następnie przejdź do projektanta i kliknij przycisk na pasku narzędzi, aby ponownie wygenerować zdarzenie w kodzie.

W przypadku, gdy podpis był błędnie wpisany, zostanie poprawnie wygenerowany ponownie przez projektanta i może pojawić się problem.

Kolejna kontrola polega na sprawdzeniu, czy ToolBar1 został dodany do tablicy kontrolnej? W takim przypadku podpis metody musi wyglądać następująco:

Private Sub Toolbar1_ButtonClick(ByVal Index as Integer, ByVal Button As MSComctlLib.Button) 

Mam nadzieję, że jedno z nich pomoże rozwiązać problem.

+0

Dziękuję bardzo za tak szybką odpowiedź !!! Pierwsza twoja rada pomogła mi przezwyciężyć ten problem! – user1700848

+0

Tablica kontrolna była moim problemem, dziękuję –

Powiązane problemy