Solved

Referring to other classes in the same DLL

Posted on 1998-08-05
4
142 Views
Last Modified: 2010-05-03
Hello,
I am a VB student with the following problem:

I have a standard project with a standard startup module (StartModule).
I have a DLL(DLLA) with two classes (ClassA and ClassB).

StartModule has instantiated examples of both ClassA and ClassB.  I want ClassA to be able to
call ClassB via the instance of ClassB started by StartModule.

I have got this far:

STARTMODULE:
Declarations:
public ExampleA as new ClassA

Main:
set exampleA.objparent = me

DLLA:ClassA (and ClassB)
Declarations:
public objparent as ?????????? what

I can't say "public objparent as StartModule" because VB wont recognise that.  StartModule is not a class and it is in a separate project.

(I was thinking of referring to ClassB from ClassA as "Startmodule.ClassB")

In essence I am trying to get one class in a DLL to call another class in the same DLL.  But as they are separate instances I am not sure how to do it.

I would be most grateful for a solution with code examples.

Thanks,
TrimTrom
0
Comment
Question by:trimtrom
  • 3
4 Comments
 
LVL 2

Accepted Solution

by:
percosolator earned 100 total points
ID: 1468032
ok.  here is sample code to show you how to pass instances about.

------------------------------------------------------------


Option Explicit


'Start Module
Public ExampleA As New ClassA
Public ExampleB As New ClassB

Public Sub main()


       
    'Set ExampleA's ClassB object to the Start Module's Instance
    Set ExampleA.MyClassB = ExampleB
   
    'set example B's Message property
    ExampleB.Message = "This Message is Available to Both Sub Main," & _
                        "And the Instance of ClassA"

    'display ExampleB's Message
    ExampleB.PrintMessage
   
    'show that ExampleA is using the same instance of ExampleB
    'by displaying ExampleA's instance of ClassB's message
    ExampleA.ShowClassBMessage
   

End Sub


-------------------------------------------------------------


'Class A

Option Explicit

Dim objClassB As ClassB

Public Property Set MyClassB(C As ClassB)
    Set objClassB = C
End Property

Public Sub ShowClassBMessage()

    objClassB.PrintMessage
   
End Sub


----------------------------------------------


'ClassB

Option Explicit

Dim strMessage As String
Public Property Let Message(S As String)

    strMessage = S
   
End Property
Public Sub PrintMessage()

        MsgBox strMessage
       
End Sub


----------------------------------------


0
 

Author Comment

by:trimtrom
ID: 1468033
OK Thanks very much.  A very clear and concise answer.
0
 
LVL 2

Expert Comment

by:percosolator
ID: 1468034
you are welcome.
0
 
LVL 2

Expert Comment

by:percosolator
ID: 1468035
I occasionally have brief moments of lucidity. <g>


Anytime...
0

Featured Post

Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Introduction I needed to skip over some file processing within a For...Next loop in some old production code and wished that VB (classic) had a statement that would drop down to the end of the current iteration, bypassing the statements that were c…
The debugging module of the VB 6 IDE can be accessed by way of the Debug menu item. That menu item can normally be found in the IDE's main menu line as shown in this picture.   There is also a companion Debug Toolbar that looks like the followin…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

776 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question