Avatar billede shjdsi Nybegynder
15. december 2003 - 14:01 Der er 13 kommentarer og
1 løsning

global, public hvordan ska det gøres i en class

hej!

Jeg har følgende i min class

Public Property Let databaseServer(ByVal DbServer As Variant)
db_serverNane = DbServer
End Property


Public Function dbqueuery(login As String)
her i denne function vil jeg bruge db_serverNane

end function


i toppen af klassen har jeg forsøgt at sætte den først private så public, men selvom jeg initalisere den i property let kommer den ikke med i funktionen. Jeg ville jo helst holde private til klassen, men ved ikke lige hvordan man bruger værdier i funktioner hentet fra property
Avatar billede slo Nybegynder
15. december 2003 - 14:10 #1
Øhhh - hvad er det du har sat Public / Private i toppen af din klasse?
Er det db_serverNane ??
Hvis ja, så har du formentlig også brug for en Property Get til at læse servernavnet. Jeg kan godt gi' dig et eksempel på hvordan man kan bruge Property Let og Get sammen.
Avatar billede shjdsi Nybegynder
15. december 2003 - 14:14 #2
Det ville jeg blive møj glad for! har ikke nogen bøger lige hvor jeg sidder nu.

det er db_serverName
jeg vil bruge, jeg har sat den således i general/declarations i klassen.

Public db_serverName As String
Avatar billede slo Nybegynder
15. december 2003 - 14:28 #3
Her et eksempel der forhåbentlig forklarer forskellen på Let og Get. Jeg har ikke kigget nærmere på dit eksempel, men du burde kunne tilpasse det ved at tilføje en Property Get.
Jeg starter altid med at definere en lokal variabel i toppen af klassen:

Dim LokalVar as Double

'''Herunder kommer Let og Get. Du skal tænke på Let som venstresiden af et
'''argument, dvs. at i Let gi'r du en variabel en værdi.
'''Get skal du tænke på som højresiden, dvs. du kan kun læse variablens værdi.

Property Let Navn(ind as Double)
  LokalVar = ind
''Evt. Anden kode der skal udføres ifbm med at der tildeles en værdi til Navn
End Property

Property Get Navn() as Double
  Navn = LokalVar
End Property
Avatar billede sjh Nybegynder
15. december 2003 - 15:04 #4
'---------------------------- Class1 ----------------------------
' Hvis du laver en ActiveX.exe eller ActiveX.dll
' Skal Properties - Clase1 Instancing være 5 - MultiUse
'----------------------------------------------------------------
Option Explicit

Private m_dbqueuery As String
Private m_databaseServer As String

Public Property Get dbqueuery() As String
  dbqueuery = m_dbqueuery
End Property

Public Property Let dbqueuery(ByVal strValue As String)
  m_dbqueuery = strValue
End Property

Public Property Get databaseServer() As String
  databaseServer = m_databaseServer
End Property

Public Property Let databaseServer(ByVal strValue As String)
  m_databaseServer = strValue
End Property
'---------------------------- Class1 ----------------------------
Avatar billede slo Nybegynder
15. december 2003 - 15:06 #5
sjh -> Exactly my point :-)
Avatar billede sjh Nybegynder
15. december 2003 - 15:15 #6
shjdsi < du kan nøjes med det her. du skal bare huske at sette vadi i databaseServer() før du bruger dbqueuery() ;)

'---------------------------- Class1 ----------------------------
' Hvis du laver en ActiveX.exe eller ActiveX.dll
' Skal Properties - Clase1 Instancing være 5 - MultiUse
'----------------------------------------------------------------
Option Explicit

Private m_databaseServer As String

Public Function dbqueuery(ByVal strValue As String)
  MsgBox m_databaseServer
End Function

Public Property Let databaseServer(ByVal strValue As String)
  m_databaseServer = strValue
End Property
'---------------------------- Class1 ----------------------------
Avatar billede shjdsi Nybegynder
15. december 2003 - 15:21 #7
sjh> jeg mener bestemt at jeg har forsøgt med dit sidaste eksempel og jeg fik det ikke til at virke. jeg fik det derimod til at virke med det som både dig og slo har beskrevet tidligere :-) Så nu har jeg en klasse hvor jeg kan holde database queries logins adskilt fra den øvrige del af applikationen hvilket i min verden virker mere strukturet :-) jeg kunne måske tænke mig at compilere den som dll eller activeX, men så skal jeg rette lidt  til tror jeg
Avatar billede sjh Nybegynder
15. december 2003 - 15:27 #8
grunden til du måske ikke fik det sidste til at virke er måske fordi du skal kalle den sådan:

ret = Class1.dbqueuery("noget...")

;)
Avatar billede shjdsi Nybegynder
15. december 2003 - 15:33 #9
nej ikke helt :-) havde jo hardcodet de ting i classen så jeg kunne chekke functionaliteten. Så det min øvelse gik ud på var at få server navn, user og password ud af koden og ind i en form eller rettere servan og bruger blviver gemt i registreringsdatabasen brugeren skal så type passworded ind når programmet starter.

Men det duer vist heller ikke for programmet skal køre i systray og polle databasen, chekke forskeligge værdier og sende mail udfra disse check. Det er i bund og grund et lille database monitor værktøj.

Ved du om man kan gemme en værdi i regedit krypteret eller på anden måde så man ikke kan læse password ved at kigge i keyen.
Avatar billede sjh Nybegynder
15. december 2003 - 16:03 #10
du kan godt gemme et password i dit program så man ikke kan se det..

Option Explicit

Private Sub Command1_Click()
Dim i As Integer
Dim strOne As String
Dim strOut As String
  With Text1
      For i = 1 To Len(.Text)
        strOne = Mid$(.Text, i, 1)
        strOut = strOut & "Chr(" & Asc(strOne) & ") & "
      Next
      .Text = "Me.Caption = " & Left$(strOut, Len(strOut) - 3)
      .SelStart = 0
      .SelLength = Len(.Text)
      .SetFocus
  End With
End Sub

Private Sub Form_Load()
  Me.Caption = Chr(101) & Chr(107) & Chr(115) & Chr(112) & Chr(101) & Chr(114) & _
              Chr(116) & Chr(101) & Chr(110) & Chr(46) & Chr(100) & Chr(107)
  Text1 = "Skriv et password"
End Sub
Avatar billede shjdsi Nybegynder
16. december 2003 - 11:57 #11
vil i ikke lægge et svar begge to! så i kan få point og jeg kan få lukket spg. :-) tak for hjælpen til jer begge
Avatar billede slo Nybegynder
16. december 2003 - 12:10 #12
Med glæde :o)
Avatar billede shjdsi Nybegynder
16. december 2003 - 12:23 #13
slo > venter lige og ser om ikke sje også lægger et svar. :-)
Avatar billede slo Nybegynder
16. december 2003 - 12:24 #14
Selvfølgelig
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester