Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

Programma 2 dingen teglijk laten doen, hoe doe ik dat?

None
15 antwoorden
  • Hey, ik wil nu een clock in mijn programma plaatsen, dioe gewoon blijft lopen (en dat moet je dan ook zien), maar ondertussen moet het programma wachten tot een toets wordt ingedrukt. Hoe doe ik dat?

    Ik heb echt geen idee hoe ik dat wil doen…
  • Threads is het magische woord :)
  • [quote:64f0ac53f6="turbo-pascal"]Hey, ik wil nu een clock in mijn programma plaatsen, dioe gewoon blijft lopen (en dat moet je dan ook zien), maar ondertussen moet het programma wachten tot een toets wordt ingedrukt. Hoe doe ik dat?

    Ik heb echt geen idee hoe ik dat wil doen…[/quote:64f0ac53f6]

    Threads en wachten tot er een toets wordt ingedrukt met kbhit()
    if(kbhit())
    {
    break;
    }

    Voor treaths probeer google
  • njaah, bedankt voor de info maar het gaat mij hier om pascal maar aangezien dat hier erg weinig (meer) gebruikt wordt is woordenuitleg prima!

    -TP, sorry maar ik weet wat break betekent (onderbreking van een loop) maar met dat mini stukje code ??? (mijn taal is niet C++ :cry: )

    btw staat jouw naam voor de afkorting van mijn naam? (turbo-pascal = tp :D)

    -Andreas, en wat is een thread?
  • [quote:3778f8f5b2="turbo-pascal"]njaah, bedankt voor de info maar het gaat mij hier om pascal maar aangezien dat hier erg weinig (meer) gebruikt wordt is woordenuitleg prima!

    -TP, sorry maar ik weet wat break betekent (onderbreking van een loop) maar met dat mini stukje code ??? (mijn taal is niet C++ :cry: )

    btw staat jouw naam voor de afkorting van mijn naam? (turbo-pascal = tp :D)

    -Andreas, en wat is een thread?[/quote:3778f8f5b2]

    Ik bedoel dit:

    while (TRUE)
    {
    if (kbhit())
    {
    break;
    }
    }

    als je een toest raakt dan gaat hij uit de while lus. Moet denk ook wel in pascal werken (denk :lol: )
  • [quote:d800d56b43="turbo-pascal"]Andreas, en wat is een thread?[/quote:d800d56b43]Weleens van Google of zo gehoord? Een klein beetje eigen inzet is toch niet teveel gevraagd?
  • Een thread is letterlijk een draad, elk programma is voor Windows een thread. In zo'n thread kan je één ding tegelijk doen, met meerdere threads kan je meerdere dingen tegelijk doen.

    Ik programmeer al jaren met Pascal, maar ben het oude command-line Pascal zo verleerd dat ik je geen code kan geven. Er staat vast wel vanalles op het Internet hierover. Het zou zelfs kunnen dat threads niet in Turbo Pascal bestaan, maar dit kan ik mis hebben.

    kbhit is volgens mij geen Pascal functie, hiervoor wordt KeyPress gebruikt. Deze wacht op een toetsaanslag en dan gaat het programma verder. Eerst de thread starten, daarna KeyPress aanroepen, vervolgens de thread stoppen en het programma laten stoppen.

    Ik betwijfel trouwens of threads wel kunnen in Pascal, maar zoals Pieter al zei moet je hier zelf ff info over zoeken. Anders zal je het in Delphi moeten doen, wat ook erg mooi is 8)
  • Als je voor Windows programmeert (ik zag een andere post van je), is er een WM_TIMER event waarop je kunt controleren in de message loop. Timer opzetten om bv iedere seconde een event te genereren en die afvangen. Geen threads voor nodig in dit geval.
  • [quote:c0d6610900="Wim Sturkenboom"]Als je voor Windows programmeert (ik zag een andere post van je), is er een WM_TIMER event waarop je kunt controleren in de message loop. Timer opzetten om bv iedere seconde een event te genereren en die afvangen. Geen threads voor nodig in dit geval.[/quote:c0d6610900]

    Maar hij programmeert niet voor Windows :wink: En al zou WM_TIMER werken, dan moet je het programma draaiende houden en dat kan niet met een timer, wel met een loop.
  • Ik programeer NU wel voor windows hoor meneer Stoking :lol:
    Wim had het hier bij het juiste eind, en ik zal wm_timer proberen…
  • [quote:a2431c3fd6="turbo-pascal"]Ik programeer NU wel voor windows hoor meneer Stoking :lol:
    Wim had het hier bij het juiste eind, en ik zal wm_timer proberen…[/quote:a2431c3fd6]
    Stokking is het kerel :wink:
    Owke, maar je gebruikt Turbo Pascal… Je programmeert wel voor Windows maar niet in Delphi maar command-line en dat bedoel ik met DOS meneer Pascal 8)
  • Excuses heer Sto[b:246d175fd7]kk[/b:246d175fd7]ing (voor het foruspellen van uw/je naam), BTW commandline is geen DOS. Maar oke .
    Ik ben Delphi 6 en 7 aan het downlaoden (wellewaar illegaal maar oke) Ik kijk wel welke het eerste klaar is.
    Wat is de nieuwste Delphi IDE/compiler ?
  • Nieuwste Delphi is nummero 7, maar dit jaar komt Delphi 8 nog.

    Command-line programma's werken als het goed is ook onder DOS, dus dat bedoel ik met voor DOS programmeren :)
  • [quote:44a50e6dd9="Johan Stokking"]Command-line programma's werken als het goed is ook onder DOS, dus dat bedoel ik met voor DOS programmeren :)[/quote:44a50e6dd9]Ja dat mocht je willen !
    Alleen echte DOSprogramma's werken onder DOS ! :D
  • Als je voor een Dos omgeving had gewerkt had je gewoon de timer interrupt (BIOS, 0x01C) kunnen afvangen, die komt 18,2 keer per seconde. Denk dat zoiets ook wel lukt onder Pascal. Het beste kun je dan een TSR (Dos, interrupt 0x31) maken die je weer afsluit wanneer je je eigen programma afsluit. Onder Windows is het een WM_TIMER event waar je op kan letten.

    Commandline programma's die gemaakt zijn met een 16 bit compiler werken prima onder Dos, maar als de compiler 32 bits code genereert dan zul je met Dos extenders moeten werken wil je ze onder Dos kunnen draaien.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.