InfoCity
InfoCity - виртуальный город компьютерной документации
Реклама на сайте







Размещение сквозной ссылки

 

Теперь введите следующее в заголовочный файл компонента:

//---------------------------------------------------------------------------
class PACKAGE TExampleEditor : public TComponent
{
private:
    AnsiString FFileName;
    void __fastcall SetFileName(AnsiString Value);
    void __fastcall ReadData(TReader *Reader);
    void __fastcall WriteData(TWriter *Writer);

protected:
    void __fastcall DefineProperties(TFiler *Filer);

public:
    void __fastcall Something(void);
    void __fastcall SomethingElse(void);
    __property AnsiString FileName = {read = FFileName, write = SetFileName};
    __fastcall TExampleEditor(TComponent* Owner);
__published:
};

Помните, что вам нужна пара методов 'read' - 'write' для каждого неопубликованного свойства, если вы хотите его сохранять. Введите следующее в главный файл:

//---------------------------------------------------------------------------
void __fastcall TExampleEditor::DefineProperties(TFiler *Filer)
{
TComponent::DefineProperties(Filer);
// Define the read/write methods
Filer->DefineProperty("FileName", ReadData, WriteData, (FFileName != ""));
}
//---------------------------------------------------------------------------
void __fastcall TExampleEditor::ReadData(TReader *Reader)
{
// Read property data from the DFM file
FileName = Reader->ReadString();
}
//---------------------------------------------------------------------------
void __fastcall TExampleEditor::WriteData(TWriter *Writer)
{
// Save the property data to the DFM file
Writer->WriteString(FileName);
}

Теперь далее. Еще раз переинсталлируйте компонент. Переоткройте сохраненный проект и щелкните на TExampleEditor. Обратите внимание - Object Inspector не показывает свойство 'FileName'. Теперь дважды щелкните на компоненте, выберите файл из диалога и щелкните 'Open'. Щелкните кнопку 'Save All' на панели инструментов и затем выберите File | Close All. Переоткройте проект, выведите форму в текстовом виде. Найдите ExampleEditor : TExampleEditor. Теперь свойство FileName сохраняется вместе с остальными.

В вышеприведенном примере мутатор для свойства FileName( SetFileName() ) не делает ничего кроме присвоения строки приватной переменной. В реальном компоненте в таком случае свойство можно вообще убрать - просто перенесите FFileName в секцию public.

[Назад]


Реклама на InfoCity

Яндекс цитирования



Финансы: форекс для тебя








1999-2009 © InfoCity.kiev.ua