abonnement Unibet Coolblue Bitvavo
pi_26250129
Dag mensen,

Ik dacht omdat ik iets niet snap maar weer voor ieder probleem een klein topic te openen lijkt me niet echt heel handig, dus open ik ook voor visualbasic maar een dummies topic. want mijn vraag is nogal dummy

Reeds ben ik bezig met een kleine tool waarmee ik bv _-_ kan omzetten naar [spatie]-[spatie] in bestandsnamen en directories.. nu kan ik dit reeds wel in 1 directory maar het is de bedoeling dat het ook gaat werken in een 'tree'. Oftewel een boomstructuur kan doorzoeken naar dit soort bestanden en deze dan gaat 'renamen'.

Nu was ik vandaag opzoek naar een werkende source die een directorie stuctuur kan doorzoeken maar helaas heb ik geen goede gevonden, tenministe niet een waar vele modules aan vast zitten en ik weet dat er meerdere te vinden zijn maar op een of andere manier kon google en gathering me niets vertellen over het geen dat ik zoek.. Fok wilde mij uiteraard weer niet helpen omdat de search engine uit staat..

Dussuh vraag ik het maar aan de gebruikers.

Hopend op een werkende en goede oplossing.

ik draai VB6 zonder extra's

The people who lost my respect will never get a capital letter for their name again.
Like trump...
  vrijdag 15 april 2005 @ 15:49:19 #2
42782 QuietGuy
opscheppende pats-nerd
pi_26250283
Dus je wilt recursief mappen inlezen eigenlijk? De rest kan je dan waarschijnlijk zelf wel.
pi_26250828
Dat is ontzettend simpel Chandler.
Gebruik het File System Object.
Een uitgewerkt voorbeeldje vind je hier:
http://juicystudio.com/tutorial/vb/files.asp#rec

Wel ff dit doen in je VB projectje. De scripting runtime staat standaard op een systeem:
quote:
Before using the FSO, you have to add the "Microsoft Scripting Runtime Library" to the current project by selecting "Project", "References" from the menu bar.
  vrijdag 15 april 2005 @ 16:20:49 #4
25637 hbruyn
Ben benieuwd
pi_26251033
Gewoon in de for each loop waar je de directories doorloopt de functie opnieuw aanroepen, en de huidige directorie meegeven als (optie).
pi_26254605
Dankjewel mensen (vooral SOP!) ik heb met die site en dergelijke voorbeelden een goed lopend zoek systeem weten te maken maar nu zit ik met iets anders (heb helaas niet continue internet anders zou ik het misschien zelf gevonden hebben). Hoe kan ik een text met enters aan een textbox toevoegen (vbCrLf werkt niet en chr(13) & chr(10) werken helaas niet).

Iemand een idee/
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_26255039
textbox op multiline zetten
pi_26255069
Wederom vriendelijk bedankt, ik ga weer verder spielen!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_26255270
't is meer Visual Basic voor Chandler door Sop
  vrijdag 15 april 2005 @ 19:38:19 #9
42782 QuietGuy
opscheppende pats-nerd
pi_26255366
quote:
Op vrijdag 15 april 2005 19:34 schreef sop het volgende:
't is meer Visual Basic voor Chandler door Sop
Zal ik het topic veranderen?
pi_26256917
Whahaha, nee doe maar niet, dan kunnen meerdere mensen hier nog gebruik van maken.

* Chandler gaat nu ff opzoek naar een routine voor het 'veranderen' van strings (find and replace)
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_26260787
ps weet iemand waar ik documentatie kan downloaden voor vb6 (niet .NET dus).. want kan zelf op msdn.com niets vinden en heb helaas geen cd van de library zelf tot mijn beschikking..
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_26261029
Maak een form genaamd 'form1', voeg vervolgens een listbox genaamd 'list1' toe. Maak daarna een module aan en voeg de volgende code toe:

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
Public Function ListFilesInDir(ByVal path As String, ByVal filespec As String) As Collection
    Dim spec As Variant
    Dim file As Variant
    Dim subdir As Variant
    Dim subdirs As New Collection
    Dim specs() As String

    Set ListFilesInDir = New Collection

    If Right$(path, 1) <> "\" Then path = path & "\"
    
    specs() = Split(filespec, ";")
   
    On Error Resume Next

    LoadingDirsActive = True

    For Each spec In specs
        file = Dir$(path & spec)
        Do While Len(file)
            FileDetect = StrConv(Right(file, 3), vbLowerCase)
            file = path & file
            
            If IsSupportedFile(FileDetect) Then
                NumAddFils = NumAddFils + 1
                FilesPath = 1
                Form1.List1.AddItem file
            End If

            file = Dir$
        Loop
    Next
    
    file = Dir$(path & "*.*", vbDirectory)
    
    Do While Len(file)
        If file = "." Or file = ".." Then

        ElseIf (GetAttr(path & file) And vbDirectory) = 0 Then

        Else
            file = path & file
            subdirs.Add file, file
        End If

        file = Dir$
    Loop

    For Each subdir In subdirs
        For Each file In ListFilesInDir(subdir, filespec)
            FileDetect = StrConv(Right(file, 3), vbLowerCase)
            
            If IsSupportedFile(FileDetect) Then
                NumAddFils = NumAddFils + 1
                FilesPath = 1
                Form1.List1.AddItem file
            End If
        Next
    Next

    LoadingDirsActive = False
End Function


Voeg nu toe in 'Form_Load':

1Call ListFilesInDir(files, "*.*")


Waar de 'files' parameter het pad is wat je wil doorzoeken.
  zondag 17 april 2005 @ 14:04:53 #13
42782 QuietGuy
opscheppende pats-nerd
pi_26295245
Dan nu even een vraagje van mij

Ik ben bezig met een statistiekenscript voor Windows-webservers. Ik weet dat er al een aantal zijn maar ik wil er zelf ook een maken.

Ik ben al een heel eind, VB genereert een include file welke te gebruiken is in PHP of ASP, wat je maar wilt. Daarop kan je een aardige output baseren, zoals bijvoorbeeld http://quietguy.is-a-geek.org/qgstats/

Nu wil ik ook de temperatuur van de hardware hier bij plaatsen. Eenander statistiekenscript wat ik voorheen gebruikte, gebruikte hiervoor Motherboard Monitor. Ik wil dus niet afhankelijk zijn van steeds losse programmaatjes en wil dit dus ook in mijn Visual Basic-programma krijgen.

Nu zou dit opvraagbaar moeten zijn door middel van de WMI-set Win32_TemperatureProbe maar ik krijg daar geen output van terug. Van andere WMI-sets krijg ik wel mooi alle gegevens die ik wil.

Kan iemand mij een klein voorbeeldje geven van het opvragen van temperaturen, met of zonder WMI?
pi_26295709
quote:
Op zondag 17 april 2005 14:04 schreef QuietGuy het volgende:
Dan nu even een vraagje van mij

Ik ben bezig met een statistiekenscript voor Windows-webservers. Ik weet dat er al een aantal zijn maar ik wil er zelf ook een maken.

Ik ben al een heel eind, VB genereert een include file welke te gebruiken is in PHP of ASP, wat je maar wilt. Daarop kan je een aardige output baseren, zoals bijvoorbeeld http://quietguy.is-a-geek.org/qgstats/

Nu wil ik ook de temperatuur van de hardware hier bij plaatsen. Eenander statistiekenscript wat ik voorheen gebruikte, gebruikte hiervoor Motherboard Monitor. Ik wil dus niet afhankelijk zijn van steeds losse programmaatjes en wil dit dus ook in mijn Visual Basic-programma krijgen.

Nu zou dit opvraagbaar moeten zijn door middel van de WMI-set Win32_TemperatureProbe maar ik krijg daar geen output van terug. Van andere WMI-sets krijg ik wel mooi alle gegevens die ik wil.

Kan iemand mij een klein voorbeeldje geven van het opvragen van temperaturen, met of zonder WMI?
Zoiets als dit:
http://vbnet.mvps.org/index.html?code/wmi/wmitemperatureprobe.htm
  zondag 17 april 2005 @ 15:14:42 #15
42782 QuietGuy
opscheppende pats-nerd
pi_26297190
quote:
Ik krijg er geen output van, maar MotherBoard Monitor geeft wél output
(Src: tempprobe.zip)
pi_26300031
quote:
Op zondag 17 april 2005 15:14 schreef QuietGuy het volgende:

[..]

Ik krijg er geen output van, maar MotherBoard Monitor geeft wél output
(Src: tempprobe.zip)
Ik ook niet, heb een Asus A7N8X moederbord. Heb nog een andere pc met een Abit moederbord, deze geeft de temperaturen wel door. Is dus per systeem anders, denk dat het veroorzaakt wordt doordat de 'Win32_TemperatureProbe' call niet op alle moederborden werkt...
  zondag 17 april 2005 @ 17:33:30 #17
42782 QuietGuy
opscheppende pats-nerd
pi_26300904
quote:
Op zondag 17 april 2005 17:01 schreef The_Terminator het volgende:

[..]

Ik ook niet, heb een Asus A7N8X moederbord. Heb nog een andere pc met een Abit moederbord, deze geeft de temperaturen wel door. Is dus per systeem anders, denk dat het veroorzaakt wordt doordat de 'Win32_TemperatureProbe' call niet op alle moederborden werkt...
Bij mij is het dus ook een asus moederkoekje... balen... Andere oplossing zonder WMI anyone?
  zondag 17 april 2005 @ 17:47:02 #18
42782 QuietGuy
opscheppende pats-nerd
pi_26301319
Hmm. op http://www.ionus.at/content/projects/mbmvb6/ staat een source, maar dan moet je MBM installeren, da's juist wat ik wil overslaan
pi_27671664
Nu weer een leuke vraag(en)

1. hoe kan ik met een vb aplic meerdere trayicons benutten.
2. hoe kan ik bv een procentage aangeven (vb 1t/m 100).. in de icon zonder 100 icons te hoeven maken!

The people who lost my respect will never get a capital letter for their name again.
Like trump...
  maandag 6 juni 2005 @ 12:35:05 #20
42782 QuietGuy
opscheppende pats-nerd
pi_27671707
1. er is een control die je meerdere malen in VB kan plaatsen. Dus kan.
2. Je kan geloof ik pset() gebruiken op de tray. Dan ga je dus plaatjes uittekenen.
pi_27675659
hmm, je maakt het me niet gemakkelijk zie ik al wel weer, mja ik ga er wel even mee spelen!.
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  maandag 6 juni 2005 @ 15:02:51 #22
42782 QuietGuy
opscheppende pats-nerd
pi_27676531
quote:
Op maandag 6 juni 2005 14:40 schreef Chandler het volgende:
hmm, je maakt het me niet gemakkelijk zie ik al wel weer, mja ik ga er wel even mee spelen!.
Het hoeft ook niet makkelijk te zijn, zo leer je weer wat
pi_27677429
Chandler: Bedank QG eens voor zijn mooie Network Traffic module!
  maandag 6 juni 2005 @ 15:29:16 #24
42782 QuietGuy
opscheppende pats-nerd
pi_27677495
quote:
Op maandag 6 juni 2005 15:27 schreef sop het volgende:
Chandler: Bedank QG eens voor zijn mooie Network Traffic module!
ah, hij verspreid zich al
pi_27678370
quote:
Op maandag 6 juni 2005 15:29 schreef QuietGuy het volgende:

[..]

ah, hij verspreid zich al
Kenmerk van opensource: andermans code verspreid je makkelijk.
pi_27684335
voor QG!!! en idd sop...

QG BEDANKT!!!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_27699740
Next questions.

Van Sop heb ik een stukje code, echer zit daar een timer1_timer in (oftewel timer) deze draait niet als ik het programmatje heb geminimaliseerd of naar de tray heb geschopt, hoe krijg ik dat wel voor elkaar?

Tweede is hoe krijg ik een textje op een plaatje? (picturebox?)
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_33700623
Een andere vraag!.

Ik heb 2 forms..



en



nu zie je dat op het eerste plaatje 2x brouwse staat... nu wil ik dus het 2e form een directory laten selecteren (dat lukt al) maar deze terug geven aan text 1 of text 2. Echter heb ik geen flauw idee hoe ik kan kijken welke button ik heb aangeklikt om data te plaatsen op de juiste plaats!?

Iemand een idee?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_33700887
Dat browseschermpje kun je beter niet zelf bouwen. Dat is namelijk een standaard component van windows. Je kunt daar beter de CommonDialogs voor gebruiken. VBAccelerator heeft daar wel het een en ander over geschreven en ook Google biedt uitkomst.

Hier een link naar een artikel op vbaccelerator. Een extra DLL is overigens niet nodig om van commondialogs gebruik te maken (o.a. een folderbrowser).
pi_33701070
maar ok, als ik dat gebruik moet ik ook nog de data op de juiste plaats zien te krijgen, en dat lukt nu helaas nog niet

Wat ik al heb (http://upload.bruggema.nl/index.php?i=v&ip=1372487152&name=backup directories.zip)

[ Bericht 19% gewijzigd door Chandler op 04-01-2006 17:57:27 ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_33701427
quote:
Op woensdag 4 januari 2006 17:51 schreef Chandler het volgende:
maar ok, als ik dat gebruik moet ik ook nog de data op de juiste plaats zien te krijgen, en dat lukt nu helaas nog niet

Wat ik al heb (http://upload.bruggema.nl/index.php?i=v&ip=1372487152&name=backup directories.zip)
Is niet zo moeilijk. Ik pas je source even aan en plaats de link hier zometeen wel.
pi_33701465
als je wil, zet er dan ff comments bij... dan kan ik er van leren
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_33701657
quote:
Op woensdag 4 januari 2006 18:05 schreef Chandler het volgende:
als je wil, zet er dan ff comments bij... dan kan ik er van leren
Ik heb alleen het volgende aangepast:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub Command1_Click()
    If lister.view = "from" Then
        If Right$(Dir.Path, 1) = "\" Then
            lister.fromDir.Text = Dir.Path
        Else
            lister.fromDir.Text = Dir.Path & "\"
        End If
    ElseIf lister.view = "to" Then
        If Right$(Dir.Path, 1) = "\" Then
            lister.toDir.Text = Dir.Path
        Else
            lister.toDir.Text = Dir.Path & "\"
        End If
    End If
    
    Unload Me
    
    'MsgBox (Dir.Path & " enzo " & view)
End Sub


Dus gewoon kijken wat voor waarde de variable 'view' heeft en dan de juiste textbox op de form 'lister' aanpassen. Ik heb ook een functie ingebouwd die checkt of er een '\' achter het pad staat.
pi_33701793
omg natuurlijk, ik ben helemaal vergeten om ook de form aan te geven... dat is natuurlijk erg belangrijk!!! tnx man!... dit helpt me al weer een heel stuk verder!!! tnx!.
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_35204847
Vraagje over VB-tags bij tekstopmaak:

Achter een gewoon tekstblok is het mogelijke een extra tekstblok toe te voegen; dit extra tekstblok wordt pas zichtbaar als de muiscursor op de gewone tekstblok geplaatst wordt.

De syntax lijkt op [spoiler=GewoneTekst]ExtraTekst[/spoiler] ... maar is niet correct. Wat is dan wel de goede syntax?
pi_35207010
intresting..
pi_35215016
quote:
Op vrijdag 17 februari 2006 22:15 schreef Gajus het volgende:
Vraagje over VB-tags bij tekstopmaak:

Achter een gewoon tekstblok is het mogelijke een extra tekstblok toe te voegen; dit extra tekstblok wordt pas zichtbaar als de muiscursor op de gewone tekstblok geplaatst wordt.

De syntax lijkt op [spoiler=GewoneTekst]ExtraTekst[/spoiler] ... maar is niet correct. Wat is dan wel de goede syntax?
Waar heb je het over?
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_35215044
Misschien is een wat duidelijker uitleg handig in deze zaak? weet je wel zekers dat je het over VisualBASIC hebt?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_35223825
quote:
Op zaterdag 18 februari 2006 10:40 schreef Chandler het volgende:
Misschien is een wat duidelijker uitleg handig in deze zaak? weet je wel zekers dat je het over VisualBASIC hebt?
Binnen een tekst kun jij tags plaatsen zoals (b) en (/b), maar dan met hoekige haken. Zo bestaan er ook tags om extra tekst toe te voegen aan een normale tekst. Ik weet dat die tags bestaan en toepasbaar zijn binnen het Forum aangezien ik zij ooit heb gebruikt (maar dat was in de Preview-mode, dus kan ik het niet terugvinden).

Voordat ik mijn vraag hier stelde, heb ik uitgebreid gegoogled. Daarbij ben ik de termen tegengekomen zoals SML-code (SML= Simple Markup Language), BB-code (BB=?) en ook VB-code (VB= VisualBasic).

Ik ben van de ArpaNet-generatie en recentere ontwikkelingen zoals VisualBasic zijn aan mij voorbij gegaan. Jouw vraag of dit een VisualBasic aangelegenheid betreft, kan ik dan ook niet bevestigen of ontkennen.
  zaterdag 18 februari 2006 @ 16:48:05 #40
2671 Aaargh!
Gebruik op eigen risico.
pi_35224857
quote:
Op zaterdag 18 februari 2006 16:13 schreef Gajus het volgende:
(...) en ook VB-code (VB= VisualBasic).
Jij doelt op vB-code (vBulletin, een webforum pakket)
quote:
Ik ben van de ArpaNet-generatie en recentere ontwikkelingen zoals VisualBasic zijn aan mij voorbij gegaan. Jouw vraag of dit een VisualBasic aangelegenheid betreft, kan ik dan ook niet bevestigen of ontkennen.
VisualBasic is een soort van RAD tool met een BASIC achtige syntax, voornamelijk gebruikt door (zoals het topic al aangeeft) dummies.
It is impossible to live a pleasant life without living wisely and well and justly.
And it is impossible to live wisely and well and justly without living a pleasant life.
pi_35275554
quote:
Op zaterdag 18 februari 2006 16:48 schreef Aaargh! het volgende:
Jij doelt op vB-code (vBulletin, een webforum pakket)

VisualBasic is een soort van RAD tool met een BASIC achtige syntax, voornamelijk gebruikt door (zoals het topic al aangeeft) dummies.
Mijn dank voor het oplossen van dit misverstand.
Ik zal mijn vraag in een ander subforum stellen.

Off topic:
Ca. 25 jaar geleden heb ik noodgedwongen BASIC gebruikt. Ik heb het altijd als een (inmiddels gepasseerde) kinderziekte van de PC beschouwd. Hilarisch te vernemen dat Visual Basic een doorontwikkeling van BASIC is.
  maandag 20 februari 2006 @ 11:50:00 #42
15929 DiRadical
Everything's ruined
pi_35282793
quote:
Op woensdag 4 januari 2006 18:11 schreef The_Terminator het volgende:

[..]

Ik heb alleen het volgende aangepast:
[ code verwijderd ]

Dus gewoon kijken wat voor waarde de variable 'view' heeft en dan de juiste textbox op de form 'lister' aanpassen. Ik heb ook een functie ingebouwd die checkt of er een '\' achter het pad staat.
Ai, dit maakt het wel heel erg complex, zelfs voor zo'n simpel toolje.
Het is niet verstandig om het aangeroepen scherm zo afhankelijk te maken van het aanroepende scherm.
(Wat ga je doen als je een derde knop met dezelfde functionaliteit wil, op hetzelfde of een ander scherm)

Ik zou een public property toevoegen aan het brouwser scherm. Deze kan dan vanaf het aanroepende scherm worden uitgelezen.
Dat maakt het onafhankelijk van het aantal knoppen op het scherm en zelfs van deze applicatie
Je kunt het dan ook gebruiken in een ander project of op andere scherm binnen je huidige project
Het brouwser scherm ziet er dan zo uit.
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 mvarDirSelected As String
Private Sub Command1_Click()
    Me.SelectedDir = Dir.Path
    Me.Hide
    'MsgBox (Dir.Path & " enzo " & view)    
End Sub

Private Sub Drive_Change()
    Dir.Path = Drive.Drive
End Sub

Public Static Property Get SelectedDir() As String
    SelectedDir = mvarDirSelected    
End Property

Public Static Property Let SelectedDir(ByVal sNewValue As String)
    Dim tmpdir As String
' Dit voor een beetje controle op het formaat van de binnenkomende string als het property van buiten wordt gezet. Waterdicht is deze niet

    If InStr(1, sNewValue, ":\", vbTextCompare) > 0 Then
        Drive.Drive = sNewValue
        Dir.Path = sNewValue
    End If
' Einde controle
'Code uit Command1_click, maar een beetje aangepast

    If Right(sNewValue, 1) = "\" Then
       tmpdir = sNewValue
    Else
       tmpdir = sNewValue + "\"
    End If
    mvarDirSelected = tmpdir
End Property

Voor het scherm Lister

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
Private Sub FromBrouwse_Click()
    'Ik heb een hekel aan het standaard scherm dat VB in het geheugen kwakt.
    'Je hebt veel minder controle op die manier.
    'Daarom definieer ik altijd nieuwe scherm objecten die na gebruik weg gooi.
    '
    Dim frmFrom As Brouwser
    Set frmFrom = New Brouwser
    '
    'optioneel kun je ook de geselecteerde directory in het brouwser scherm zetten
    ' De huidige directory wordt dan voor geselecteerd
    '
    If Trim(fromDir.Text) <> "" Then
        frmTo.SelectedDir = fromDir.Text
    End If
    'Laat het scherm zien
    frmFrom.Show vbModal
   
    'Haal de waarde op. het scherm zit nog in het geheugen en is "aanspreekbaar"
    'Zolang je GEEN grafische objecten aanspreekt zal het niet opnieuw geladen worden !
    '!Dit is laatste is erg belangrijk!
    fromDir.Text = frmFrom.SelectedDir

    'Gooi het scherm weg
    Unload frmFrom
    Set frmFrom = Nothing
End Sub

Private Sub ToBrouwse_Click()
    Dim frmTo As Brouwser
    Set frmTo = New Brouwser
    If Trim(toDir.Text) <> "" Then
        frmTo.SelectedDir = toDir.Text
    End If
    frmTo.Show vbModal
    toDir.Text = frmTo.SelectedDir
    Unload frmTo
    Set frmTo = Nothing
End Sub

Zoals je ziet heb je de variabele view niet nodig.
Je weet namelijk op welke knop je drukt (de knop waarvan het event afgaat)
Wellicht kost het iets meer tijd om dit initieel te maken, maar een nieuwe knop toevoegen kost dan weer veeeel minder tijd.
Happyness is nature's way of informing human resources that you're overpaid
-Catbert: Evil director of HR
pi_35283969
Ik ook een VB vraag! Het gaat over de Timer, ik wil m meerdere malen naast elkaar laten lopen (4x) om iets af te tellen op een knop tot het moment dat die knop weer vrijgegeven wordt.

ik gebruik nu de volgende Do While Loop:
1
2
3
4
5
6
7
8
Do While (Timer <= StartCrime + PauseCrime)
       DoEvents
       btnCrime.Enabled = False
       btnCrime.Caption = "Waiting " & Round(StartCrime - Timer + PauseCrime) & " secs"
       PauseCrime = PauseCrime - 0.000001
       blnCrime = False
      Call checkCar
Loop


De button wordt disabled, de titel telt af in secondes. De pausetijd (PauseCrime) wordt minimaal veranderd vanwege andere stukjes code in de Form maar das hier niet van toepassing. De boolean wordt weer False om andere dingen te kunnen checken en er wordt een checkCode opgeroepen om te kijken of de andere timer loopt.

Maar omdat ik een vrij snelle computer heb gaat ie echt 100 loops per seconde doen ongeveer waardoor je dus de knop ziet flitsen en gaan als een idioot, wat erg irritant is.

Wat wil ik
Ik wil dus eigenlijk een Do While Loop die echt maar 1x per seconde loopt...enig idee? (En ondertussen ook nog in andere Do While Loops kan hangen omdat er dus nog 3 soortgelijke knoppen zijn).
  maandag 20 februari 2006 @ 12:41:04 #44
2671 Aaargh!
Gebruik op eigen risico.
pi_35284368
quote:
Op maandag 20 februari 2006 12:29 schreef DaFan het volgende:
Ik ook een VB vraag! Het gaat over de Timer, ik wil m meerdere malen naast elkaar laten lopen (4x) om iets af te tellen op een knop tot het moment dat die knop weer vrijgegeven wordt.

ik gebruik nu de volgende Do While Loop:
[ code verwijderd ]
Wat jij doet heet een busy-wait, en dat mag je NOOIT doen op een multitasking OS.

Je programma gaat dan CPU tijd gebruiken terwijl ie het niet nodig heeft, normaliter doe je dit door een thread te starten voor de teller en steeds je thread een seconde stil te zetten (je vraagt dan feitelijk aan de scheduler om je thread een seconde lang niet te laten runnen). Maar volgens mij heeft VB geen support voor multithreading

Wat je in VB waarschijnlijk kan doen is een timer maken die na 1 seconde een event genereerd (dat kan neem ik aan?) .
It is impossible to live a pleasant life without living wisely and well and justly.
And it is impossible to live wisely and well and justly without living a pleasant life.
pi_35285174
quote:
Op maandag 20 februari 2006 12:41 schreef Aaargh! het volgende:

[..]
Wat je in VB waarschijnlijk kan doen is een timer maken die na 1 seconde een event genereerd (dat kan neem ik aan?) .
Het probleem van de Timer() is dat ie telt in seconden vanaf middernacht Daarom moet je ook die <= gebruiken. Je kan m niet laten starten vanaf het moment dat je de Sub oproept.

Maar een aparte event oproepen na een seconde is ook wel een manier die eventueel te coden is...ik ga wat proberen vandeweek. (Ben ziek dus beetje concentreren op een lap code lukt me niet)
  maandag 20 februari 2006 @ 13:43:54 #46
2671 Aaargh!
Gebruik op eigen risico.
pi_35286438
quote:
Op maandag 20 februari 2006 13:05 schreef DaFan het volgende:

[..]

Het probleem van de Timer() is dat ie telt in seconden vanaf middernacht Daarom moet je ook die <= gebruiken. Je kan m niet laten starten vanaf het moment dat je de Sub oproept.
Ik heb in een grijs verleden nog wel eens met VB geprutst (nog steeds nachtmerries van). Maar volgens mij had je toen gewoon een Timer dingetje wat je b.v. op 1 seconde kon zetten en dan ging er gewoon elke seconde een event af.
It is impossible to live a pleasant life without living wisely and well and justly.
And it is impossible to live wisely and well and justly without living a pleasant life.
pi_35288095
quote:
Op maandag 20 februari 2006 13:43 schreef Aaargh! het volgende:

[..]

Ik heb in een grijs verleden nog wel eens met VB geprutst (nog steeds nachtmerries van). Maar volgens mij had je toen gewoon een Timer dingetje wat je b.v. op 1 seconde kon zetten en dan ging er gewoon elke seconde een event af.
Ik ben het nog niet tegen gekomen. Als er anderen zijn die dit topic lezen en het wel weten...graag

Alvast bedankt iig voor je hulp
  maandag 20 februari 2006 @ 15:21:25 #48
15929 DiRadical
Everything's ruined
pi_35289611
quote:
Op maandag 20 februari 2006 13:43 schreef Aaargh! het volgende:

[..]

Ik heb in een grijs verleden nog wel eens met VB geprutst (nog steeds nachtmerries van). Maar volgens mij had je toen gewoon een Timer dingetje wat je b.v. op 1 seconde kon zetten en dan ging er gewoon elke seconde een event af.
Dat klopt.
Je kunt de timer.inteval op 1000 zetten (tijd in milli seconden) en dan gaat het event elke seconde af totdat de timer disabled wordt
In het timer event kun je de timer disabelen.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Dim stDate As Date

Private Sub Form_Load()
stDate = Now()
Label1.Caption = ""
Timer1.Enabled = True

End Sub

Private Sub Timer1_Timer()
If DateDiff("s", stDate, Now()) <= 5 Then
    Label1.Caption = Label1.Caption + Format(Now(), "dd-mm-yy hh:nn:ss") + vbNewLine
Else
    Label1.Caption = Label1.Caption + "einde"
    Timer1.Enabled = False
End If
End Sub
Happyness is nature's way of informing human resources that you're overpaid
-Catbert: Evil director of HR
pi_35291436
DiRadical:
Die code van jou gaat om de 1 sec in de If functie? En dat 5x?
pi_35292147
quote:
Op maandag 20 februari 2006 15:21 schreef DiRadical het volgende:

[..]

Dat klopt.
Je kunt de timer.inteval op 1000 zetten (tijd in milli seconden) en dan gaat het event elke seconde af totdat de timer disabled wordt
In het timer event kun je de timer disabelen.
[ code verwijderd ]
Is het niet beter om een API timer te gebruiken?

Deze code moet dan in een module:

1
2
3
4
5
6
7
8
9
10
11
12
13
Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long

Dim Timer1 As Long

Function StartTimer1()
   Timer1 = KillTimer(0, Timer1)
   Timer1 = SetTimer(0, 0, 1000, AddressOf TimerSub1) 
End Function 

Function StopTimer1()
   Timer1 = KillTimer(0, Timer1)
End Function


Dit mag in een module staan, maar ook in een form:

1
2
3
Public Function TimedSub1() 
   'code in deze functie wordt om de 1000 ms getriggerd door de timer
End Function


Deze code moet in de form staan:

1
2
3
Private Sub Form_Unload(Cancel As Integer)
   StopTimer1
End Sub


Om de timer te starten gebruik je: StartTimer1
Om de timer te stoppen gebruik je: StopTimer1

Owja, niet op de stop knop van VB drukken voordat je een API timer gestopt hebt, anders crasht VB
  maandag 20 februari 2006 @ 16:59:57 #51
15929 DiRadical
Everything's ruined
pi_35293262
quote:
Op maandag 20 februari 2006 16:10 schreef DaFan het volgende:
DiRadical:
Die code van jou gaat om de 1 sec in de If functie? En dat 5x?
Ja,
Iedere seconde wordt het timer1_timer event afgevuurd.
Dat komt omdat de interval op 1000 staat in het control.
Na 5 seconden wordt de timer disabled
Dit kun je natuurlijk ook doen als je het form afsluit (het form_unload of Form_QueryUnload event)
Dan worden de functies die je in het timer event aanroept iedere seconde uitgevoerd, totdat je het scherm afsluit.
Happyness is nature's way of informing human resources that you're overpaid
-Catbert: Evil director of HR
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')