Code:
TBasicGroupSettings = record
path: string;
check_files_exist: boolean;
start_name: string;
first: string;
last: string;
end;
Nu mijn proefles...
Code:
type TBasicSettings = class
private
fGroups: array[0..1] of TBasicGroupSettings;
function getA_(G:String): String;
procedure setA_(G:String; V: String);
function getA(Index: Integer): String;
procedure setA(Index: Integer; V: String);
function getAA(Index: Integer): String;
procedure setAA(Index: Integer; V: String);
public
RAM_disk: string;
RAM_free: LongWord; // v MB
start_name_A: string; // first_filename
AA: TBasicGroupSettings;
BB: TBasicGroupSettings;
fps: byte;
scroll_max_shift: integer;
property basic[G:String]: String read GetA_ write SetA_;
property A: String Index 0 read GetA write SetA;
property B: String Index 1 read GetA write SetA;
property group[Index: Integer]: String read GetA write SetA;default;
constructor Create;
end;
Dit is klasse die ik volledig opnieuw wil ontwerpen:
Code:
type TSettings = record
// ini: TBasicSettings;
basic: TBasicSettings; // general
general: TGeneralSettings; // general
bVal: TDerivedBasicValues; // derived basic values
gVal: TDerivedGeneralValues; // derived general values
cValA: TDerivedColorValues; // derived color values for group A
cValB: TDerivedColorValues; // derived color values for group B
colA: TSearchColorsSettings; // converted colors TColor definition for group A
colB: TSearchColorsSettings; // converted colors TColor definition for group B
searchblurDistanceA:TPrecisionSettings;
searchblurDistanceB:TPrecisionSettings;
iaDiA: TDirectionsSettings; // image/arrow dimentions/directions
iaDiB: TDirectionsSettings; // image/arrow dimentions/directions
end;
var ini: TSettings;
dus in ini.basic is er de klasse TBasicSettings.
Mijn probleembeschrijving...
Ik wil toegang krijgen tot de eigenschappen van ini.basic group A of group B van het type TBasicGroupSettings.
voor het lezen van ini.basic.A.path of ini.basic.B.path ... Dus ik veronderstel dat ik dynamische toegang heb tot A of B.
Voor zover ik het nu heb, zou ik (met enige kleine aanpassing) de A o B-groep kunnen lezen, maar ik moet toegang krijgen tot alle eigenschappen van de groep.
En ook voor het schrijven. Ik zou het als volgt willen benaderen:
ini.basic(group).path := '...'; ini.basic(group).first := '...';
Is het mogelijk om dat te doen in Delphi 7?
Hetzelfde met de volgende typen. in ini.bVal zijn waarden die zijn opgeslagen na verwerking van het ini-bestand. Dus ik zou willen lezen en schrijven als ini.bVal(group).prefix of ini.bVal(group).prefix:='000'
bVal is zo gedefinieerd:
Code:
type TDerivedBasicGroupValues = record
first: integer; // the converted value
last: integer; // the converted value
start: string; // stripped start_name
prefix: string;
maxZeros2Add: byte;
end;
type TDerivedBasicValues = record // FROM BASIC SETTINGS
// Derived values:
A: TDerivedBasicGroupValues;
B: TDerivedBasicGroupValues;
working_area_dim: integer; // working area dimentions
end;
Het begrijpen van deze dingen is best moeilijk voor mij. Ik was op de pagina aan het kijken
http://www.delphibasics.co.uk/RTL.asp?Name=Property
en daar zijn de basisprincipes goed en eenvoudig uitgelegd, maar ik begrijp nog steeds niet hoe ik dit complexere gebruik voor Delphi 7 moet aanpakken, als dat mogelijk is.
Bookmarks