Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi DWORD nach single konvertieren (https://www.delphipraxis.net/88565-dword-nach-single-konvertieren.html)

EWeiss 17. Mär 2007 11:12


DWORD nach single konvertieren
 
Delphi-Quellcode:
CurrentMilliseconds : DWORD;
StartMilliseconds : DWORD;
Delphi-Quellcode:
(CurrentMilliseconds - StartMilliseconds / 1000.0)
wie kann ich dieses zeile nach single konvertieren finde nix.

gruss Emil

mkinzler 17. Mär 2007 11:14

Re: DWORD nach single konvertieren
 
Delphi-Quellcode:
erg: Single;
...
erg := (CurrentMilliseconds - StartMilliseconds) / 1000.0;

EWeiss 17. Mär 2007 11:19

Re: DWORD nach single konvertieren
 
Zitat:

Zitat von mkinzler
Delphi-Quellcode:
erg: Single;
...
erg := (CurrentMilliseconds - StartMilliseconds) / 1000.0;


Delphi-Quellcode:
function GetTimes: single;
Var
  erg : single
begin

    if not StartMilliseconds <> 0 then
        StartMilliseconds := GetTickCount();

    CurrentMilliseconds := GetTickCount();
    erg := (CurrentMilliseconds - StartMilliseconds / 1000.0);
    Result := erg;
end;
Dann müßt Result := erg sein oder ?
Frage mich nur warum das nicht einfach so geht ??

Delphi-Quellcode:
single(CurrentMilliseconds - StartMilliseconds / 1000.0);
Denke das ist mein problem mit der Schleife wurde immer ein DWORD wertübergeben
deshalb haben sich die Peaks nicht vom spectrum gelößt.

gruss und wie immer danke für deine Hilfe..

mkinzler 17. Mär 2007 11:21

Re: DWORD nach single konvertieren
 
Es sollte auch so gehen:
Delphi-Quellcode:
result := (CurrentMilliseconds - StartMilliseconds) / 1000.0;
Achtung beachte meine Korrektur der Klammersetzung.

EWeiss 17. Mär 2007 11:32

Re: DWORD nach single konvertieren
 
Zitat:

Zitat von mkinzler
Es sollte auch so gehen:
Delphi-Quellcode:
result := (CurrentMilliseconds - StartMilliseconds) / 1000.0;
Achtung beachte meine Korrektur der Klammersetzung.

Sieht nicht danach aus .. hmmm
immer 0;

static DWORD StartMilliseconds
sind static declariert weiss nicht ob das jetzt was ausmacht.

gruss

Hawkeye219 17. Mär 2007 11:37

Re: DWORD nach single konvertieren
 
Hallo Emil,

Zitat:

Zitat von EWeiss
Delphi-Quellcode:
if not StartMilliseconds <> 0 then
  StartMilliseconds := GetTickCount();

Ich glaube, was du wirklich erreichen willst ist das:

Delphi-Quellcode:
if not (StartMilliseconds <> 0) then
  StartMilliseconds := GetTickCount();
oder noch besser:

Delphi-Quellcode:
if (StartMilliseconds = 0) then
  StartMilliseconds := GetTickCount();
NOT bindet stärker als ein Vergleich und wird somit zuerst ausgewertet.

Gruß Hawkeye

EWeiss 17. Mär 2007 11:42

Re: DWORD nach single konvertieren
 
Zitat:

Zitat von Hawkeye219
Hallo Emil,

Zitat:

Zitat von EWeiss
Delphi-Quellcode:
if not StartMilliseconds <> 0 then
  StartMilliseconds := GetTickCount();

Ich glaube, was du wirklich erreichen willst ist das:

Delphi-Quellcode:
if not (StartMilliseconds <> 0) then
  StartMilliseconds := GetTickCount();
oder noch besser:

Delphi-Quellcode:
if (StartMilliseconds = 0) then
  StartMilliseconds := GetTickCount();
NOT bindet stärker als ein Vergleich und wird somit zuerst ausgewertet.

Gruß Hawkeye

Was ich erreichen möchte das mir ein realer Single wert übergeben wird..

Delphi-Quellcode:
function GetTimes: single;
Var
    sng : Single;
begin

    if not StartMilliseconds <> 0 then
        StartMilliseconds := GetTickCount();

    CurrentMilliseconds := GetTickCount();
    sng := (CurrentMilliseconds - StartMilliseconds) / 1000.0;
    Result := sng;

end;
so ist der wert immer 0

Delphi-Quellcode:
function GetTimes: single;
Var
    sng : Single;
begin

    if not StartMilliseconds <> 0 then
        StartMilliseconds := GetTickCount();

    CurrentMilliseconds := GetTickCount();
    sng := (CurrentMilliseconds - StartMilliseconds / 1000.0);
    Result := sng;

end;
So immer DWORD oder integer keinesfalls Single das würde einen kommawert
zurückliefern.

Beides funktioniert irgendwie nicht.
Wenn ich keinen single wert bekomme dann lößt sich mein Peak nicht
von den Spectrum balken..

sehr seltsam das ganze.

gruss Emil

mkinzler 17. Mär 2007 11:44

Re: DWORD nach single konvertieren
 
Hallo Emil,
du scheinst unsere Anworten nicht richtig durchzulesen.
Ich habe dir schon zweimal die Klammern korrigiert. Und Hawkeye hat dir gesagt, das der Fehler in der Abfrage liegt.
[Edit: Ich hätte meine Antwort vor dem posten auch mal Durchlesen sollen...Tippfehler (hoffentlich alle) korrigiert]

EWeiss 17. Mär 2007 11:55

Re: DWORD nach single konvertieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von mkinzler
Hallo Emil,
du scheinst unsere Anworten nicht richtig durchzulesen.
Ich habe dir schon zeimal die Klammern korrigiert. Und Hawkexe hat dir gesagt, das der Fehler in der Abfrage liegt.

Doch habe eure Infos richtig durchgelesen..
Bin im momnet etwas daneben .. da schon so viele sachen ausprobiert welche kein ergebnis zur folge hatte.

DWORD zu Single nee Klammer versetzt und die IF abfrage korrigiert schon gehts.
Und dafür 2 Tage rumsuchen wo der Fehler nun liegt.

Nun funktioniert es auch...

Fehler 1. falsche klammer
Fehler 2. 'Nicht mehr oder weniger' sondern = 0

Danke an beide.

Hier ein pic wies nun ausschaut...
Die Texture kann man immer noch ändern, vielleicht dem user überlassen welche er
für das Spectrum und den Peaks einfügen will.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz