ja, men jeg kan ikke få den til at tælle .. kun fra 9 til 0 :(((
jeg ville gerne havde at den gav mig denne string 2:30 2:29 2:28 -> 0:00 osv
i stedet giver den mig test9 test8 test7 test6 -> test|
den kan maks tælle i 9 sek, som den er nu .. jo jo den kan godt tælle videre, men den vidser ikke tal længere end til 9, så begynder den at tælle i ascii
Jeg beklager, men jeg forstår overhovedet ikke hvad du mener.
Kan du ikke prøve at beskrive helt forfra hvad det er, du prøver på. Du må meget gerne supplere med noget mere kode, for jeg har på fornemmelsen, at der foregår mere end blot den funktion du har vist.
Det er et skakspil, hvor der er lavet 4 editboxe under hinanden, meningen er at man ved hjælp af nogel radiobuttens kan vælge hvor langtid spillet skal vare.
det vil sige at hvis jeg kunne få denne funktion til at virke .. altså med at vise tiden .. ville det ikke være det store at hente informationen fra den radiobutten der er aktiv.
case WM_TIMER: if(!RunTidstager) //Uret skal ikke køre. KillTimer(hwnd,TidsTagerId); else { if(tur) { if(tur==Hvid) { --TidHvid; SetDlgItemText(hwnd,Spiller1TidBox,(Secleft(TidHvid)).c_str()); if(TidHvid<=0) //Tidsudløb for hvid { tur=0; RunTidstager=false; KillTimer(hwnd,TidsTagerId); MessageBox(NULL,\"Hvids tid er udløbet\",\"Tillykke Sort du har vundet\",0); } } else //sort { --TidSort; SetDlgItemText(hwnd,Spiller2TidBox,(Secleft(TidSort)).c_str()); if(TidSort<=0) //Tidsudløb for Sort { //MessageBox(NULL,\"Sorts tid er udløbet\",\"Tillykke Hvid du har vundet\",0); tur=0; RunTidstager=false; KillTimer(hwnd,TidsTagerId); } } } } return 0;
Som det er nu, vil der gå tre sekunder, så vil sort vinde. i den tid vil den i tidsfeltet skrive testd, testc, testb ... meningen er at den skal tælle ned på skærmen altså hvis man nu har valgt radiobutten 1, 5 min 5:00, 4:59, 5:58 ->
case IDOK: //Opdatere navne: if(IsDlgButtonChecked(hwndDlg,IDC_CHECK1)==BST_UNCHECKED) { GetDlgItemText(hwndDlg,IDC_EDIT1,Spiller1,MaxSpillerNavn); GetDlgItemText(hwndDlg,IDC_EDIT2,Spiller2,MaxSpillerNavn); }
Jeg antager, at du ønsker en funktion som dels returnerer en tekststreng, med den aktuelle, resterende tid, dels tæller tiden ned. Funktionen skal så kaldes hver gang en timer har brugt yderligere et sekund. (Var det derfor ikke oplagt at bruge timeren til at måle tiden ?)
Bemærk at tidsvaerdi overføres \"by reference\", dvs. at du kan rette på indholdet af den oprindelige værdi. For at justere/vise tiden skal du blot kalde d.o. funktion i stil med dette:
SetDlgItemText(hwnd,19, SecTilTidspunkt(TidHvid))); eller SetDlgItemText(hwnd,19,SecTilTidspunkt(TidSort));
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.