Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Аналог TStringAdapter в КОЛ ?


DmiSb ©   (2004-08-17 07:39:00) 

Уважаемые мастера, подскажите есть ли такая штука в КОЛ ?


SPeller   (2004-08-18 15:17:00) [1]

Кстати, я не посмотрел. У вас всё-равно класс, поэтому KOL ткт абсолютно непричем. Указатель на класс - это извращенство, потому как классовая переменная - это уже указатель.


DmiSb   (2004-08-18 13:29:00) [2]

Да я вроде и не говорил, что являюсь специалистом по интерфейсам. Реализация для VCL взята из инета, она прекрасно работает. Мне не пришлось никакие интерфейсы изучать. Но для КОЛ нужно это делать как-то по другому. Вот и задал вопрос. Согласен на любую помощь. Тока просьба не материть.  

>2 Speller
Я начал учиться, просто попалось это.


SPeller   (2004-08-18 12:58:00) [3]

Все ненайденные методы должны быть описаны в твоем объекте. Сначала научитесь работать с интерфейсами вообще, а уж потом в КОЛ их пристраивайте.


DmiSb   (2004-08-18 08:32:00) [4]

Может кто подскажет как привести тип PStream в IStream. В VCL для этого используется сл. структура:
 
 IStream:=TStreamAdapter.Create(TStream);

У меня не получается создать аналог TStreamAdapter
Пишу следующее (при этом делаю замену Sysdcu на КОЛовские):
 
TKOLStreamOwnership = (soReference, soOwned);

 PKOLStreamAdapter = ^TKOLStreamAdapter;
 TKOLStreamAdapter = class(TInterfacedObject, IStream)
 private
   FStream: PStream;
   FOwnership: TKOLStreamOwnership;
 public
   constructor Create(Stream: PStream; Ownership: TKOLStreamOwnership = soReference);
   destructor Destroy; override;
   property Stream: PStream read FStream;
   property StreamOwnership: TKOLStreamOwnership read FOwnership write FOwnership;
 end;

Выходят ошибки
[Error] MainU.pas(71): Undeclared identifier: 'Seek'
[Error] MainU.pas(71): Undeclared identifier: 'SetSize'
[Error] MainU.pas(71): Undeclared identifier: 'CopyTo'
[Error] MainU.pas(71): Undeclared identifier: 'Commit'
[Error] MainU.pas(71): Undeclared identifier: 'Revert'
[Error] MainU.pas(71): Undeclared identifier: 'LockRegion'
[Error] MainU.pas(71): Undeclared identifier: 'UnlockRegion'
[Error] MainU.pas(71): Undeclared identifier: 'Stat'
[Error] MainU.pas(71): Undeclared identifier: 'Clone'
[Error] MainU.pas(71): Undeclared identifier: 'Read'
[Error] MainU.pas(71): Undeclared identifier: 'Write'

То есть не понятны методы интерфейса IStream, хотя IStream описан
в файле system для КОЛ. Получается для КОЛ Интерфейсы строятся по
другому. Может кто знает, в чем соль ?


Gandalf   (2004-08-17 23:20:00) [5]

Нет таких - есть Stream


DmiSb   (2004-08-17 12:33:00) [6]

Виноват, нужен аналог TStreamAdapter


Наверх

Титульная страница Поиск, карта сайта Написать письмо