{codecitation class="brush: pascal; gutter: false;" width="600px"}

Автор: Mike Scott

Сын системного администратора перед сном просит папу:

— Па-па… Расскажи сказку про умного, толкового, доброго, смелого юзера…

…и я хотел бы новые пользовательские цвета записывать на место старых, записываемых Delphi в файл ресурса, чтобы при следующем открытии формы, она автоматически сама отображала бы новую цветовую схему.

Вы можете легко это сделать, передавая форму при закрытии в поток для записи ее в отдельный файл. Затем, когда это создано, проверяйте наличие файла и организуйте его чтение. Вот как можно это сделать:

const

FileName = 'Form1.stm';

constructor TForm1.Create (AOwner: TComponent);

begin

if FileExists (FileName) then

begin

CreateNew (AOwner);

ReadComponentResFile (FileName, Self);

end

else

inherited Create (AOwner);

{ поместите здесь код в стиле 'OnCreate' }

end;

procedure TForm1.FormDestroy (Sender: TObject);

begin

WriteComponentResFile (FileName, Self);

end;

Имейте в виду, что это не вызывает OnCreate. В действительности, вам OnCreate и не нужен, поскольку сюда вы можете поместить код, необходимый в обработчике OnCreate; данный код следует поместить после конструктора Create, как и указано в комментарии.

{/codecitation}