Henrik-->Mon ikke du mener, at det at dividere med 1000 er det samme som at gange med 0,001? Og så er problemet jo stadig at få tekststrengen konverteret til tal.
Jeg kan ikk efå noget af det til at virke. Det er fordi jeg er ved at lave en mp3 afspiller og det komponent jeg bruger giver plaseringen ii frames, og så vil jeg jo lave den om til minutter.
for 1 frame? Skal du så lave tiden i sek om til tiden i minutter? Så skal du dividere med 60 yderliger. Du skal i øvrigt benytte benoit's metode. Det er nødvendigt at arbejde med flydende tal.
var str: string; r: extended; begin str:=987; // din oprindelige streng. r:=strtofloat(str); r:=r/1000; str:=floattostr(r); // føres tilbage til str. end;
Jeg skal se lidt kode før jeg kan gøre mere, tror jeg.
Nu bliver jeg nysgerrig: I Delphi kan man altså godt skrive s=123, når s er erklæret som en streng og ikke s="123". Det er sådan noget, der er med til at øge mængden af fejl.
Når jeg sætter det ind sådan her, kommer den med incobatible string fejlen. str:=MPegPlayer1.CurrentPosition; // din oprindelige streng. r:=strtofloat(str); r:=r/1000; str:=floattostr(r); // føres tilbage til str.
altså strtofloat('5000') laver 5000 som er en string, om til typen real. frem for en integer ved du jo nok at real kan holde decimal tal. Når de 5000 er lavet til typen real kan du dividere med det du nu vil. For at vise resultatet laver jeg det tilbage til en string vedhjælp af floattostr()
function MilliSecondsToString(MilliSeconds: integer): string; var i1, i2: integer; begin i1:=(MilliSeconds div 1000) div 60; i2:=(MilliSeconds div 1000)-(i1*60); Result:=FormatFloat('00',i1)+':'+FormatFloat('00',i2); end;
STR er af typen string. Derfor duer dette sikkert ikke: str:=MPegPlayer1.CurrentPosition; // din oprindelige streng.
men hvis du skriver:
mPegPlayer1.Currentposition:=mPegPlayer1.Currentposition div 1000;
Så laver den en heltals division (den dividere så meget gange den kan, og smider resten ud, så der ikke er et kommatal). Det bør den kunne klare. Det andet jeg viste var en er en typecasting funktion. Og den kan du bruge i mange andre funktion. Prøv at skriv inttostr og så trykke F1. Så får du en oversigt over de muligheder der er.
MPegPlayer1.CurrentPosition lyder, som det er blevet nævnt, som en Integer. Prøv dette: str := IntToStr(MPegPlayer1.CurrentPosition); // din oprindelige streng. str := floattostr(strtofloat(str) / 1000);
Jeg fik hjælp af ham der havde lavet MPegPlayer1 koden til mig, så jeg lukker
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.