Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
1-1252018584
voyager
2009-09-04 02:56
2011.04.10
Возврат значения из программы


15-1293529664
George
2010-12-28 12:47
2011.04.10
Rave Reports и сложные запросы


2-1294612841
Германн
2011-01-10 01:40
2011.04.10
Свойство RowSelect у компонента TTreeView


2-1294653381
softi
2011-01-10 12:56
2011.04.10
сохранение JPEG из буфера обмена


15-1292520139
Eraser
2010-12-16 20:22
2011.04.10
RMS - удаленное администрирования





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский