Toon posts:

[Visual Basic]Kan deze code compacter

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb van de volgende code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
Private Sub UserForm_Initialize()
xx = Workbooks("grafiekme.xls").Sheets("testblad").Range("a2")
If xx = 3 Then
        min = Sheets("blad4").Index
        max = Sheets("blad1").Index
        x = ActiveSheet.Index
        If x <= min Then CommandButton3.Enabled = False
        If x >= max Then CommandButton4.Enabled = False
    Else
        If xx = 6 Then
            min = Sheets("bladd50kring").Index
            max = Sheets("bladd50pas").Index
            x = ActiveSheet.Index
            If x <= min Then CommandButton3.Enabled = False
            If x >= max Then CommandButton4.Enabled = False
        Else
            If xx = 9 Then
                min = Sheets("ingewogenBa").Index
                max = Sheets("ingewogenludox").Index
                x = ActiveSheet.Index
                If x <= min Then CommandButton3.Enabled = False
                If x >= max Then CommandButton4.Enabled = False
            Else
                If xx = 11 Then
                    min = Sheets("grafiek5").Index
                    max = Sheets("grafiek").Index
                    x = ActiveSheet.Index
                    If x <= min Then CommandButton3.Enabled = False
                    If x >= max Then CommandButton4.Enabled = False
                Else
                    If xx = 12 Then
                        min = Sheets("b16.1").Index
                        max = Sheets("b12").Index
                        x = ActiveSheet.Index
                        If x <= min Then CommandButton3.Enabled = False
                        If x >= max Then CommandButton4.Enabled = False
                    Else
                        If xx = 15 Then
                            min = Sheets("blad2").Index
                            max = Sheets("blad1").Index
                            x = ActiveSheet.Index
                            If x <= min Then CommandButton3.Enabled = False
                            If x >= max Then CommandButton4.Enabled = False
                        Else
                             If xx = 18 Then
                            min = Sheets("blad6").Index
                            max = Sheets("blad3").Index
                            x = ActiveSheet.Index
                            If x <= min Then CommandButton3.Enabled = False
                            If x >= max Then CommandButton4.Enabled = False
                        Else
                            For i = 3 To 4
                                Controls("commandbutton" & i).Enabled = False
                            Next i
                        End If
                    End If
                End If
            End If
        End If
    End If
End If
DisableClose Me.Caption
End Sub



Dit gemaakt:


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Private Sub UserForm_Initialize()
Dim xx as long
Dim min as long, max as long, I as integer, x as integer
xx = Workbooks("grafiekme.xls").Sheets("testblad").Range("a2")

select case xx
case 3
min = Sheets("blad4").Index
        max = Sheets("blad1").Index        
case 6
min = Sheets("bladd50kring").Index
        max = Sheets("bladd50pas").Index
case 9
min = Sheets("ingewogenBa").Index
        max = Sheets("ingewogenludox").Index
case 11
min = Sheets("grafiek5").Index
max = Sheets("grafiek").Index
case 12
min = Sheets("b16.1").Index
max = Sheets("b12").Index
case 15
min = Sheets("blad2").Index
max = Sheets("blad1").Index
case 18
min = Sheets("blad6").Index
max = Sheets("blad3").Index
case else
min=0
max=0
end select

x = ActiveSheet.Index
if min <>0 and max<>0 then
If x <= min Then CommandButton3.Enabled = False
If x >= max Then CommandButton4.Enabled = False
Else
    Commandbutton3.enabled=false
    Commandbutton4.enabled=false
End if
DisableClose Me.Caption
End Sub


Nou is het zo dat ik zelf geen echte doorgewinterde programmeur ben dus ik vroeg mij af of de code zie ik zelf al compacter heb gemaakt nog compacter kan en zoja hoe zou het er dan uit moeten zien want hier houdt mijn kennis op... :)

[ Voor 8% gewijzigd door Verwijderd op 11-11-2005 13:06 ]


  • ThunderNet
  • Registratie: Juni 2004
  • Laatst online: 24-04 15:57

ThunderNet

Flits!

Waarom heb je er <? ?> bij staan, dat is voor php, terwijl het over VB gaat :?

je kunt gewoon de [code=vb][/code] tags gebruiken :)

[ Voor 35% gewijzigd door ThunderNet op 11-11-2005 13:03 ]

Heb je liever vooraf, of achteraf, dat ik zeg dat ik geen flauw idee heb wat ik doe?


Verwijderd

Topicstarter
ThunderNet schreef op vrijdag 11 november 2005 @ 13:02:
Waarom heb je er <? ?> bij staan, dat is voor php, terwijl het over VB gaat :?

je kunt gewoon de [code=vb][/code] tags gebruiken :)
Omdat ik zo de code overzichtelijker weer kan geven, anyway, enig idee hoe ik het compacter kan krijgen?

zal het even aanpassen dan

[ Voor 6% gewijzigd door Verwijderd op 11-11-2005 13:05 ]


  • ThunderNet
  • Registratie: Juni 2004
  • Laatst online: 24-04 15:57

ThunderNet

Flits!

compacter zou kunnnen, maar zo is de code redelijk goed leesbaar, en dat is belangrijker dan compacte code :)

Visual Basic 6:
1
2
3
Else
    Commandbutton3.enabled = Commandbutton4.enabled = false
End if


zou ook nog kunnen :)

[ Voor 37% gewijzigd door ThunderNet op 11-11-2005 13:08 ]

Heb je liever vooraf, of achteraf, dat ik zeg dat ik geen flauw idee heb wat ik doe?


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Belangrijker dan compacter maken is het goed uitlijnen van de code. Je tweede stuk code mag dan korter zijn, toch is je eerste stuk code veel sneller te lezen dan het tweede stuk, omdat die goed uitgelijnd is.

Verder: je hebt net zo goed code highlighting met [code=vb]. Als je dat doet in plaats van [code] dan ziet het ook netjes uit. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Het is namelijk om aan te tonen dat de manier waarop er nu geprogrammeerd is niet efficient is gedaan (vrij duidelijk) ik heb en nu dus dit van weten te maken maar om aan te tonen dat het misschien nog wel beter zou kunnen vroeg ik me af of het nog compacter gemaakt kan worden, dus minder code met het zelfde eindresultaat...

  • Tukk
  • Registratie: Januari 2002
  • Laatst online: 23-04 14:43

Tukk

De α-man met het ẞ-brein

ThunderNet schreef op vrijdag 11 november 2005 @ 13:07:
compacter zou kunnnen, maar zo is de code redelijk goed leesbaar, en dat is belangrijker dan compacte code :)

Visual Basic 6:
1
2
3
Else
    Commandbutton3.enabled = Commandbutton4.enabled = false
End if


zou ook nog kunnen :)
Visual Basic 6:
1
2
3
Else
    Commandbutton3.enabled = not Commandbutton4.enabled 
End if


Lijkt mij korter en beter leesbaar.

Q: How many geeks does it take to ruin a joke? A: You mean nerd, not geek. And not joke, but riddle. Proceed.


  • ThunderNet
  • Registratie: Juni 2004
  • Laatst online: 24-04 15:57

ThunderNet

Flits!

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Private Sub UserForm_Initialize()
Dim xx as long, min as long, max as long, I as integer, x as integer

xx = Workbooks("grafiekme.xls").Sheets("testblad").Range("a2")

select case xx

    case 3
        min = Sheets("blad4").Index
        max = Sheets("blad1").Index        

    case 6
        min = Sheets("bladd50kring").Index
        max = Sheets("bladd50pas").Index

    case 9
        min = Sheets("ingewogenBa").Index
        max = Sheets("ingewogenludox").Index

    case 11
        min = Sheets("grafiek5").Index
        max = Sheets("grafiek").Index

    case 12
       min = Sheets("b16.1").Index
       max = Sheets("b12").Index

    case 15
       min = Sheets("blad2").Index
       max = Sheets("blad1").Index

    case 18
        min = Sheets("blad6").Index
        max = Sheets("blad3").Index

     case else
        min=0
        max=0
end select

x = ActiveSheet.Index

if min <>0 and max<>0 then
     If x <= min Then CommandButton3.Enabled = False
     If x >= max Then CommandButton4.Enabled = False
Else
    Commandbutton3.enabled=false
    Commandbutton4.enabled=false
End if

DisableClose Me.Caption

End Sub


Als je de 2e uitlijnt, krijg je dus dit... lekker leesbaar :)

[ Voor 13% gewijzigd door ThunderNet op 11-11-2005 13:13 ]

Heb je liever vooraf, of achteraf, dat ik zeg dat ik geen flauw idee heb wat ik doe?


Verwijderd

Topicstarter
Ok bedank zover, ik heb het inmiddels aangepast. Zijn nog stukken die ingekort zouden kunnen worden?

  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 14-04 13:57

Bergen

Spellingscontroleur

Tukk schreef op vrijdag 11 november 2005 @ 13:11:
[...]


Visual Basic 6:
1
2
3
Else
    Commandbutton3.enabled = not Commandbutton4.enabled 
End if


Lijkt mij korter en beter leesbaar.
Maar dat is toch echt iets anders.

a = false
b = false

is iets anders dan

a = !b

[ Voor 11% gewijzigd door Bergen op 11-11-2005 13:19 . Reden: oops ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op vrijdag 11 november 2005 @ 13:16:
Ok bedank zover, ik heb het inmiddels aangepast. Zijn nog stukken die ingekort zouden kunnen worden?
Nee voor zover ik zie niet echt. Er zit niet echt "stuctuur" in ofzo. Je zou een functie kunnen maken die ByRef een min en max teruggeeft ofzo, maar dan houdt het echt op denk ik. Oh, en je zou With...End With kunnen gebruiken... <<toch niet...

Momentje, ik flans effe...

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Private Sub UserForm_Initialize()
    Dim xx As Long, min As Long, max As Long, x As Integer
    
    xx = Workbooks("grafiekme.xls").sheets("testblad").Range("a2")
    
    Select Case xx
        Case 3: GetMinMax sheets("blad4").Index, sheets("blad1").Index, min, max
        Case 6: GetMinMax sheets("bladd50kring").Index, sheets("bladd50pas").Index, min, max
        Case 9: GetMinMax sheets("ingewogenBa").Index, sheets("ingewogenludox").Index, min, max
        Case 11: GetMinMax sheets("grafiek5").Index, sheets("grafiek").Index, min, max
        Case 12: GetMinMax sheets("b16.1").Index, sheets("b12").Index, min, max
        Case 15: GetMinMax sheets("blad2").Index, sheets("blad1").Index, min, max
        Case 18: GetMinMax sheets("blad6").Index, sheets("blad3").Index, min, max
        Case Else
            min = 0: max = 0
    End Select
    
    x = ActiveSheet.Index
    
    If min <> 0 And max <> 0 Then
         If x <= min Then Commandbutton3.Enabled = False
         If x >= max Then Commandbutton4.Enabled = False
    Else
        Commandbutton3.Enabled = False
        Commandbutton4.Enabled = False
    End If
    
    DisableClose Me.Caption
End Sub

Private Sub GetMinMax(ByVal lMinIn As Long, ByVal lMaxIn As Long, ByRef lMin As Long, ByRef lMax As Long)
    lMin = lMinIn: lMax = lMaxIn
End Sub

Zoiets... Maar dan doe je het dus puur om code in te korten. Het is ranzig en niet zo goed leesbaar. Maar iets in deze richting ZOU moeten werken... (Niet getest dus)

Oh, en "I As Integer" is overbodig ;) Die wordt nergens gebruikt ;) :Y)

[ Voor 108% gewijzigd door RobIII op 11-11-2005 13:27 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Waarom ben je zo gebrand op inkorten? Duidelijkere code is veel belangrijker dan korte code. Ik kan hele korte code schrijven die niet te lezen is, of wat langere die ieder kind begrijpt. Je moet gewoon een balans zoeken tussen leesbaarheid en lengte.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Sendy
  • Registratie: September 2001
  • Niet online
Wat je nog kan doen is in de switch alleen de string schrijven, en dan na de switch pas min en max uitrekenen. De code word slecht ietsjes langer, maar wel minder breed ;) (en je hoeft 12x minder hetzelfde in te tikken)

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Je kunt die dubbele if op het eind nog wegpoetsen met mi nog leesbaarheidswinst ook O-)

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub UserForm_Initialize()
Dim xx as long, min as long, max as long, I as integer, x as integer

xx = Workbooks("grafiekme.xls").Sheets("testblad").Range("a2")
x = ActiveSheet.Index

select case xx
     .
     .
     .
     case else
        min=x
        max=x
end select

If x <= min Then CommandButton3.Enabled = False
If x >= max Then CommandButton4.Enabled = False
End Sub

offtopic:
Dit lijkt meer op VBA dan op VB

[ Voor 182% gewijzigd door Lustucru op 11-11-2005 13:49 . Reden: sorry, slecht gelezen ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • Tukk
  • Registratie: Januari 2002
  • Laatst online: 23-04 14:43

Tukk

De α-man met het ẞ-brein

Bergen schreef op vrijdag 11 november 2005 @ 13:18:
[...]
Maar dat is toch echt iets anders.

a = false
b = false

is iets anders dan

a = !b
Crap,

de reden waarom ik niet zo codeer.
Als ik dat lees zie ik de 2e = als vergelijkings-operand.

Mea culpa.

Q: How many geeks does it take to ruin a joke? A: You mean nerd, not geek. And not joke, but riddle. Proceed.


  • ThunderNet
  • Registratie: Juni 2004
  • Laatst online: 24-04 15:57

ThunderNet

Flits!

Tukk schreef op vrijdag 11 november 2005 @ 13:33:
[...]

Crap,

de reden waarom ik niet zo codeer.
Als ik dat lees zie ik de 2e = als vergelijkings-operand.

Mea culpa.
van rechts naar links validatie he ;) :)

Heb je liever vooraf, of achteraf, dat ik zeg dat ik geen flauw idee heb wat ik doe?


  • Serpie
  • Registratie: Maart 2005
  • Laatst online: 05-02 21:24
ThunderNet schreef op vrijdag 11 november 2005 @ 13:35:
[...]

van rechts naar links validatie he ;) :)
Wel redelijk offtopic maar dat gaat gewoon fout hoor, als ik onderstaande in vb6 uitvoer:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
Private Sub Command1_Click()
    Dim mvrTest As Boolean
    Dim mvrValue As Boolean
    mvrTest = True
    mvrValue = True
    
    mvrTest = mvrValue = False
    MsgBox (mvrTest)
    MsgBox (mvrValue)
End Sub


Krijg ik als eerste msgbox False en daarna True, en niet 2 keer False, hij gaat dus wel vergelijken en niet toekennen

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Stop AI Slop

Inderdaad, bij C zou het misschien werken, maar in VB niet.

Er staat in Serpie's voorbeeld:

Visual Basic:
1
mvrTest = (mvrValue = False)

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 24-04 11:12

.oisyn

Moderator Devschuur®

Demotivational Speaker

Maak gewoon een array waar je alle informatie in stopt, dan is het bepalen van de te nemen acties een eitje

.edit: ik vergat even dat het vullen van arrays in VB niet zo gemakkelijk gaat als in andere talen ;)

[ Voor 33% gewijzigd door .oisyn op 11-11-2005 13:52 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • ThunderNet
  • Registratie: Juni 2004
  • Laatst online: 24-04 15:57

ThunderNet

Flits!

mmmz... wat gek.
Ben ik vast in de war met andere taal :)

Heb je liever vooraf, of achteraf, dat ik zeg dat ik geen flauw idee heb wat ik doe?


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
.oisyn schreef op vrijdag 11 november 2005 @ 13:50:
Maak gewoon een array waar je alle informatie in stopt, dan is het bepalen van de te nemen acties een eitje

.edit: ik vergat even dat het vullen van arrays in VB niet zo gemakkelijk gaat als in andere talen ;)
Bla = Array("Foo","Bar","Jedda")

:Y)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 24-04 11:12

.oisyn

Moderator Devschuur®

Demotivational Speaker

RobIII: VB6?

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Jawohl...
Er is 1 "klein" maartje: Je variabele moet van het type Variant zijn... :X

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 24-04 11:12

.oisyn

Moderator Devschuur®

Demotivational Speaker

handig 8)7

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Serpie schreef op vrijdag 11 november 2005 @ 13:49:
Krijg ik als eerste msgbox False en daarna True, en niet 2 keer False, hij gaat dus wel vergelijken en niet toekennen
Dat is IMHO inderdaad het grootste minpuntje aan alle VB-varianten: ze gebruiken hetzelfde teken voor toekenningen als voor vergelijkingen. Je ziet hier wel wat dat voor verwarring kan opleveren. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
-NMe- schreef op vrijdag 11 november 2005 @ 14:38:
[...]

Dat is IMHO inderdaad het grootste minpuntje aan alle VB-varianten: ze gebruiken hetzelfde teken voor toekenningen als voor vergelijkingen. Je ziet hier wel wat dat voor verwarring kan opleveren. :)
Kwestie van uit de buurt blijven van bepaalde constructies (syntactisch gezien dan) :X
Helaas mag ik mezelf een redelijke VB6 guru noemen (beetje door omstandigheden) maar ik moet zeggen dat, (zeker voor zijn tijd), het geen onaardige taal is was. Als je het een beetje onder de knie hebt en je er wat in verdiept kun je nog best een eind komen (ook op OOP gebied enzo, hoewel inheritance, polymorphism e.d. toch wel uhm... minder... te doen zijn :P )

* RobIII klimt op tafel:
Koooooom maar, kommaar, kommaar, kommaar......

En daarmee bedoel ik dus dat het, anno 2005, wel andere koek is...
Laten we het er op houden dat het leuk speelgoed is ;)

[ Voor 20% gewijzigd door RobIII op 11-11-2005 14:44 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • ZaZ
  • Registratie: Oktober 2002
  • Laatst online: 19-03 00:48

ZaZ

Tweakers abonnee

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Option Explicit

Private Sub Form_Load()
    Dim sArray() As String
    VariantToStringArray Array("boe", "blah", "meh"), sArray
End Sub
Sub VariantToStringArray(vString As Variant, sArray() As String)
    on local error goto errhandler
    Dim i As Integer
    ReDim sArray(LBound(vString) To UBound(vString))
    For i = LBound(vString) To UBound(vString)
        sArray(i) = CStr(vString(i))
    Next
    exit sub
errhandler:
  Msgbox err.number & ":" &err.description
End Sub


heel simpel snel iets om er een 'echte' string array van te maken

Lekker op de bank


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
ZaZ schreef op vrijdag 11 november 2005 @ 15:13:
<snip>
heel simpel snel iets om er een 'echte' string array van te maken
Klopt.
Gelukkig heeft een variant ook gewoon een "subtype" aan de hand waarvan je ook gewoon kunt werken waar nodig:
Visual Basic:
1
2
3
4
5
6
7
8
    Dim bla
    Dim T As Long
    
    bla = Array("test", 1, 3.14592, 387987)
    
    For T = 0 To UBound(bla)
        Debug.Print TypeName(bla(T))
    Next

Als je toch al met dit soort (IMHO voor VB6 ranzige) constructies werkt, zie ik het nut er niet echt van in om nog te converteren naar een typed array. Kun je net zo goed je variant blijven gebruiken en casten waar nodig (als VB het al niet zelf voor je doet 8)7 ). Voorbeeldje:
Visual Basic:
1
Debug.Print "1" / "2"

Geef gewoon 0.5 :X
Visual Basic:
1
Debug.Print "1" + "2"

Geeft "12" 8)7 Terwijl de ampersand ( & ) bedoeld is om strings aan elkaar te plakken :X

Verder vind ik het gebruik van LBound maar ranzig... Gebruik liever gewoon een offset als je een array anders dan 0-based wil hebben...

[ Voor 39% gewijzigd door RobIII op 11-11-2005 15:26 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • ZaZ
  • Registratie: Oktober 2002
  • Laatst online: 19-03 00:48

ZaZ

Tweakers abonnee

LBound gebruik ik eigenlijk ook nooit.
Verder ga ik zelf als ik VB gebruik variants zoveel mogelijk uit de weg omdat je dan blijft casten.

Lekker op de bank


  • EfBe
  • Registratie: Januari 2000
  • Niet online
Wat een wanhoop code. :)

Dit
Visual Basic:
1
2
3
4
5
6
7
if min <>0 and max<>0 then
If x <= min Then CommandButton3.Enabled = False
If x >= max Then CommandButton4.Enabled = False
Else
    Commandbutton3.enabled=false
    Commandbutton4.enabled=false
End if


kan in
Visual Basic:
1
2
Commandbutton3.Enabled = ((x>min) AND Not (min=0 AND max=0))
Commandbutton4.Enabled = ((x<max) AND Not (min=0 AND max=0))


Verder kan dit nog korter door in de Case Else een boolean op true te zetten door aan te geven dat er geen geldige range is geselecteerd en dan kun je (min=0 AND max=0) vervangen door die boolean. Nu worden min en max misbruikt om aan te geven dat iets niet geldig is, wat obscuur is.

Net als 'xx' en 'x'. Kies betere namen, dat maakt de code beter leesbaar.

[ Voor 5% gewijzigd door EfBe op 11-11-2005 16:16 ]

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


Verwijderd

Topicstarter
bedankt voor alle reacties, hier kan ik voorlopig wel even mee vooruit :)
Pagina: 1