Toon posts:

[VB6] Werken met meerdere modules *

Pagina: 1
Acties:
  • 213 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Beste tweakers,

Ik schrijf een programma die het aantal bouten berekent van serre. Vroeger werkte ik altijd met 1 module, maar nu ik meerdere en meerdere formules heb, zou ik het overzichtelijker willen maken door gebruik te maken met meerdere modules. Nu heeft hij wel volgende foutmelding.

Ambiguous name: berekenen,bij Call berekenen in Form2

Verenvoudigt voorgesteld:
Form1:
Bevat twee textboxen: Text1 en Text2

Form2:
Bevat twee textboxen: Text1 en Text2 en geeft uitkomst weer
PHP:
1
2
3
4
5
Private Sub Command1_Click()
Call berekenen
Text1.Text = Module1.cat(2)
Text2.Text = Module2.cat(1)
End Sub


Module1:
PHP:
1
2
3
4
5
6
7
Option Explicit

Public cat(0 To 1000) As Single

Sub berekenen()
cat(2) = Val(Form1.Text1)
End Sub


Module2:
PHP:
1
2
3
4
5
6
7
Option Explicit

Public cat(0 To 1000) As Single

Sub berekenen()
cat(1) = Val(Form1.Text2)
End sub


Foutmelding: Ambiguous name: berekenen, bij Call berekenen in Form2

Kan iemand mij helpen?

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Public geeft aan dat het object de Array die je maakt beschikbaar is in de hele scope van het programma.

Gebruik dus Private om je variabelen te declareren.

Oops! Google Chrome could not find www.rijks%20museum.nl


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Gebruik van modules scheidt alleen brokken code naar diverse files. Ze krijgen geen eigen namespace en dat betekent dus dat als je zowel module1 als module2 gebruikt, er in dezelfde namespace 2x de functie berekenen voorkomt.

En gebruik de [ code=vb] tags (minus de spatie na [) om je code weer te geven. php is een andere taal.

Verwijderd

Topicstarter
P_de_B schreef op 24 februari 2004 @ 13:08:
Public geeft aan dat het object de Array die je maakt beschikbaar is in de hele scope van het programma.

Gebruik dus Private om je variabelen te declareren.
Ik heb de wijzigingen doorgevoerd, maar jammer genoeg blijft de foutmelding.

Verwijderd

Topicstarter
bigbeng schreef op 24 februari 2004 @ 13:09:
Gebruik van modules scheidt alleen brokken code naar diverse files. Ze krijgen geen eigen namespace en dat betekent dus dat als je zowel module1 als module2 gebruikt, er in dezelfde namespace 2x de functie berekenen voorkomt.
Hoe kan ik dit dan oplossen?

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
kleine verbetering, ze krijgen wel een eigen namespace, maar dan moet je die wel meegeven.

Je aanroep moet worden bv Call module1.berekenen()

Verwijderd

Topicstarter
bigbeng schreef op 24 februari 2004 @ 13:13:
Je aanroep moet worden bv Call module1.berekenen()
Stel je gebruikt een cat van module1 in module2, moet je dan bij
Sub berekenen (in module2) verwijzen naar de module 1

Probleem is dat hij een foutmelding geeft bij Text1.Text = Module1.cat(2), niet in dat voorbeeld maar in mijn groot programma

[ Voor 19% gewijzigd door Verwijderd op 24-02-2004 13:24 ]


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Verwijderd schreef op 24 februari 2004 @ 13:20:
[...]

Stel je gebruikt een cat van module1 in module2, moet je dan bij
Sub berekenen (in module2) verwijzen naar de module 1

Probleem is dat hij een foutmelding geeft bij Text1.Text = Module1.cat(2), niet in dat voorbeeld maar in mijn groot programma
Ik kan alleen antwoord geven op basis van je code en in jouw voorbeeld komen zowel in module1 als in module2 een sub berekenen voor. Je kunt in je form dan nooit een call doen naar berekenen, maar je moet dan de modulenaam erbij plaatsen.

Ook de foutmelding die je plaatste bevestigt dat.

Verwijderd

Topicstarter
O, prachtig het werkt toch. Mijn module's stonden nog op private. Hartelijk dank BIGBENG Topic mag gesloten worden.

Groeten

[ Voor 7% gewijzigd door Verwijderd op 24-02-2004 13:33 ]


Verwijderd

Topicstarter
k

[ Voor 100% gewijzigd door Verwijderd op 24-02-2004 13:32 ]

Pagina: 1