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


Dim XXX as XXX

Postades av 2002-05-05 22:22:01 - John Lundberg, i forum visual basic - allmänt, Tråden har 7 Kommentarer och lästs av 492 personer

Jag har ett problem som jag inte har märkt innan...
om jag dimmar något i en SUB så kan jag inte hämta ut det i en annan, vad gör jag för fel?
tex såhär:

<code>
Private Sub hej()
Dim test AS String
test = "Värde1"
End Sub

Private Sub hejigen()
skrivut.caption = test
End Sub
</code>

Variablen test får inget värde i den andra subben, kan man inte dimma den så att den finns kvar i alla subbar?


Svara

Sv: Dim XXX as XXX

Postades av 2002-05-05 22:41:45 - Sven Åke Persson

Hej
Elementärt kära Jompa.
Dim i en Sub är Lokal. Dvs det är bara den Suben som vet
att den finns.Vidare dör variabeln så fort programslingan når End Sub.

Om du vill göra så att de andra Subrutinerna i din Form skall
kunna nås så får du göra Variabeln Global.

Du måste alltså lägga Dim xxx As xxx i Formens General (först i Formen)

Vill du att variabeln skall nå flera Formar måste du göra den Global
i en BasModuls General. Då skriver man Public xxx As xxx

mvh
Sven


Svara

Sv: Dim XXX as XXX

Postades av 2002-05-05 23:27:38 - John Lundberg

Super!! Tackar och bugar.... =)


Svara

Sv: Dim XXX as XXX

Postades av 2002-05-06 01:24:04 - Ronny Thörnvall

Lite extra kommentarer:

Att använda för många "globala" variabler i stora VB-projekt brukar ofta ställa till problem, samt att de snor åt sig RAM-minne (mindre problem med dagens datorer) under hela tiden som de "lever". OM du baar behöver komma åt en viss variabel i vissa specifika procedurer är det därför bättre att skicka akruellt variabel-värde som IN-data till den proceduren. T ex:
<code>
Private Sub hej()
Dim test AS String
test = "Värde1"
Call hejigen(test)
End Sub

Private Sub hejigen(indata As String)
skrivut.caption = indata
End Sub
</code>

I ovanstående exempel anropas proceduren hejigen från hej. Vill du istället göra tvärtom så måste hej returnera det värde som du vill skriva ut. Antingen via en "ByRef"-variabel eller som ett returvärde. Ex:
<code>
Private Function hej() As String
Dim test AS String
test = "Värde1"
hej = test 'Här sätter jag returvärdet
End Function

Private Sub hejigen()
Dim test As String
test = hej
skrivut.caption = test
End Sub
</code>
I detta fall finns det två olika variabler som heter "test", en i varje procedur, de är helt separata och "råkar" bara ha samma namn!

Det finns mer detaljer runt variabler och deras "scope" dvs livslängd och räckvidd beroende på vart man deklarerar dem och om man använder Dim, Public, Private, Static eller Friend... men det är en annan historia! :-)

Mvh Qezlot


Svara

Sv: Dim XXX as XXX

Postades av 2002-05-06 10:19:03 - Anders Moldin

Kan man inte bara...?

Public Sub hej()
Dim test AS String
test = "Värde1"
End Sub

Public Sub hejigen()
skrivut.caption = test
End Sub


Svara

Sv: Dim XXX as XXX

Postades av 2002-05-06 10:49:04 - Tord Berglund

En bra tumregel är att alltid deklarera variablerna med minsta möjliga scope!! Behöver man inte en global variabel skall man heller inte göra en sådan.

//Tord


Svara

Sv: Dim XXX as XXX

Postades av 2002-05-06 11:20:01 - Johan Djupmarker

>Kan man inte bara...?

>Public Sub hej()
>Dim test AS String
>test = "Värde1"
>End Sub

>Public Sub hejigen()
>skrivut.caption = test
>End Sub

Nej, du kanske borde testa själv först? ;)

/Johan


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

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 569 612
27 953
271 709
6 606
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