Ga naar inhoud

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


anoniem

Aanbevolen berichten

[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
Link naar reactie
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?
Link naar reactie
[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: )
Link naar reactie
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)
Link naar reactie
[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.
Link naar reactie
[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)
Link naar reactie
  • 2 maanden later...
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.
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...