Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[VB.NET] Timer vraag (kookwekker)

Pagina: 1
Acties:
  • 1.116 views sinds 30-01-2008
  • Reageer

  • StarWars
  • Registratie: Februari 2004
  • Laatst online: 16-11 16:38
Hallo allemaal ik ben begonnen met programeren in VB.net ik heb inmiddels een half boek verslonden met voorbeeld zoals knoppen die onder je muis verdwijnen, een soort rare rekenmachine maar nu heb ik toch iets waar ik als beginner niet uit kom. Mijn vriendin zou een kookwekker wel op prijs stellen, en ik wil die nu zelf maken...

Een kookwekker programma, ik heb een form, button, label, tekstvak en een timer.

De bedoeling is dat de button ook kan bedienen met een toets van mijn toetsenbord, b.v. 'a', in het textvak vul ik b.v. 80 (seconden) in en als ik dan op button1 druk zou die moeten gaan aftellen in label1 tot 0 en dan een alarmgeven. Als ik de button in druk gaat ie weer opnieuw lopen.

Het form samenstellen lukt mij uiteraard, ik heb al heel wat gegoogeled en fora afgespeurd, dan krijg ik wel code van stopwatchen enzo maar die ombouwen lukt niet. Andere code die ik wilde proberen was oud, en wordt niet meer gebruikt in vb.net.

Ik zou het zeer op prijs stellen als iemand mij een duwtje in de goede weg kan geven, mischien is dit topic ook leerzaam voor andere beginners. :)

hopla


  • whoami
  • Registratie: December 2000
  • Nu online
Wat is je probleem eigenlijk precies ?
Wat lukt er niet , en waar kom je niet uit ? Kan je even aantonen wat je probleem juist is ?
Het is nl. niet de bedoeling dat we hier een kant en klaar programma gaan voorkauwen; we willen je best helpen met je probleem, maar dan moet je wel eens zeggen wat het probleem is; maw, zelf al een beetje de vinger op de wonde kunnen leggen.

https://fgheysels.github.io/


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Wat sowieso een goed idee is, is niet op zoek gaan naar code om te copy/pasten en dan aan te passen maar op zoek gaan naar code die je kunt begrijpen en dan naar eigen inzicht je eigen code te schrijven uit je eigen "losse pols" die exact doet wat je wil. Niet meer en niet minder.

Programmeren is juist de kunst van het zélf schrijven van code, niet het aan elkaar plakken (of jatten) van andermans code. Doorgaans zijn voorbeelden die je online vindt puur van demonstratieve aard en dus "te simpel" of "te specifiek". Bedenk dat nergens een "dé code" voor is. Vele wegen leiden naar Rome. Zelfs een stopwatch of kookwekker kun je op 1001 manieren programmeren. Zoeken naar "dé code" op het web is daarom ook onzinnig. Zoek eerder naar het principe, het achterliggende idee en zorg dat je dat begrijpt. En werk van daaruit je eigen code uit. Ik zie vaak boeken/online tutorials die zeggen/schrijven "kijk, dit en dat doe je zo" waarbij dat dan door de lezers wordt geïnterpreteerd als "dat is dé manier". Dat is vaak helemaal niet zo, meestal geldt het alleen voor een basisprincipe; niet de code die erna volgt.

En andere valkuil is dat je als 'beginner' vaak niet snel 'aanvoelt' welke code bruikbaar/goed is en welke code bagger/onbruikbaar is. Voor je het weet zit je op compleet het verkeerde spoor aanpassingen te maken in code die in the first place nooit had moeten gebruikt worden voor je project.

Wat helpt is om eens even op papier te zetten (of doe eens stoer: pak notepad of visio) en bekijk welke inputs/outputs je hebt, welke acties er zijn, wanneer wat moet gebeuren en probeer dat in een simpel 'diagram' voor jezelf uit te werken. Als je een beetje doorgewinterde devver bent draai je voor dit soort projectjes je hand niet meer om, maar dan gebruik je nog steeds (min-of-meer) dezelfde werkwijze voor de grotere/complexere projecten (en aan die kleintjes begin je dan niet eens meer ;) ).

Nog een tip: Bouw niet in je eerste project meteen alle toeters en bellen, laat je niet afleiden door "geile features" die misschien wel heel gaaf uitzien of vette shizzle doen maar die buiten de primaire functionele eis vallen: Het ding moet 'afgaan' op tijd X of na tijd X. Dus ga niet aan de slag met "skins", "webservices", "gebruikers, groepen en rechten" en ga zo maar door. Ik zie zo vaak dat een simpel project(je) compleet uit de klauwen loopt en waarbij de eigenlijke opdracht naar de achtergrond gedrukt wordt...en dan vervolgens in /dev/null belandt :)

Vandaar ook dat we hier in PRG vragen naar wat je zelf al geprobeerd hebt, en wat er dan niet aan lukt. Wij kunnen je niet zeggen "zo schrijf je een kookwekker" (ja, dat kunnen we wel, maar dat is het punt niet); want voor hetzelfde geld heb je al compleet andere code en is 1 simpele aanpassing daaraan ook voldoende. Dat kunnen wij ook niet ruiken zonder dat je post wat je al (geprobeerd/geprogrammeerd) hebt. Al met al is dit dus eigenlijk een moeilijkere en omslachtigere (en langere) manier van zeggen wat whoami hierboven me ook al zegt ;)

[ Voor 41% gewijzigd door RobIII op 04-11-2007 23:12 ]

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


  • StarWars
  • Registratie: Februari 2004
  • Laatst online: 16-11 16:38
Hoi,

Bedankt voor jullie reply's, stel ik zeer op prijs! Ik heb wel code maar die slaat kant nog wal... Ik denk dat ik even te hard van stapel ben gelopen, zou dit topic open mogen blijven tot dat ik een code heb samengesteld waarvan ik denk dat het wat is?

Het grote probleem wat ik heb is denk ik dat ik niet goed weet wat de inhoud is van de classes, methods en (structures?) (Dim stopwatch As (hierna komt een hele rij met mogelijkheden, structures?). Wat kan ik ermee, waar kan ik concreet vinden wat, wat doet? Ik heb wel MSDN Library geinstaleerd, maar als ik dan zoek op bv. TimeSpan dan weet ik niet goed hoe ik de code moet gebruiken zoals die in MSDN word gepresenteerd... Nou ja kortom ik moet écht lid worden van een computer club of een professionele cursus volgen, maar een kookwekker moet me toch lukken!!!

:)

hopla


  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 17-10 16:43
Deze link al gezien: http://msdn2.microsoft.co...rary/system.timespan.aspx

hoewel ik moet zeggen dat het daar nodeloos ingewikkeld staat en ik er zelf ook niet 1,2,3 uitkom :(
(terwijl ik toch al een tijdje programmeer, en (vind ik) met heel wat ingewikkelders bezig ben dan een timespan :P )

Wat veel makkelijker is, is de functie datediff

Ik heb hier onder even een stukje voorbeeld code geschreven over hoe je een datediff gebruikt en ik denk dat je hiermee een heel eind moet komen:

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
Public Class Form1
    Dim bStarted As Boolean
    Dim begintime As Date
    Dim endtime As Date


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If bStarted = True Then
            bStarted = False
            endtime = Now
            Label1.Text = DateDiff(DateInterval.Second, begintime, endtime).ToString()

            Exit Sub
        End If

        If bStarted <> True Then
            bStarted = True
            begintime = Now

            Exit Sub
        End If

        

    End Sub
End Class


Edit2:

Nu kun je zelf wel uitvogelen hoe je een datediff gebruikt om via components->timer een alarmklok kan maken!

[ Voor 56% gewijzigd door roy-t op 05-11-2007 11:52 ]

~ Mijn prog blog!


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Hoewel je reply goedbedoeld is; het was nou nét de bedoeling het niet helemaal voor te kauwen. Je kunt iemand die honger heeft beter leren vissen dan 'm een vis te geven ;)
StarWars schreef op zondag 04 november 2007 @ 23:50:
Het grote probleem wat ik heb is denk ik dat ik niet goed weet wat de inhoud is van de classes, methods en (structures?) (Dim stopwatch As (hierna komt een hele rij met mogelijkheden, structures?).
Dan mis je toch nog écht de basis en lijkt het me niet onverstandig om hoofdstuk 1 (en 2, 3?) nog eens opnieuw door te nemen. Als je al niet weet wat een structure/class is (of het verschil) dan heb je vrees ik toch echt te snel erdoorheen gevlogen.

[ Voor 49% gewijzigd door RobIII op 05-11-2007 10: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


  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 17-10 16:43
@ ROBIII

aan de ene kant heb je gelijk (ofc) maar aan de andere kant heb ik niet exact de kookwekker voor gedaan. Alleen een voorbeeld van datediff, en een voorbeeld in tekst om die te gaan gebruiken.

Verder heb ik zelf naar timespan gekeken of de TS daar wat uit kan halen. Maar dat is nodeloos ingewikkeld.

Misschien heb ik de vis al gevangen en op lang gelegd, maar de ts moet de vis iig nog oprapen :P

En ik ben het er inderdaad mee eens dat de TS zijn VisualBasic boekjes/videotutorials nog even wat beter moet bekijken. Je weet dat niet dat er zoiets bestaat als datediff/timespan, maar de overige vragen toch wel.

Ik ben het dus deels wel met je eens en ik heb daarom naar aanleiding van je reply wel mijn stukje even ge-edit. Zodat alleen het datediff voorbeeld er staat. Zo is het iets uitdagender en onthoud je het zodadelijk beter.

:) succes TS

[ Voor 16% gewijzigd door roy-t op 05-11-2007 11:51 ]

~ Mijn prog blog!


  • ? ?
  • Registratie: Mei 2007
  • Niet online

? ?

op 1 minuutje:
hier te downloaden
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    Dim teller As Integer = 0

    Private Sub buGo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles buGo.Click
        tmrTick.Enabled = True
        teller = 0
    End Sub

    Private Sub tmrTick_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrTick.Tick
        Dim tot As Integer = Convert.ToInt32(tbSeconden.Text)
        tbTeGaan.Text = (tot - teller).ToString
        teller += 1
        If (teller > tot) Then
            MessageBox.Show("klaar!")
            tmrTick.Enabled = False
        End If
    End Sub


Lees je boek nog eens goed en probeer zelf wat te wijzigen enz

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
era.zer schreef op maandag 05 november 2007 @ 17:19:
op 1 minuutje:
Linkje naar kant-en-klaar-voorgekauwde-oplossing
Wat was hier niet duidelijk aan?
RobIII schreef op maandag 05 november 2007 @ 10:42:
[...]

Hoewel je reply goedbedoeld is; het was nou nét de bedoeling het niet helemaal voor te kauwen. Je kunt iemand die honger heeft beter leren vissen dan 'm een vis te geven ;)
Komaan zeg, gaan we nu voor iedereen kant-en-klare oplossingen aandragen? :|

[ Voor 6% gewijzigd door RobIII op 05-11-2007 17:54 ]

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


  • StarWars
  • Registratie: Februari 2004
  • Laatst online: 16-11 16:38
RobIII schreef op maandag 05 november 2007 @ 17:51:
[...]

Wat was hier niet duidelijk aan?


[...]

Komaan zeg, gaan we nu voor iedereen kant-en-klare oplossingen aandragen? :|
Ja, het helpt mij dus echt gigantisch, het toepassen van functies, classes etc anders dan in mijn boek staat is echt heel lastig, ook met MSDN, ook met google. Je weet namelijk niet wat het precies (naadje van de kous) allemaal doet en dan zit je ook nog met de terminologie en begripsvorming, dit is voor mij allemaal nieuw.

therat10430 en era.zer erg bedankt voor de hulp, RobIII ik snap wel wat jij bedoelt, maar ik ben het niet geheel met je eens, er is een verschil tussen een "hardwerkende beginner" en iemand die te lui is om e.e.a. te onderzoeken. Mischien moet er gewoon een forumplaats bij, voor beginnende programmeurs... :)

hopla


  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 17-10 16:43
era.zer schreef op maandag 05 november 2007 @ 17:19:
op 1 minuutje:
hier te downloaden
code:
1
 ...


Lees je boek nog eens goed en probeer zelf wat te wijzigen enz
Lol heb ik na aanleiding van ROBIII's reply toch even mijn post aangepast om het wat uitdagender te maken. Post jij alsnog de hele code :P

*verder heeft de TS niks meer van zich laten horen?*

Zeer voorspelbaar dat de TS post terwijl ik dat typte ^^

Anyway geen probleem. Een appart forum lijkt me niet nodig trouwens, programming is niet zo druk dat je er als beginner niet je vraag kan stellen.

Verder denk ik wel dat ROBIII gelijk heeft. Ikzelf kan dingen ook het beste leren als ik stukjes voorbeeldcode voor net iets andere functie zie en ze dan knip/plak/bijschrijf en verander/tweak tot ze doen wat ik wil. :)

[ Voor 31% gewijzigd door roy-t op 05-11-2007 18:35 ]

~ Mijn prog blog!


  • StarWars
  • Registratie: Februari 2004
  • Laatst online: 16-11 16:38
therat10430 schreef op maandag 05 november 2007 @ 18:33:
[...]


Lol heb ik na aanleiding van ROBIII's reply toch even mijn post aangepast om het wat uitdagender te maken. Post jij alsnog de hele code :P

*verder heeft de TS niks meer van zich laten horen?*
Hoi, jawel!! we zijn elkaar net mis gelopen :)

hopla


  • sjongenelen
  • Registratie: Oktober 2004
  • Laatst online: 27-11 08:24
RobIII schreef op maandag 05 november 2007 @ 17:51:
[...]

[...]

Komaan zeg, gaan we nu voor iedereen kant-en-klare oplossingen aandragen? :|
hmm... ik snap wat je bedoeld, maar voor mij is het zo (met java bijvoorbeeld) dat wanneer ik iets copy paste, ik de code doorlees en iets nieuws wat ik niet ken, dan zoek ik het op en gebruik en snap ik het... eehhhmm voorbeeld: tijd in milliseconden met java, en ehm.. JFormattedTextField ofzo :)

you had me at EHLO


  • ? ?
  • Registratie: Mei 2007
  • Niet online

? ?

Na de openingspost was het al duidelijk dat de TS hier niet echt hoort, maar ipv te discussieren ff 10 regels code posten: De TS kan nu zijn klokje tonen aan zijn vriendin, she amazed, he happy. En hij leert er misschien nog wat van.
sorry rob, wilde je niet ergeren

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
era.zer schreef op maandag 05 november 2007 @ 22:52:
sorry rob, wilde je niet ergeren
:D
Je ergert me niet hoor ;) Ik vind het gewoon jammer dat TS nu alles voorgekauwd-en-wel aangereikt krijgt op een zilveren presenteerschaaltje.
era.zer schreef op maandag 05 november 2007 @ 22:52:
En hij leert er misschien nog wat van.
Van copy/pasten (of sterker: complete projecten downloaden en "hello world" veranderen naar "hallo wereld") leer je niks. Dat was het hele punt ;)

[ Voor 33% gewijzigd door RobIII op 05-11-2007 23:03 ]

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


  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 17-10 16:43
era.zer schreef op maandag 05 november 2007 @ 22:52:
Na de openingspost was het al duidelijk dat de TS hier niet echt hoort, maar ipv te discussieren ff 10 regels code posten: De TS kan nu zijn klokje tonen aan zijn vriendin, she amazed, he happy. En hij leert er misschien nog wat van.
sorry rob, wilde je niet ergeren
Wow wow :P

Ik denk dat mijn eerste vraag op GoT erger was hoor ;)

En tegenwoordig kan ik toch redelijk mee komen met de proggers (licht er een beetje aan wat voor onderwerpen, de kant waar ik me het meest mee bezig houd. (C#/XNA gameprogramming en VB/C# clientside programming) komen helaas minder vaak voor dan PHP/JAVA vragen :)

~ Mijn prog blog!

Pagina: 1