Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fragen zum typ Float und ini.WriteFloat (https://www.delphipraxis.net/18489-fragen-zum-typ-float-und-ini-writefloat.html)

Cathleen 19. Mär 2004 15:00

Re: Fragen zum typ Float und ini.WriteFloat
 
Ich muss doch die Variable in eine FLoat deklarieren, damit ich den Wert
mit dem ini.Writefloat an die Ini Übergeben kann, oder habe ich da was falsch verstanden?

Mario 19. Mär 2004 15:01

Re: Fragen zum typ Float und ini.WriteFloat
 
Nein, als Real oder Double. Es gibt den Typ Float nicht.

Cathleen 19. Mär 2004 15:09

Re: Fragen zum typ Float und ini.WriteFloat
 
Ich habe jetzt meine Variable i als Real deklariert.
In der ini Datei kommen aber keine Gleitkommazahlen an.

Delphi-Quellcode:
Var
i:real
begin
   edit1.Text:=FloatToStr(i);

  // Verzeichnispfad aus der Registry lesen
  Registry := TRegistry.Create;
  try
    Registry.RootKey := HKEY_LOCAL_MACHINE;
    Registry.OpenKey('SOFTWARE\Verzeichnis', False);
    iniFilePath := Registry.ReadString('iniDatei');
  finally
    Registry.CloseKey;
    Registry.Free;
  End;

      ini.WriteFloat('Schlüssel','Schlüssel',i);
    ini.free;
Hat vielleicht noch jemand einen Vorschlag?

Mario 19. Mär 2004 15:11

Re: Fragen zum typ Float und ini.WriteFloat
 
Hast Du überprüft, ob in i auch wirklich der Komma-Wert drin steht? Warum postest Du immer den Registry Code und lässt den Ini-Code ganz weg?

Das eigentliche Schreiben ist richtig.

Cathleen 19. Mär 2004 15:48

Re: Fragen zum typ Float und ini.WriteFloat
 
Du hast recht, in i steht garkeine Kommazahl drin.

Also jetzt versteh ich garnichts mehr nicht mehr :gruebel:

Das Textfeld edit.text wird in eine Datenbank gespeichert.

Delphi-Quellcode:
procedur InDBlesen();
SetTableFieldValue('i',Edit.Text);
In der Datenbank kommt der Wert als Kommazahl an und wird auch so wieder aus der Datenbank ausgelesen.
Und warum schreibt er in meine Ini den Wert ohne Komma.
Vielleicht gibt es ja auch ganz andere Möglichkeiten meinen Wert als Gleitkommazahl weiter zu geben.

Weiß jemand wie man mit der Funktion FormatFloat umgeht?

Luckie 19. Mär 2004 16:02

Re: Fragen zum typ Float und ini.WriteFloat
 
Such deine Ini mal auf der Festplatte.
Delphi-Quellcode:
Registry := TRegistry.Create;
Wharscheinlich kuckst du immer noch in der alten. Dein Code sollte gehen, rein semantisch. Rein logisch ist er Blödsinn:
Delphi-Quellcode:
edit1.Text:=FloatToStr(i);
Wie soll hier der Wert von dem Edit in i abgelegt werden, wenn du dem Edit den Wert von i zuweist? :roll:

Wer weis, wo die gelandet ist. :gruebel:

cyberkiller0072001 19. Mär 2004 16:23

Re: Fragen zum typ Float und ini.WriteFloat
 
Du kannst nicht i unbelegt lassen und dann in ein feld schreiben. Wenn du den inhalt des feldes in der ini speichern willst, musst du schreiben:

Delphi-Quellcode:
ini.writestring(Section,Key,edit1.text);
wenn du einen str in eine real formatieren willst, dann:

Delphi-Quellcode:
var i: real;
...
i:=strtofloat(edit1.tzext);
:warn:

neolithos 19. Mär 2004 17:22

Re: Fragen zum typ Float und ini.WriteFloat
 
Bitte nicht real verwenden, da das in früheren Version eine andere Bedeutung hatte (real48).

sondern

Single (das ist das float aus von dem hier gesprochen wurde)
bzw.
Double (entspricht übrigens real)

r_kerber 19. Mär 2004 18:27

Re: Fragen zum typ Float und ini.WriteFloat
 
Moin Cathleen,

kann es sein, dass die Nachkomma-Stellen Nullen sind? Dann wäre das, was in der ini steht korrekt. Aus z.B. 11,00 wird dann eben 11.

Mario 22. Mär 2004 06:44

Re: Fragen zum typ Float und ini.WriteFloat
 
Wenn Du nicht rausbekommst, warum in I der Wert schon ohne Komma ist, wird Dir FormatFloat auch nicht weiterhelfen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:46 Uhr.
Seite 2 von 2     12   

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-2025 by Thomas Breitkreuz