Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Dynamisk dimning av klass

Postades av 2001-02-04 12:15:00 - Frans Englich, i forum activeX, Tråden har 1 Kommentarer och lästs av 997 personer

Jag har en select case sats, och vid de olika alternativen ska det jobbas mot olika klasser. Jag har bara lyckats lösa detta på ett klumpigt vis:

<code>select case Variabel
case "laddaclass1"
Dim vclass1 as class1
set vclass1 = new class1
vclass1.minmetod 'osv
...

case "laddaclass2"
Dim vclass2 as class2
set vclass2 = new class2
vclass1.minmetod 'osv
...
end select
</code>
Detta är ju inte särskilt vacker eller hur?
Jag skulle lösa det på detta viset(om det nu går):
<code>
Dim vClass as Class

select case variabel
case "laddaclass1"
set vclass = new class1
vclass.mymethod 'osv
case "laddaclass2"
set vclass = new class2
vclass.mymethod 'osv
end select
</code>

Det ger nog ingen skillnad prestanda mässigt men det anra sättet vore så mycket snyggare och mindre att skriva..

/Cyth


Svara

Sv: Dynamisk dimning av klass

Postades av 2001-02-04 13:15:00 - Andreas Hillqvist

Det kanske hjälper att implementera et gemensamt gränssnitt(Interface).
Här kommer litet exempel...

'Class: ICommonInterface
Option Explicit

Public Sub MinMetod(Parameter1 As Long, Parameter2 As Long)

End Sub

'Class: Class1
Option Explicit

Implements ICommonInterface

Private Sub ICommonInterface_MinMetod(Parameter1 As Long, Parameter2 As Long)
MinMetod Parameter1, Parameter2
End Sub

Public Sub MinMetod(Parameter1 As Long, Parameter2 As Long)
Parameter2 = Parameter1
End Sub

'Class: Class2
Option Explicit

Implements ICommonInterface

Private Sub ICommonInterface_MinMetod(Parameter1 As Long, Parameter2 As Long)
MinMetod Parameter1, Parameter2
End Sub

Public Sub MinMetod(Parameter1 As Long, Parameter2 As Long)
Parameter1 = Parameter2
End Sub

'Exempel på en funktion för att skapa klasser
Public Function NewClass(ClassName As String) As ICommonInterface
Select Case ClassName
Case "Class1"
Set NewClass = New Class1
Case "Class2"
Set NewClass = New Class2
End Select
End Function

'Exempel på en funktion som använder det gemensamma gränssnittet
Public Sub Test1(ClassName As String, Parameter1 As Long, Parameter2 As Long)
Dim vClass As ICommonInterface
Set vClass = NewClass(ClassName)
vClass.MinMetod Parameter1, Parameter2
End Sub

'Exempel på en funktion som identifierar vilken klass det är i variabeln
Public Function GetName(vClass As ICommonInterface) As String
If TypeOf vClass Is Class1 Then
GetName = "Class1"
ElseIf TypeOf vClass Is Class2 Then
GetName = "Class1"
End If
End Function


Svara

Nyligen

  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino
  • 04:14 Vad finns det för kratomalternativ
  • 14:16 Indian online casino
  • 14:15 Indian online casino
  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 865
27 962
271 767
736
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies