Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.04.10;
Скачать: CL | DM;

Вниз

замена OleVariant   Найти похожие ветки 

 
Finder   (2011-01-13 13:13) [0]

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


 
Ega23 ©   (2011-01-13 13:22) [1]


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


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


 
Finder   (2011-01-13 13:25) [2]

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


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


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

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


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

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


 
Finder   (2011-01-13 13:37) [5]


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

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


 
Ega23 ©   (2011-01-13 13:41) [6]


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


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


 
DiamondShark ©   (2011-01-13 13:42) [7]


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

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


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

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

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


 
Finder   (2011-01-13 13:47) [8]

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

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


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


> Finder


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

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


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


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

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


 
Finder   (2011-01-13 13:55) [11]

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


 
DiamondShark ©   (2011-01-13 13:56) [12]


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

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


 
Ega23 ©   (2011-01-13 13:59) [13]


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


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


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


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


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


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

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


 
Anatoly Podgoretsky ©   (2011-01-13 15:21) [16]


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

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



Страницы: 1 вся ветка

Текущий архив: 2011.04.10;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.01 c
2-1294653381
softi
2011-01-10 12:56
2011.04.10
сохранение JPEG из буфера обмена


2-1294760444
polyaev
2011-01-11 18:40
2011.04.10
Прошу помощи в задании


2-1294899349
12
2011-01-13 09:15
2011.04.10
Control.Enable := False Но, чтоб визуально не изменился.


2-1294537784
P
2011-01-09 04:49
2011.04.10
Темы Windows


2-1294726595
RUu
2011-01-11 09:16
2011.04.10
оповещение первой формы о закрытии второй