Форум: "Начинающим";
Текущий архив: 2011.04.10;
Скачать: [xml.tar.bz2];
Вниззамена 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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.005 c