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

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

замена OleVariant


Finder ©   (2011-01-13 13:13:00) 

Добрый день.
Можно либо чем-нибудь заменить тип OleVariant(Variant), либо как написать собственные обработчики для этого типа?
Цель избавиться от неявно линкующегося variants.pas и как следствие Sysutils.pas.
Приветствуются любые идеи.


Anatoly Podgoretsky   (2011-01-13 15:21:00) [1]


> Требуется именно Variant( OleVariant )

И при этом без вариант :-)


Finder   (2011-01-13 14:09:00) [2]

Всем большое спасибо, похоже я изначально где-то ошибся с тем, что невозможно для ole automation использовать типы, отличные от Variant (но точно помню то страшное сообщение от компилятора =) ).
Мне надо какое-то время для повторных "исследований".
Как только появятся результаты - я отпишусь в данной теме.
Еще раз всем спасибо и надеюсь на дальнейшую помощь.


Сергей М.   (2011-01-13 14:01:00) [3]


> при описании интерфейса этот фокус не прокатит


Можно подумать что кто-то заставляет тебя при описании интерфейса использовать Olevariant-тип


Ega23   (2011-01-13 13:59:00) [4]


> Но вопрос не в этом! Прошу не отговаривать меня, я всего
> лишь хочу услышать, каким образом мне заставить компилятор


Т.е. ты понимаешь, что это действительно искусство, и ты этим занимаешься потому, что тебе это по-приколу.
Но тогда этот вопрос явно не в конфу "Начинающим", да и более конкретные должны быть вопросы, а не "где взять кАмпАнент, штобы ...".
Ну и Шарк тебе уже дал ссылки, дерзай.


DiamondShark   (2011-01-13 13:56:00) [5]


>  каким образом мне заставить компилятор сделать то, что я хочу,

Побить палкой.
Но только всё равно не получится, потому что хочешь странного: хочешь использовать встроенный тип, но не хочешь линковать код поддержки этого типа.
На что тебе уже дали ответ: не используй встроенный тип.
Потому что любойвстроенный тип -- это структуры данных икод поддержки.


Finder   (2011-01-13 13:55:00) [6]

Удалено модератором
Примечание: Кому писать или нет не твое дело. Хотя здесь писать не будешь ты, а не другие


Плохиш   (2011-01-13 13:50:00) [7]


> Т.к. Variants.pas линкуется неявно при любом упоминании
> в модулях типа Variant

Врать не надо. Линкуется только-то что явно прописано в uses.


Сергей М.   (2011-01-13 13:48:00) [8]


> Finder


Ну про размер ты уже в курсе)

Если таки для тебя это не вразумительный аргумент, то можешь на свой страх и риск воспользоваться технол.типом TVarRec - ноги у него растут из system.pas


Finder   (2011-01-13 13:47:00) [9]

Ega23, спасибо читаю иногда этот блог и эту статью тоже читал.
DiamondShark, да с теорией отчасти знаком( не скажу, что в идеале ).

Но вопрос не в этом! Прошу не отговаривать меня, я всего лишь хочу услышать, каким образом мне заставить компилятор сделать то, что я хочу, а не то, что угодно ему.


DiamondShark   (2011-01-13 13:42:00) [10]


> Можно либо чем-нибудь заменить тип OleVariant(Variant)

http://msdn.microsoft.com/en-us/library/ms221627.aspx


> либо как написать собственные обработчики для этого типа?

http://msdn.microsoft.com/en-us/library/ms221236.aspx

Теперь оцени объём вкуриваемого, и спроси себя ещё раз: волнуют ли тебя размеры программы так же, как и раньше.


Ega23   (2011-01-13 13:41:00) [11]


> все банально просто - размер программы.


Прежде чем хотеть странного - ознакомься: http://www.gunsmoker.ru/2010/12/blog-post.html


Finder   (2011-01-13 13:37:00) [12]


> мои обработки

прошу прощения, мои обработчики


Finder   (2011-01-13 13:35:00) [13]

Плохиш, я немного разъясню, чтобы избежать подобных выбросов иронии.
Т.к. Variants.pas линкуется неявно при любом упоминании в модулях типа Variant, то соответственно существует определенная "магия компилятора".
Проблема не в том, чтобы написать эти обработичики, а как попросить компилятор не трогать стандартный Variants.pas, а заставить использовать мои обработки. Согласен, что на первый взгляд звучит очень просто, но вы просто попробуйте проделать это и тогда поймете в чем вся соль.


Плохиш   (2011-01-13 13:31:00) [14]


> как написать собственные обработчики для этого типа?

На такой вопрос могу только порекомендовать нанять программиста.


Finder   (2011-01-13 13:25:00) [15]

все банально просто - размер программы.


Ega23   (2011-01-13 13:22:00) [16]


> Цель избавиться от неявно линкующегося variants.pas и как
> следствие Sysutils.pas.


Объясни смысл цели, пожалуйста. Уж больно любопытно.


Наверх

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