Doch, ich hab zwei Komponenten (Edit, Checkbox) zum Testen eingetragen. Er erzeugt auch keine Ini-Datei und wenn man sie ihm anlegt, passiert nichts drin. Wahrscheinlich ist es was so Offensichtliches, dass ich immer drüberfalle.
Ich habe gerade ein neues Projekt angelegt und es ausprobiert. Es hat zuerst auch nicht geklappt, weil ich vergessen hatte, bei der AppIniFileStorage-Komponente die Property Filename zu setzen. Danach ging's aber.
DFM:
Code:
object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 336
ClientWidth = 635
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object ed_Bla: TEdit
Left = 136
Top = 56
Width = 121
Height = 21
TabOrder = 0
end
object TheFormStorage: TJvFormStorage
AppStorage = TheAppIniFileStorage
AppStoragePath = '%FORM_NAME%'
StoredProps.Strings = (
'ed_Bla.Text')
StoredValues = <>
Left = 312
Top = 176
end
object TheAppIniFileStorage: TJvAppIniFileStorage
StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y'
StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N'
AutoFlush = True
FileName = 'blablub.ini'
SubStorages = <>
Left = 376
Top = 240
end
end
Unit:
Delphi-Quellcode:
unit Unit1;
interface
uses
Winapi.Windows,
Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs, JvAppStorage, JvAppIniStorage, JvComponentBase,
JvFormPlacement,
Vcl.StdCtrls;
type
TForm1 =
class(TForm)
TheFormStorage: TJvFormStorage;
TheAppIniFileStorage: TJvAppIniFileStorage;
ed_Bla: TEdit;
private
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
end.
Was ist der Vorteil deiner Config-Objekte? Vielleicht ist das für mich ja ein Anlass, umzudenken. Ich handhabe derzeit viele Einstellungen über ein Einstellungsfenster mit mehreren Tabs, dort Checkboxen, Radiobuttons, Eingabefelder, das Übliche halt, sind über 700 Parameter allein dort. Da dieses Fenster immer aktiv ist, ist auch die Abfrage problemlos. Magst du kurz was zu deinen Objekten sagen?
Der Hauptvorteil ist, dass es unabhängig von Formularen ist. Man kann sich eine Struktur basteln, die der Logik folgt statt der Darstellung. Dafür hat man aber den zusätzlichen Aufwand, dass man die Einstellungen zwischen Config-Objekt und Config-Dialog hin- und herschaufeln muss.