nachdem ich in den Letzten Jahren erfolgreich mit den Ini-Files gearbeitet habe und nach dem selben Prizip nun eine Sammlung für meine 3 Programme erstellen wollte stehe ich wohl gerade auf dem Schlauch, weiß aber nicht in welcher Zeile der Wert falsch übernommen wird.
Code: Alles auswählen
unit set_data_v06_07112020;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, iniFiles;
Type
TVeeJee_Set = class
fFilename,
fPath,
fProg,
fExt : String;
fTSOL, : Boolean; // TrayIcon Show on Load (tsol)
private
function GetTSOL: boolean;
procedure SetTSOL(Value: Boolean);
public
constructor Create;
destructor Done;
property TSOL: boolean read GetTSOL write SetTSOL;
end;
implementation
{ TVeeJee }
constructor TVeeJee_Set.Create;
begin
inherited;
fExt := 'Settings';
fProg := 'VeeJee-Live';
fPath := ExtractFilePath(GetAppConfigFile(false)) + fProg + PathDelim;
fFilename := Format('%s%s', [fPath, fExt]);
if FileExists(fFileName+'.tsol') then
fTSOL := GetTSOL
else
SetTSOL(false);
end;
destructor TVeeJee_Set.Done;
begin
inherited;
end;
function TVeeJee_Set.GetTSOL: boolean;
var s : String;
begin
if FileExists(fFileName+'.tsol') then begin
with TIniFile.Create(fFileName+'.tsol') do begin
s := Format('%s', ['TrayShow']);
fTSOL := ReadBool(s, 'TrayShowOnLoad:', False);
end;
end;
Result := fTSOL;
end;
procedure TVeeJee_Set.SetTSOL(Value: Boolean);
var s : String;
begin
if FileExists(fFileName+'.tsol') then DeleteFile(fFileName+'.tsol');
with TIniFile.Create(fFileName+'.tsol') do try
s := Format('%s', ['TrayShow']);
WriteBool(s, 'TrayShowOnLoad:', Value);
finally
Free;
end;
end;
end.
Der Inhalt der entsprechenden File schaut wie folgt aus.
Code: Alles auswählen
[TrayShow]
TrayShowOnLoad:=1
Code: Alles auswählen
function GetTSOL
Diese Klasse wird in der OnShow das erste mal aufgerufen und somit gehe ich hier von einem internen Fehler aus, welchen ich gerade wohl nicht sehe.

Zusatzinfo...
Das Programm wird aktuell auf einem Pi4 geschrieben.