Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 583

•  TDictionary Custom Sort  6 599

•  Fast Watermark Sources  6 369

•  3D Designer  9 319

•  Sik Screen Capture  6 703

•  Patch Maker  7 084

•  Айболит (remote control)  7 088

•  ListBox Drag & Drop  5 955

•  Доска для игры Реверси  97 496

•  Графические эффекты  7 290

•  Рисование по маске  6 584

•  Перетаскивание изображений  5 457

•  Canvas Drawing  5 826

•  Рисование Луны  5 537

•  Поворот изображения  5 058

•  Рисование стержней  3 623

•  Paint on Shape  2 864

•  Генератор кроссвордов  3 750

•  Головоломка Paletto  3 019

•  Теорема Монжа об окружностях  3 828

•  Пазл Numbrix  2 519

•  Заборы и коммивояжеры  3 219

•  Игра HIP  2 186

•  Игра Go (Го)  2 117

•  Симулятор лифта  2 499

•  Программа укладки плитки  2 149

•  Генератор лабиринта  2 633

•  Проверка числового ввода  2 303

•  HEX View  2 635

•  Физический маятник  2 255

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Чтение и запись компонента



Автор: Blake

Вот участок кода из предстоящей статьи о VBX/OCX, который я написал чтобы протестировать поточность своих компонентов. Если компонент поточнен, код сможет его сохранить и загрузить. В противном случае вы получите сообщение об ошибке, отладка которой сравнительна легка для определении проблем с VCL.

В действительности технология чтения и записи компонентов не так уж и сложна, убедитесь в этом сами.


procedure TForm1.StoreClick(Sender: TObject);
var
  W: TWriter;
begin
  W := TWriter.Create(
    TFileStream.Create('c:\source\delphi\example.dob', fmCreate), 4096);
  W.WriteSignature;
  W.WriteComponent(Spin);
  W.Free;
end;

procedure TForm1.LoadClick(Sender: TObject);
var
  R: TReader;
begin
  R := TReader.Create(
    TFileStream.Create('c:\source\delphi\example.dob', fmOpenRead), 4096);
  Spin := R.ReadRootComponent(nil) as TSpinner;
  Spin.Top := 0;
  Spin.Left := 0;
  Spin.Parent := Self;
  InsertComponent(Spin);
  R.Free;
end;