Содержание материала

 

Code:

 

procedure TOptions.SaveProps;

var

I, N: Integer;

TypeData: PTypeData;

List: PPropList;

begin

TypeData:= GetTypeData(ClassInfo);

N:= TypeData.PropCount;

if N <= 0then

   Exit;

GetMem(List, SizeOf(PPropInfo)*N);

try

   GetPropInfos(ClassInfo,List);

   for I:= 0to N - 1do

     case List[I].PropType^.Kind of

       tkEnumeration, tkInteger:

         FIniFile.WriteInteger(Section, List[I]^.name,GetOrdProp(Self,List[I]));

       tkFloat:

         FIniFile.WriteFloat(Section, List[I]^.name, GetFloatProp(Self, List[I]));

       tkString, tkLString, tkWString:

         FIniFile.WriteString(Section, List[I]^.name, GetStrProp(Self, List[I]));

     end;

finally

   FreeMem(List,SizeOf(PPropInfo)*N);

end;

end;

 

 

procedure TOptions.ReadProps;

var

I, N: Integer;

TypeData: PTypeData;

List: PPropList;

AInt: Integer;

AFloat: Double;

AStr: string;

begin

TypeData:= GetTypeData(ClassInfo);

N:= TypeData.PropCount;

if N <= 0then

   Exit;

GetMem(List, SizeOf(PPropInfo)*N);

try

   GetPropInfos(ClassInfo, List);

   for I:= 0to N - 1do

     case List[I].PropType^.Kind of

       tkEnumeration, tkInteger:

       begin

         AInt:= GetOrdProp(Self, List[I]);

         AInt:= FIniFile.ReadInteger(Section, List[I]^.name, AInt);

         SetOrdProp(Self, List[i], AInt);

       end;

       tkFloat:

       begin

         AFloat:=GetFloatProp(Self,List[i]);

         AFloat:=FIniFile.ReadFloat(Section, List[I]^.name,AFloat);

         SetFloatProp(Self,List[i],AFloat);

       end;

       tkString, tkLString, tkWString:

       begin

         AStr:= GetStrProp(Self,List[i]);

         AStr:= FIniFile.ReadString(Section, List[I]^.name, AStr);

         SetStrProp(Self,List[i], AStr);

       end;

     end;

finally

   FreeMem(List,SizeOf(PPropInfo)*N);

end;

end;

 

function TOptions.Section: string;

begin

Result := ClassName;

end;

 Теперь, для проверки работоспособности, и отладки объекта опций создадим новое приложение и подключим к нему модуль, в котором описан и реализован объект TOptions. Ниже приведен программный код, иллюстрирующий создание наследника от класса TOptions и его использования в главной (и единственной) форме нашего тестового приложения интерфейсная часть выглядит так:

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить