Re[22]: наши менеджеры памяти самые менеджеристые менеджеры
От: Mamut Швеция http://dmitriid.com
Дата: 17.05.08 07:33
Оценка: +1
H>>>Много чего вообще есть... Есть, например, запрет на использование MS Trident (кажется так оно называется), ибо внутренняя секьюрити не позволяет. Будешь лисапед писать? Удачи.

M>>Да. Буду, если таковы условия заказчика.


H>Попробуй их хотя бы обосновать...


Про государственные конторы тебе уже тут говорили


M>>И писать, в частности, буду точно не надельфи, потому что неумение/нежелание добавить поддержку Юникода в полностью контролируемую тобой среду для меня поставило крест на этой технологии еще в 2003=м году


H>Проблема совершенно надумана Есть решение -- TNT, тебе мало? Я щас на .Net и Java крест поставлю за то, что нету у них нифига для XML-RPC/OpenGL/редактирования PDF (понимаешь маразматичность таких заявлений?)



Юникод — это базовое требование, в отличие от XML-RPC и прочих
... << RSDN@Home 1.2.0 alpha 4 rev. 1084>>


dmitriid.comGitHubLinkedIn
Re[80]: Чем вам всем не угодил Delphi?
От: Mamut Швеция http://dmitriid.com
Дата: 17.05.08 07:43
Оценка:
M>>ЗЫ. Это я не по сотому разу спрашиваю. Я пытаюсь добиться четкого и ясного ответа В чем смысл "расширять" IUnknown, если класс, реализующий MyInterface, имеет право похерить все методы IUnknown?

H>Расширяется не IUnknown. Расширяется MyInterface декларацией IUnknown.


Зачем? Что нам это дает, кроме необходимости писать дополнительный код, который все равно нигде не нжен и нигде не участвует?


M>>То есть, давай так. Вот интерфейс:

M>>
M>>MyInterface : Interface(IUnknown)
M>>    someMethod() : AnsiString
M>>end
M>>


M>>Напиши, пожалуйста минимальный класс MyClass, который будет реализовывать MyInterface


H>Есть два варианта:


H>1. Реализует MyInterface (да-да, все методы -- это MyInterface).

H>
H> TMyObject = Class(TObject, MyInterface)
H>    function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
H>    function _AddRef: Integer; stdcall;
H>    function _Release: Integer; stdcall;
H>    Function SomeMethod : AnsiString;
H> End;
H>


Зачем мне реализовывать методы QueryInterface, _AddRef и _Release, если я их все равно в данном случае не буду использовать? Или это идеология такая — писать код ради кода? Почему я не могу написать:


MyInterface : Interface
    function someMethod : AnsiString
end


MyClass : Class(TObject, MyInterface)
    function someMethod : AnsiString
end


Захотели реализовать IUnknown? Пожалуйста:

MyInterface : Interface
    function someMethod : AnsiString
end


MyClass : Class(TObject, MyInterface, IUnknown)
    function someMethod : AnsiString

    function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
    function _AddRef: Integer; stdcall;
    function _Release: Integer; stdcall;
end


Зачем плодить лишние сущности?
... << RSDN@Home 1.2.0 alpha 4 rev. 1084>>


dmitriid.comGitHubLinkedIn
Re[81]: Чем вам всем не угодил Delphi?
От: int64 Россия  
Дата: 17.05.08 11:08
Оценка:
Здравствуйте, Mamut, Вы писали:


M>Зачем мне реализовывать методы QueryInterface, _AddRef и _Release, если я их все равно в данном случае не буду использовать? Или это идеология такая — писать код ради кода? Почему я не могу написать:



M>

M>MyInterface : Interface
M>    function someMethod : AnsiString
M>end


M>MyClass : Class(TObject, MyInterface)
M>    function someMethod : AnsiString
M>end
M>


M>Захотели реализовать IUnknown? Пожалуйста:

M>

M>MyInterface : Interface
M>    function someMethod : AnsiString
M>end


M>MyClass : Class(TObject, MyInterface, IUnknown)
M>    function someMethod : AnsiString

M>    function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
M>    function _AddRef: Integer; stdcall;
M>    function _Release: Integer; stdcall;
M>end
M>


M>Зачем плодить лишние сущности?


Вы, наверное, этого нигде не видели, но вам не приходило в голову, что _AddRef, _Release и QueryInterface могут быть реализованы по разному? Или вы хотите, чтобы была какая-то реализация по-умолчанию? Ну, так для этого и есть, например, TInterfacedObject. Его реализация такая, что он само-пристреливается, когда из видимости уходит его интерфейс. А если, например, мне не нужно такое поведение, я беру и аккуратно реализую IUnknown, как мне надо и когда мне надо.
А по дефолту зачем? Для этого есть TInterfacedObject, TContainedObject и т д.
Я не сделаю открытия, если скажу, что в каждом(!) нормальном проекте есть базовые классы типа TMyImplementInterfacedObject.
Re[82]: Чем вам всем не угодил Delphi?
От: Mamut Швеция http://dmitriid.com
Дата: 17.05.08 11:24
Оценка:
Здравствуйте, int64, Вы писали:

I>Здравствуйте, Mamut, Вы писали:



M>>Зачем мне реализовывать методы QueryInterface, _AddRef и _Release, если я их все равно в данном случае не буду использовать? Или это идеология такая — писать код ради кода? Почему я не могу написать:



M>>

M>>MyInterface : Interface
M>>    function someMethod : AnsiString
M>>end


M>>MyClass : Class(TObject, MyInterface)
M>>    function someMethod : AnsiString
M>>end
M>>


M>>Захотели реализовать IUnknown? Пожалуйста:

M>>

M>>MyInterface : Interface
M>>    function someMethod : AnsiString
M>>end


M>>MyClass : Class(TObject, MyInterface, IUnknown)
M>>    function someMethod : AnsiString

M>>    function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
M>>    function _AddRef: Integer; stdcall;
M>>    function _Release: Integer; stdcall;
M>>end
M>>


M>>Зачем плодить лишние сущности?


I>Вы, наверное, этого нигде не видели, но вам не приходило в голову, что _AddRef, _Release и QueryInterface могут быть реализованы по разному? Или вы хотите, чтобы была какая-то реализация по-умолчанию?



Мне все равно, есть какая-то реализация по умолчанию или нет Я не могу поянть, зачем меня обязывают реализовывать эти функции, несмотря на то, что они имеют никакого смысла для какого-то данного объекта

I>А по дефолту зачем?


Вот и о том же Зачем, реализуя MyInterface я все равно должен (фактически) реализовать IUnknown, хотя от этого IUnknown мне ни холодно ни жарко?

Почему я не могу просто задекларировать интерфейс с методами, которые мне нужны, и не заморачивать себе голову реализацией дополнительных, никому не нужных методов?

Или.

Если я так или иначе фактически реализую интерфейс IUnknown, зачем мне дополнительно указывать, что я его реализую/не реализую? Вон они — методы из IUnknown, навязаные мне MyInterface'ом. Зачем они мне там? Так, чтобы лишнее место занимать?
... << RSDN@Home 1.2.0 alpha 4 rev. 1084>>


dmitriid.comGitHubLinkedIn
Re[22]: Препроцессоры для Delphi
От: hattab  
Дата: 17.05.08 14:55
Оценка:
Здравствуйте, squid, Вы писали:

S>>>>>много кому нужны. Windows SDK посмотри скока народу скачали. хотя забей, ты просто фанатек. тока не линукса а дельфы.


H>>>>Вывод ты сделал неправильный. Я повторюсь, Delphi для меня не фетишь. А ты критикуешь инструмент за то, на что он никогда не был ориентирован...


S>>>На возможность создания программ без ограничений как Visual C++ тот-же??? Супер. И на что тогда Delphi по твоему ориентирована?


H>>Всем давно известна ориентированность Delphi на RAD разработку клиентских приложений для работы с БД. Это, впрочем, не означает, что ничего другого на ней сделать нельзя. По этой причине Борланд и не развивал прочие направления. Косяк Борланда? Конечно косяк и еще какой. Благо, в настоящее время (после выделения CodeGear) просматриваются тенденции именно на развитие прочих областей (в блогах CodeGear'овцев и лиц приближенных все чаще мелькает MicroSV). Посему, надежда есть


S>чорт. а я совсем другой софт продаю. ушол вешаццо


Я в своей работе вообще только компилятором пользуюсь, да несколькими RTL классами (т.е. все остальное от VCL мне мало интересно), но истерик по этому поводу у меня нет

S>>>>>вот-вот. в том виде в котором они выложены на сайт при создании ActiveX — косяк. regsvr32 при регистрации тупо виснет. опять пришлось кучу времени на эту неадекватность потратить.


H>>>>Давай по шагам. Я попробую воспроизвести


S>>>Создаешь обычный визуальный компонент, подключаешь юнит GDI+, юзаешь из него какую-нибудь структурку, чтобы его как-нибудь задействовать, создаешь из этого компонента ActiveX с помощью мастера. Все. Будет висеть.


H>>Проверил на шестерке -- ничего не виснет, все отлично работает. Контрол отрисовывается GDI+.


S>ActiveX? Загадка...


Конечно ActiveX, ты же о нем говорил... Создал контрол от TCustomControl. Отрисовку сделал в GDI+. Потом сконвертил его в ActiveX контрол. Зарегистрировал (хоть средой, хоть regsvr32). Импортировал в среду. Бросил на форму. Компилирую. Запускаю. Ни каких висов нет.

S>>>Люди из progdigy на мой фикс никак положительно не отреагировали, потому что место которая я фиксил — фича а не бага


H>>Может и им воспроизвести не удалось...


S>Они и не пытались. Их ActiveX вообще не волнует. Главное в Delphi работает, и, как им кажется, это правильнее.


Как оказалось, оно и в ActiveX работает

S>>>А были-бы официальные хидеры от Борланд — было-бы кому писать, кому жаловаться. А так — типичный опенсорс — кушай что дали бесплатно и не жалуйся, мы на этом не зарабатываем.


H>>Ну не знаю... По UIB'у они весьма отзывчивы.


S>Не знаю, те же хидеры директшоу — перелопачиваешь форум и патчишь руками. В оригинальной версии правят раз в полгода.


Судя по changes.txt, обновляют они ее чуть не каждый месяц...
Re[25]: наши менеджеры памяти самые менеджеристые менеджеры
От: hattab  
Дата: 17.05.08 15:35
Оценка:
Здравствуйте, gandjustas, Вы писали:

H>>Здравствуйте, gandjustas, Вы писали:

H>>Аргумент, что надо Компрессоры, я так понимаю (GZip, BZip2 и пр.), тоже нафиг не нужны?
G>gzip в .NET есть

Ну надо же Ладно, кончай придуриваться. Согласись, что был не прав

H>>В общем, сижу в своем болоте и квакаю в собственном хоре

G>Продолжай

Посмотри на свой любимый Paint.Net, в окошке About. Три сторонних библиотеки заюзано для такого скромненького проекта. Кстати, эта гхм... хранит MRU миниатюры в реестре, да еще и в виде строки base64

H>>Чья-бы корова мычала... Открой для себя гугл и посмотри на циферки и список рекламных объявлений

G>Ты бы сам почитал, а не циферки смотрел. Большенство компонентов — FTP и SMTP клиенты, которые при желании пишутся за час.

У тебя видимо гугль другой Куча компонентов, графики, гриды, всевозможные контролы... А сроки твои вообще умиляют...

H>>Мой личный опыт не согласуется со словами твоих товарищей (неожиданно пишущих под Delphi для вояк)

G>Считай тебе больше повезло.

H>>Ну ты подумай. Ты же используешь эту хрень в качестве аргумента...

G>Эти требования не я приидумал, причин не знаю.

Думается мне, что именно ты их и придумал...

H>>А недавно говорил, что на 2008 можно уже посмотреть будет...

G>Версия 2008 года еще не вышла.

Ты в контексте разговора попробуй ответить. После добавления юникода в гуй и дженериков в язык, будет модерн?
Re[23]: наши менеджеры памяти самые менеджеристые менеджеры
От: hattab  
Дата: 17.05.08 15:41
Оценка:
Здравствуйте, Mamut, Вы писали:

H>>>>Много чего вообще есть... Есть, например, запрет на использование MS Trident (кажется так оно называется), ибо внутренняя секьюрити не позволяет. Будешь лисапед писать? Удачи.


M>>>Да. Буду, если таковы условия заказчика.


H>>Попробуй их хотя бы обосновать...


M>Про государственные конторы тебе уже тут говорили


Да мне тут и про вояк говорили... Вот только говорители даже обосновать такие требования не могут

M>>>И писать, в частности, буду точно не надельфи, потому что неумение/нежелание добавить поддержку Юникода в полностью контролируемую тобой среду для меня поставило крест на этой технологии еще в 2003=м году


H>>Проблема совершенно надумана Есть решение -- TNT, тебе мало? Я щас на .Net и Java крест поставлю за то, что нету у них нифига для XML-RPC/OpenGL/редактирования PDF (понимаешь маразматичность таких заявлений?)


M>Юникод — это базовое требование, в отличие от XML-RPC и прочих


Что значит базовое? В языке оно есть очень давно. В гуй-библиотеке не поддерживается пока. Неприятный факт? Конечно неприятный. Но для кого? Для корпоративной системы его наличие или отсутствие не упирается ни в одну точку (а Delphi на что ориентирована?). А тем кому уперлось уже сказали про TNT.
Re[81]: Чем вам всем не угодил Delphi?
От: hattab  
Дата: 17.05.08 15:47
Оценка:
Здравствуйте, Mamut, Вы писали:

M>>>ЗЫ. Это я не по сотому разу спрашиваю. Я пытаюсь добиться четкого и ясного ответа В чем смысл "расширять" IUnknown, если класс, реализующий MyInterface, имеет право похерить все методы IUnknown?


H>>Расширяется не IUnknown. Расширяется MyInterface декларацией IUnknown.


M>Зачем? Что нам это дает, кроме необходимости писать дополнительный код, который все равно нигде не нжен и нигде не участвует?


Что значит зачем? Правило языка. Любой интерфейс, если не указано иное, наследуется (но наследование осуществляется расширением декларации) от IInterface.

M>>>То есть, давай так. Вот интерфейс:

M>>>
M>>>MyInterface : Interface(IUnknown)
M>>>    someMethod() : AnsiString
M>>>end
M>>>


M>>>Напиши, пожалуйста минимальный класс MyClass, который будет реализовывать MyInterface


H>>Есть два варианта:


H>>1. Реализует MyInterface (да-да, все методы -- это MyInterface).

H>>
H>> TMyObject = Class(TObject, MyInterface)
H>>    function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
H>>    function _AddRef: Integer; stdcall;
H>>    function _Release: Integer; stdcall;
H>>    Function SomeMethod : AnsiString;
H>> End;
H>>


M>Зачем мне реализовывать методы QueryInterface, _AddRef и _Release, если я их все равно в данном случае не буду использовать? Или это идеология такая — писать код ради кода? Почему я не могу написать:


Ты можешь и не использовать, а вот компилятор использует, ссылки считает да интерфейсы получает...

M>

M>MyInterface : Interface
M>    function someMethod : AnsiString
M>end


M>MyClass : Class(TObject, MyInterface)
M>    function someMethod : AnsiString
M>end
M>


Можешь написать и так, только наследуйся от TInterfacedObject.

M>Захотели реализовать IUnknown? Пожалуйста:

M>

M>MyInterface : Interface
M>    function someMethod : AnsiString
M>end


M>MyClass : Class(TObject, MyInterface, IUnknown)
M>    function someMethod : AnsiString

M>    function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
M>    function _AddRef: Integer; stdcall;
M>    function _Release: Integer; stdcall;
M>end
M>


M>Зачем плодить лишние сущности?


Это ты сейчас предлагаешь писать лишнее Наследуйся от TInterfacedObject и всех делов.
Re[83]: Чем вам всем не угодил Delphi?
От: hattab  
Дата: 17.05.08 15:53
Оценка:
Здравствуйте, Mamut, Вы писали:

M>>>Зачем мне реализовывать методы QueryInterface, _AddRef и _Release, если я их все равно в данном случае не буду использовать? Или это идеология такая — писать код ради кода? Почему я не могу написать:



M>>>

M>>>MyInterface : Interface
M>>>    function someMethod : AnsiString
M>>>end


M>>>MyClass : Class(TObject, MyInterface)
M>>>    function someMethod : AnsiString
M>>>end
M>>>


M>>>Захотели реализовать IUnknown? Пожалуйста:

M>>>

M>>>MyInterface : Interface
M>>>    function someMethod : AnsiString
M>>>end


M>>>MyClass : Class(TObject, MyInterface, IUnknown)
M>>>    function someMethod : AnsiString

M>>>    function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
M>>>    function _AddRef: Integer; stdcall;
M>>>    function _Release: Integer; stdcall;
M>>>end
M>>>


M>>>Зачем плодить лишние сущности?


I>>Вы, наверное, этого нигде не видели, но вам не приходило в голову, что _AddRef, _Release и QueryInterface могут быть реализованы по разному? Или вы хотите, чтобы была какая-то реализация по-умолчанию?



M>Мне все равно, есть какая-то реализация по умолчанию или нет Я не могу поянть, зачем меня обязывают реализовывать эти функции, несмотря на то, что они имеют никакого смысла для какого-то данного объекта


А говорил, что ObjectPascal знаешь Эти методы нужны компилятору, чтоб он мог ссылки подсчитывать автоматически. К тому же, тебя никто не обязывает их реализовывать, наследуйся от TInterfacedObject.

I>>А по дефолту зачем?


M>Вот и о том же Зачем, реализуя MyInterface я все равно должен (фактически) реализовать IUnknown, хотя от этого IUnknown мне ни холодно ни жарко?


Ты так и не можешь отделить декларацию от реализации... Мамут, трудно с тобой

M>Почему я не могу просто задекларировать интерфейс с методами, которые мне нужны, и не заморачивать себе голову реализацией дополнительных, никому не нужных методов?


M>Или.


M>Если я так или иначе фактически реализую интерфейс IUnknown, зачем мне дополнительно указывать, что я его реализую/не реализую? Вон они — методы из IUnknown, навязаные мне MyInterface'ом. Зачем они мне там? Так, чтобы лишнее место занимать?


Остается только мануалы помянуть
Re[23]: Препроцессоры для Delphi
От: squid  
Дата: 17.05.08 19:03
Оценка:
Здравствуйте, hattab, Вы писали:

H>Как оказалось, оно и в ActiveX работает


может пофиксили...

H>Судя по changes.txt, обновляют они ее чуть не каждый месяц...


EVR и прочих вистовских вещей как небыло так и нет. хотя один чувак на форуме частичный порт выкладывал. где ты обновления узрел я не знаю. стабильных версий не видно а качать билды непонятной стабильности с CVS — глупо. последней версии 2.3.4 уже пару лет. как минимум.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[26]: наши менеджеры памяти самые менеджеристые менеджеры
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 17.05.08 21:02
Оценка:
Здравствуйте, hattab, Вы писали:

H>Ну надо же Ладно, кончай придуриваться. Согласись, что был не прав

В чем?

В делфи стандартная практика — применение набора сторонних компонентов для каждого проекта. Например где я работал стабильно применялись fast report и какие-то навороченные гриды.
В .NET такого нету. Стандартная библиотке покрывает большенство необходимостей.

H>Посмотри на свой любимый Paint.Net, в окошке About. Три сторонних библиотеки заюзано для такого скромненького проекта. Кстати, эта гхм... хранит MRU миниатюры в реестре, да еще и в виде строки base64

Напиши лучше.

H>Думается мне, что именно ты их и придумал...

Не говори чушь.

H>Ты в контексте разговора попробуй ответить. После добавления юникода в гуй и дженериков в язык, будет модерн?

Контекст разговора в том, что делфи устарел. Если в 2008 году туда включат нативную поддержку юникода он модерновым не станет.
Re[24]: наши менеджеры памяти самые менеджеристые менеджеры
От: Mamut Швеция http://dmitriid.com
Дата: 18.05.08 07:42
Оценка:
M>>Про государственные конторы тебе уже тут говорили

H>Да мне тут и про вояк говорили... Вот только говорители даже обосновать такие требования не могут


Мы — исполнители. Заказчик может требовать, что хочет. Блин, я в рассылке по jQuery (Javascript!) наткнулся на вопросы, связаные с тем, что для гос. сайта был прямой запрет на использование каких-лио сторонних Javascript-компонентов.


M>>Юникод — это базовое требование, в отличие от XML-RPC и прочих


H>Что значит базовое? В языке оно есть очень давно. В гуй-библиотеке не поддерживается пока. Неприятный факт? Конечно неприятный. Но для кого? Для корпоративной системы его наличие или отсутствие не упирается ни в одну точку (а Delphi на что ориентирована?).



Угу. Особнно, если в этой системе надо поддерживать турецкий, английский и русский. Good luck, как говорится.
... << RSDN@Home 1.2.0 alpha 4 rev. 1084>>


dmitriid.comGitHubLinkedIn
Re[84]: Чем вам всем не угодил Delphi?
От: Mamut Швеция http://dmitriid.com
Дата: 18.05.08 07:47
Оценка:
M>>Мне все равно, есть какая-то реализация по умолчанию или нет Я не могу поянть, зачем меня обязывают реализовывать эти функции, несмотря на то, что они имеют никакого смысла для какого-то данного объекта

H>А говорил, что ObjectPascal знаешь Эти методы нужны компилятору, чтоб он мог ссылки подсчитывать автоматически. К тому же, тебя никто не обязывает их реализовывать, наследуйся от TInterfacedObject.


То сть от COM мы все равно никуда не уходим?

I>>>А по дефолту зачем?


M>>Вот и о том же Зачем, реализуя MyInterface я все равно должен (фактически) реализовать IUnknown, хотя от этого IUnknown мне ни холодно ни жарко?


H>Ты так и не можешь отделить декларацию от реализации... Мамут, трудно с тобой


Я не понимаю, почему такую кривизну называют идеологией
... << RSDN@Home 1.2.0 alpha 4 rev. 1084>>


dmitriid.comGitHubLinkedIn
Re[82]: Чем вам всем не угодил Delphi?
От: Mamut Швеция http://dmitriid.com
Дата: 18.05.08 07:47
Оценка:
H>>>Расширяется не IUnknown. Расширяется MyInterface декларацией IUnknown.

M>>Зачем? Что нам это дает, кроме необходимости писать дополнительный код, который все равно нигде не нжен и нигде не участвует?


H>Что значит зачем? Правило языка. Любой интерфейс, если не указано иное, наследуется (но наследование осуществляется расширением декларации) от IInterface.



В пятый раз прошу: обьсни мне, что ты понимаешь под словом "расширяется" и что ты понимаешь под словом "наследуется"

M>>Зачем мне реализовывать методы QueryInterface, _AddRef и _Release, если я их все равно в данном случае не буду использовать? Или это идеология такая — писать код ради кода? Почему я не могу написать:


H>Ты можешь и не использовать, а вот компилятор использует, ссылки считает да интерфейсы получает...


Тогда зачем мне явно указывать, что тот или иной объект реализует IUnknown, если мы и так его реализуем?


M>>

M>>MyInterface : Interface
M>>    function someMethod : AnsiString
M>>end


M>>MyClass : Class(TObject, MyInterface)
M>>    function someMethod : AnsiString
M>>end
M>>


H>Можешь написать и так, только наследуйся от TInterfacedObject.


Если. Любой. Интерфейс. Наследуется. От. IUnknown. Зачем мне явно указывать, что мы реализуем IUnknown, если мы его все равно реализуем

M>>Захотели реализовать IUnknown? Пожалуйста:

M>>

M>>MyInterface : Interface
M>>    function someMethod : AnsiString
M>>end


M>>MyClass : Class(TObject, MyInterface, IUnknown)
M>>    function someMethod : AnsiString

M>>    function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
M>>    function _AddRef: Integer; stdcall;
M>>    function _Release: Integer; stdcall;
M>>end
M>>


M>>Зачем плодить лишние сущности?


H>Это ты сейчас предлагаешь писать лишнее Наследуйся от TInterfacedObject и всех делов.


Зачем? Зачем мне дополнительно еще указывать то, что мы реализуем IUnknown, если мы его так или иначе реализуем?

И разве любой класс, реализующий любой интерфейс не становится автоматически COM-объектом? Если да, то тогда любой интерфейс в Дельфи является COM-совместимым
... << RSDN@Home 1.2.0 alpha 4 rev. 1084>>


dmitriid.comGitHubLinkedIn
Re[83]: Чем вам всем не угодил Delphi?
От: int64 Россия  
Дата: 18.05.08 09:58
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Зачем? Зачем мне дополнительно еще указывать то, что мы реализуем IUnknown, если мы его так или иначе реализуем?

Интересно, когда ты успел его "так или иначе" зариализовать? Когда написал: MyInterface : Interface?

M>И разве любой класс, реализующий любой интерфейс не становится автоматически COM-объектом?

С какого перепуга?
Re[85]: Чем вам всем не угодил Delphi?
От: int64 Россия  
Дата: 18.05.08 10:50
Оценка:
Здравствуйте, Mamut, Вы писали:

H>>Ты так и не можешь отделить декларацию от реализации... Мамут, трудно с тобой


M>Я не понимаю, почему такую кривизну называют идеологией


Заведи отдельную тему: Абстракция — идеология или кривизна?
Полагаю, мнения не очень разделятся.
Re[24]: Препроцессоры для Delphi
От: hattab  
Дата: 18.05.08 18:01
Оценка:
Здравствуйте, squid, Вы писали:

H>>Как оказалось, оно и в ActiveX работает


S>может пофиксили...


У меня версия от 2002 года... Можешь сказать в чем заключался твой фикс, я в исходниках погляжу

H>>Судя по changes.txt, обновляют они ее чуть не каждый месяц...


S>EVR и прочих вистовских вещей как небыло так и нет. хотя один чувак на форуме частичный порт выкладывал. где ты обновления узрел я не знаю. стабильных версий не видно а качать билды непонятной стабильности с CVS — глупо. последней версии 2.3.4 уже пару лет. как минимум.


Я же написал, changes.txt. Да, 2.3.4 с 2004 года обновлений небыло, но обновлялось оно почти каждый месяц. Можешь еще здесь глянуть, хидеры аж от 2007 года.
Re[27]: наши менеджеры памяти самые менеджеристые менеджеры
От: hattab  
Дата: 18.05.08 18:15
Оценка:
Здравствуйте, gandjustas, Вы писали:

H>>Ну надо же Ладно, кончай придуриваться. Согласись, что был не прав

G>В чем?

Вот в этом:

H>Да ни одна библиотека не в состоянии покрыть все потребности...
Только .NET и Java почему-то покрывает. Есть конечно некоторые нестандартные решения, о рынке говорить не приходится.


G>В делфи стандартная практика — применение набора сторонних компонентов для каждого проекта. Например где я работал стабильно применялись fast report и какие-то навороченные гриды.


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

G>В .NET такого нету. Стандартная библиотке покрывает большенство необходимостей.


Угу. И Девэкспрессов нету для .Net'а... В общем твое упорство говорит только об одном -- тебе не приходилось писать ничего сложнее стандартных базаморд.

H>>Посмотри на свой любимый Paint.Net, в окошке About. Три сторонних библиотеки заюзано для такого скромненького проекта. Кстати, эта гхм... хранит MRU миниатюры в реестре, да еще и в виде строки base64

G>Напиши лучше.

Мне то оно зачем? Не я это тут рекомендовал к ознакомлению...

H>>Думается мне, что именно ты их и придумал...

G>Не говори чушь.

Чушь -- это твои бездоказательные и немотивированные доводы.

H>>Ты в контексте разговора попробуй ответить. После добавления юникода в гуй и дженериков в язык, будет модерн?

G>Контекст разговора в том, что делфи устарел. Если в 2008 году туда включат нативную поддержку юникода он модерновым не станет.

Вот! Теперь список требований для модерна в студию, плиз
Re[25]: наши менеджеры памяти самые менеджеристые менеджеры
От: hattab  
Дата: 18.05.08 18:29
Оценка:
Здравствуйте, Mamut, Вы писали:

M>>>Про государственные конторы тебе уже тут говорили


H>>Да мне тут и про вояк говорили... Вот только говорители даже обосновать такие требования не могут


M>Мы — исполнители. Заказчик может требовать, что хочет. Блин, я в рассылке по jQuery (Javascript!) наткнулся на вопросы, связаные с тем, что для гос. сайта был прямой запрет на использование каких-лио сторонних Javascript-компонентов.


Я фигею с таких доводов... Мы исполнители... Тебе заказчик банку с вазелином покажет, капустой похрустит и...? С заказчиком нужно диалог вести и, по меньшей мере, понять причины таких требований. Не, ну если тебе нравится получать деньги за переписывание того, что уже существует... в MS прямая дорога, они вот собираются IE8 с нуля писать (точнее уже собрались и пишут).

M>>>Юникод — это базовое требование, в отличие от XML-RPC и прочих


H>>Что значит базовое? В языке оно есть очень давно. В гуй-библиотеке не поддерживается пока. Неприятный факт? Конечно неприятный. Но для кого? Для корпоративной системы его наличие или отсутствие не упирается ни в одну точку (а Delphi на что ориентирована?).


M>Угу. Особнно, если в этой системе надо поддерживать турецкий, английский и русский. Good luck, как говорится.


Хе-хе-хе. Следуя логике твоих слов, для тебя аналог MS Trident'а написать проще, чем юникод на VCL повесить (а ведь это можно сделать и без написания аналогов VCL контролам, al'a TNT) . Ню-ню.
Re[85]: Чем вам всем не угодил Delphi?
От: hattab  
Дата: 18.05.08 18:43
Оценка:
Здравствуйте, Mamut, Вы писали:

M>>>Мне все равно, есть какая-то реализация по умолчанию или нет Я не могу поянть, зачем меня обязывают реализовывать эти функции, несмотря на то, что они имеют никакого смысла для какого-то данного объекта


H>>А говорил, что ObjectPascal знаешь Эти методы нужны компилятору, чтоб он мог ссылки подсчитывать автоматически. К тому же, тебя никто не обязывает их реализовывать, наследуйся от TInterfacedObject.


M>То сть от COM мы все равно никуда не уходим?


Бинарная совместимость с COM обеспечивается, да.

I>>>>А по дефолту зачем?


M>>>Вот и о том же Зачем, реализуя MyInterface я все равно должен (фактически) реализовать IUnknown, хотя от этого IUnknown мне ни холодно ни жарко?


H>>Ты так и не можешь отделить декларацию от реализации... Мамут, трудно с тобой


M>Я не понимаю, почему такую кривизну называют идеологией


Это ты называешь кривизной то, чего не можешь понять.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.