Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Type in INI sichern? (https://www.delphipraxis.net/80844-type-ini-sichern.html)

moelski 16. Nov 2006 09:47


Type in INI sichern?
 
Moin !

Ich habe da diesen Typen:
Delphi-Quellcode:
type TLVDeviceID = ( ID_Test1, ID_Test2, ID_Test3 );
Diesen würde ich gerne in einer INI Datei sichern und auch wieder laden.
Geht das? Und wenn ja wie?

holliesoft 16. Nov 2006 09:56

Re: Type in INI sichern?
 
Hi,

ich würde das so machen:

Delphi-Quellcode:
var x: integer;
LVDeviceID: TLVDeviceID;

//schreiben
x := ord (LVDeviceID);
ini.WriteInteger ('foo', 'LVDeviceID', x);

//lesen
x := ini.ReadInteger ('foo', 'LVDeviceID', 1);
LVDeviceID := TLVDeviceID(x);

marabu 16. Nov 2006 11:13

Re: Type in INI sichern?
 
Hallo,

noch eine Alternative:

Delphi-Quellcode:
type
  TLVDeviceID = ( ID_Test1, ID_Test2, ID_Test3 );
var
  devId: TLVDeviceID;
begin
  devID := ID_Test2;
  ini.WriteString( 'settings', 'LVDeviceID',
    {TypInfo.}GetEnumName(TypeInfo(TLVDeviceID), Ord(devId))
  );
end;
Grüße vom marabu

moelski 16. Nov 2006 11:55

Re: Type in INI sichern?
 
Moin !

Ok, das wegschreiben geht super, aber wie kriege ich es retour?

Delphi-Quellcode:
  Temp := DeviceINI.ReadString( 'settings', 'LVDeviceID', '');
devID := GetEnumValue(TypeInfo(TLVDeviceID), Temp);
So gehts nicht. Dann sagt er Integer und TLVDeviceID sind Inkompatibele Typen. (Hat er sogar recht :D )

moelski 16. Nov 2006 12:12

Re: Type in INI sichern?
 
Ok ich habs schon ...

Temp ist Integer ...

Delphi-Quellcode:
Temp := GetEnumValue(TypeInfo(TLVDeviceID), DeviceINI.ReadString( 'settings', 'LVDeviceID', ''));
devID := TLVDeviceID(Temp);
Danke trotzdem für die Infos !


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:00 Uhr.

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