Code: |
TMainOpt = class(TOptions) private FText: string; FHeight: Integer; FTop: Integer; FWidth: Integer; FLeft: Integer; procedure SetText(const Value: string); procedure SetHeight(Value: Integer); procedure SetLeft(Value: Integer); procedure SetTop(Value: Integer); procedure SetWidth(Value: Integer); published property Text: stringread FText write SetText; property Left: Integer read FLeft write SetLeft; property Top: Integer read FTop write SetTop; property Width: Integer read FWidth write SetWidth; property Height: Integer read FHeight write SetHeight; end;
TForm1 = class(TForm) Edit1: TEdit; procedure Edit1Change(Sender: TObject); private FMainOpt: TMainOpt; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; |
А вот и реализация:
Code: |
constructor TForm1.Create(AOwner: TComponent); var S: string; begin inherited Create(AOwner); S := ChangeFileExt(Application.ExeName, '.ini'); FMainOpt := TMainOpt.Create(S); Edit1.Text := FMainOpt.Text;
Left := FMainOpt.Left; Top := FMainOpt.Top; Width := FMainOpt.Width; Height := FMainOpt.Height; end;
destructor TForm1.Destroy; begin FMainOpt.Left := Left; FMainOpt.Top := Top; FMainOpt.Width := Width; FMainOpt.Height := Height; FMainOpt.Free; inherited Destroy; end;
{ TMainOpt }
procedure TMainOpt.SetText(const Value: string); begin FText := Value; end;
procedure TForm1.Edit1Change(Sender: TObject); begin FMainOpt.Text := Edit1.Text; end;
procedure TMainOpt.SetHeight(Value: Integer); begin FHeight := Value; end;
procedure TMainOpt.SetLeft(Value: Integer); begin FLeft := Value; end;
procedure TMainOpt.SetTop(Value: Integer); begin FTop := Value; end;
procedure TMainOpt.SetWidth(Value: Integer); begin FWidth := Value; end; |
В заключение своей статьи хочу сказать, что RTTI является недокументированной возможностью Object Pascal и поэтому информации на эту тему в справочной системе и электронной документации весьма мало. Наиболее легкодоступный способ изучить более подробно эту фишку — просмотр и изучение исходного текста модуля TypInfo.
- << Назад
- Вперёд
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!