Was ervaren programmeur, na 30 jaar weer beginnen...

Status
Niet open voor verdere reacties.

icelandic

Gebruiker
Lid geworden
22 sep 2014
Berichten
122
Hallo iedereen,

Ik ben nu net een paar minuten lid van dit forum omdat ik even niet snap waarom onderstaande listing in VB6 niet werkt. Op een FORM staat een knop. Als daar op gedrukt wordt, wordt subVerhaal aangeroepen. Deze maakt een label (met tekst, daar gaat het om) zichtbaar, later weer uit, later weer aan enz. enz. Waarom werkt dit niet????

Alvast bedankt!

Eric




Code:
Sub Command1_Click()
  
    Verhaal

End Sub



Sub Verhaal()

        ZetAan
    
    Wacht
    
       ZetUit
    
    Wacht
    
        ZetAan
    
    Wacht
    
End Sub 



Sub Wacht()
Dim x As Long

    For x = 1 To 100000000
    Next
    
End Sub



Sub ZetAan()

    If Me.Label1.Visible = True Then
        Me.Label1.Visible = False
    Else
        Me.Label1.Visible = True
    End If

End Sub

Sub ZetUit()

    If Me.Label1.Visible = True Then
        Me.Label1.Visible = False
    Else
        Me.Label1.Visible = True
    End If

End Sub
 
Laatst bewerkt door een moderator:
Waarom het bij jou nu niet werkt kan ik zo niet zeggen, maar ik zou dat hele stuk vervangen door dit:

Code:
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)

Sub Command1_Click()
    Sleep 1000 '1 Seconde
    Me.Label1.Visible = Iif(Me.Label1.Visible, False, True)

    Sleep 1000 '1 Seconde
    Me.Label1.Visible = Iif(Me.Label1.Visible, False, True)

    Sleep 1000 '1 Seconde
    Me.Label1.Visible = Iif(Me.Label1.Visible, False, True)
End Sub
 
Laatst bewerkt:
Bedankt...

Bedankt Edmoor,

Ik zal jouw code intikken! Het is wel een heel andere stijl dan ik gewend ben... Het lijkt mij ingegeven door kennis van VB 2013??

Eric
 
Je kunt het gewoon kopiëren en die code werkt ook in VB6.
 
Maarrr...

Maar kan iemand mij toch vertellen waarom mijn oorspronkelijke listing niet werkt?

Vr. gr. Eric
 
Als ik mag gokken, van 1 tot 10.000.000 tellen is nauwelijks een delay. Mijn processor doet 16 miljard berekeningen per seconde zonder code optimalisatie.

Met code optimalisatie van de compiler en een moderne processor is het waarschijnlijk dat je hele statement in onder een milliseconde wordt uitgevoerd. Alle 3 de stappen...
 
Tja...

Ah, prachtig!!
Met 10 miljoen denk dat je groot gelijk hebt, maar laat het nou 100 miljoen...
Maar je hebt gelijk..., het is nogal stomme manier van tijd rekken.
Zoals je hebt kunnen lezen is de laatste maal dat ik geprogrammeerd heb, al erg lang geleden... Notabene een volledig werkend schaakprogramma!
Tientallen jaren niets meer aan gedaan (kan je nagaan hoe oud ik ben) maar nu toch weer wat proberen... Blijf het leuk vinden...
Om weer terug te komen om tijd te rekken, ik hen net ergens iets gelezen over SLEEP... Dát was het, veel netter.
A propos, kun jij misschien zien waarom ik in mijn boven- of onderstaande listing dat label visible niet true en false kan krijgen...????

Eric
 
Waarschijnlijk is het wat Wampier al zei. Het werkt wel, maar het gaat zo snel dat je het verschil niet ziet.
 
Nou, dát zal het misschien zijn! Ik ga één en ander (ook jouw Kernel-ding (volkomen nieuw voor mij)) direct proberen!!

Bedankt, Ik laat weten of het geslaagd is!

Eric
 
Overigens is "dat kernelding" vaak niet nodig bij moderne talen. Ik zou gewoon overstappen op VB.NET en de oude taal laten.
 
Dat "kernel ding" is niks anders dan het gebruiken van een routine die reeds door Microsoft gemaakt is en standaard bij Windows wordt meegeleverd.
Je declareert dan een routine in een meegeleverde DLL. Dat werkt overigens in VB6 ook al.
Succes :thumb:
 
Overigens is "dat kernelding" vaak niet nodig bij moderne talen. Ik zou gewoon overstappen op VB.NET en de oude taal laten.

Precies. Ik zou kiezen voor VB in Visual Studio 2012. Maar dat is wel heel anders werken dat dat je van VB6 gewend bent.
 
Tja,...

Tja, dat is het hem nou net,citaat: "Maar dat is wel heel anders werken dat dat je van VB6 gewend bent." En ik ben van oudsher VB6.0 gewend.
Ik heb wel een gratis versie van vb 2013 in mijn computer geladen, maar eerlijk gezegd nog niet aan toe gekomen om het eens te proberen...
Misschien moet ik op de één of andere manier een zetje er toe krijgen...

Vr. gr.,
Eric
 
VB6 zou met windows 8 niet meer werken, maar is later toch weer toegevoegd, maar het houdt een keer op. De code is nu 20 jaar oud met alle beperkingen vandien.

Bovendien vind ik persoonlijk de manier van werken niet zo heel verschillend. Je hebt een form waar je knopjes op sleept en een scherm waar je code intypt. Goed de interface is wat professioneler (mag ook wel na 20 jaar) en er zijn meer specialistische mogelijkheden, maar als je gewoon wat wil rotzooien is het nauwelijks anders na een paar uur. *TIP* de 2010 en 2012 versie zijn veel "normaler" dan de 2013. Mocht het niet lukken trek dan eerst 2010/2012 uit de kast.

En ik ben waarschijnlijk in dezelfde leeftijdsgroep dus dat moet echt de drempel niet zijn ;)
 
Toch is dat zeker de moeite waard omdat Visual Studio je de meeste zaken m.b.t. User Interfacing al uit handen neemt. Wat programmeren betreft is het hoofdzakelijk Event driven maar Basic blijft Basic, ook al is er nu veel meer mogelijk dan in VB6 het geval was. Je gaat eigenlijk van traditioneel 3GL naar een vierde generatie ontwikkelomgeving. Het vergt een andere denkwijze maar ik verwacht dat je het wel zult waarderen.
 
http://www.microsoft.com/en-us/download/details.aspx?id=34673

Het werkt wat anders. In principe werkt VB.NET op basis van het .NET platform. dat wordt onafhankelijk van elkaar verbeterd en ge-update tov van de visual studio ontwikkelomgeving.

Visual studio is de editor voor .NET programma's waaronder visual basic. Maar in visual studio 2012 (VS2012) kun je .NET applicaties maken voor .NET 1.1; .NET 2.x ; .NET 3 en .NET 4.x (VB7 t/m VB12 in oude termen)

VS2013 (die je nu hebt) voegt een hoop dingen toe voor telefoons, tablets, livetiles, etc.etc. Niks mis mee maar de keuzes worden er niet minder op ;) 2010 en 2012 (link bovenaan) zijn wat meer gericht op "traditioneel" gebruik. De programma's die eruit komen zijn functioneel exact hetzelfde. Dus een "hello world" programma gemaakt in VS 2007, VS 2010, VS2012 en VS 2013 zijn qua "visual basic" hetzelfde, maar de omgeving waarin ze gemaakt zijn is anders.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan