Registy Werte scheinen nicht zu stimmen.

Rund um die LCL und andere Komponenten
Antworten
Benutzeravatar
Maik81SE
Beiträge: 308
Registriert: Fr 30. Sep 2011, 14:07
OS, Lazarus, FPC: Debian 12 (L 3.0.0.3 FPC 3.2.2); Windows 10 (L 3.99.0.0 FPC 3.2.0)
CPU-Target: x86-64; arm; avr
Wohnort: Lübeck
Kontaktdaten:

Registy Werte scheinen nicht zu stimmen.

Beitrag von Maik81SE »

Moin zusammen,

vorweg wünsche ich euch allen erst mal ein gesundes neues 2024.

Ich bin im Moment ein der Überarbeitung eines Programmes und musste beim testen eben feststellen, das die Übergabe zur Registy wohl ein Bug aufweist.
Vielleicht habe ich auch nur einen Denkfehler, den auch ich nicht ausschließen möchte.

In der FormCreate schaue ich, ob Grundlegende Daten vorhanden sind, wenn nein, da das Programm zum ersten mal läuft, sollen die Daten angelegt werden.
Soweit im ersten Moment auch kein Thema.
Daten werden geschrieben.
Beim Blick in meine Reg.xml musste ich jedoch feststellen, das 3 Testwerte fehlerhaft eingetragen werden. :shock:

Code: Alles auswählen

<?xml version="1.0" encoding="utf-8"?>
<XMLReg>
  <Key Name="HKEY_CURRENT_USER">
    <Key Name="Software">
      <Key Name="Morbis Addison">
        <Key Name="Mastersettings">
          <Value Name="Global Master File Settings" Type="2">Gesundheit</Value>
          <Value Name="Test" Type="1">70</Value>						<-- [b]Integer[/b] erwartet
          <Value Name="GMD_Set" Type="1">1</Value>						<-- [b]Boolean[/b] erwartet
          <Value Name="Gewicht" Type="3">9A99999999395140</Value>		<-- soll ein [b]Float[/b] sein
        </Key>
      </Key>
    </Key>
  </Key>
</XMLReg>
Hier auch der Programmauszug, welcher die Daten verwaltet.

Code: Alles auswählen

  Reg                                            := TRegistry.Create;
  try
    Reg.RootKey                                  := HKEYUSER;
    if Reg.KeyExists(ProgKey + PathDelim + 'Mastersettings') = true then begin
      Reg.ReadString('Global Master File Settings');
      Reg.ReadInteger('Test');
      Reg.ReadFloat('Gewicht');
      Reg.ReadBool('GMD_Set');
      end else begin
        Reg.OpenKey(ProgKey + PathDelim + 'Mastersettings', True);
        Reg.WriteString('Global Master File Settings', MFD[1]);
        Reg.WriteBool('GMD_Set', True);
        Reg.WriteInteger('Test', 70);
        Reg.WriteFloat('Gewicht', 68.9);
        end;
  finally
    Reg.Free;
  end;
Ich vermute mal stark, das es Probleme bei der Konvertierung der einzelnen Typen gibt.

Code: Alles auswählen

label.caption:= 'gnublin.no-ip.info'
Debian 12 (L 3.0.0.3 FPC 3.2.2);
windows 10 (L 3.99.0.0 FPC 3.2.0)

Antworten