Zitat von
himitsu:
Also willst du eine Cardinal-Variable in 'ner INI speichern, welche ja "nur" Integer annimmt ... hab ich dat richtig verstanden?
Dann tu doch einfach so, als wenn der Cardinal ein Integer wäre ^^
Delphi-Quellcode:
Var C: Cardinal;
Ini.ReadInteger('...', '...', Integer(C));
Ini.WriteInteger('...', '...', Integer(C));
Ich möchte eine Cardinal-Var (voller Bereich also 0..high(Cardinal)) in eine Ini speichern und sie auch wieder lesen. Aber dein Weg klappt super. THX
Zitat von
Klaus01:
Dann leite doch das Object TIni ab und gebe ihm noch die Methode die fehlt.
Nur ein Ansatz:
Delphi-Quellcode:
function ReadCardinal(const Section, Ident: String; Default: Cardinal): cardinal;
var
s:String;
begin
s:=ReadString(section,ident,0);
result:=StrToInt64(s); // vielleicht noch auf cardinal casten
end;
...
Grüße
Klaus
Das wäre eine Möglichkeit, da hst du recht.
Zitat von
marabu:
Das Problem ist, das die
API Funktionen für die veralteten IniFiles nicht mitspielen. Ich würde TMemIniFile verwenden und alle anderen Vorteile genießen, die diese Klasse mitbringt:
Delphi-Quellcode:
procedure TDemoForm.ExtraGridClick(Sender: TObject);
var
c: Cardinal;
begin
with TMemIniFile.Create(ExtractFilePath(ParamStr(0)) + 'temp.ini') do
begin
ShowMessage(IntToHex(MaxInt, 8));
c := Cardinal(MaxInt) shl 1;
WriteInteger('test', 'card', c);
c := ReadInteger('test', 'card', 0);
ShowMessage(IntToHex(c, 8));
Free;
end;
end;
Grüße vom marabu
Auch eine super Möglichkeit.
Vielen Dank an alle. Ihr habt mir - wie immer - sehr gut weiter geholfen