![]() |
Модераторы: volvo877, Snowy, MetalFan |
![]() ![]() ![]() |
|
Paradox |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1135 Регистрация: 18.11.2002 Где: Россия Репутация: нет Всего: 1 |
Ктати Vit а ведь в Дельфи есть понятие делегирования - не сталкивался разве ?
-------------------- --- |
|||
|
||||
stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: нет Всего: 48 |
В Delphi роль делегатов выполняли переменные процедурных типов, но с точки зрения защищенности такой подход не самый лучший. В .net для этого придумали делегаты, т.е. класс который инкапсулирует в себе всю работу связанную с вызовом и т.д. методов. Если процедурные типы так и оставили без изменений, то сомнительно называть Delphi .net языком. з.ы. Я не много не правильно задал вопрос, от класса делегата в .net наследовать нельзя. Точнее наследовать могут только компилеры и посуществу это вообще не класс, а шаблон класса ![]() -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: нет Всего: 48 |
Vit, выложи, пожалуйста, описание и реализацию TObject или того, что его заменяет
![]() -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
Paradox |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1135 Регистрация: 18.11.2002 Где: Россия Репутация: нет Всего: 1 |
По моему в дотнет это System.Object -------------------- --- |
|||
|
||||
Cheba |
|
|||
![]() pointless one ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1777 Регистрация: 27.11.2003 Где: /dev/null Репутация: нет Всего: 62 |
Вот в комплекте с Delphi 7 есть компилятор для .NET. А нет ли в Delphi 8 компилятора для обычного Win32, или как там его зхвать?
|
|||
|
||||
Vit |
|
||||||||||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
Или не сталкивался, или не владею терминологией.
Ну, эта штука естественно хорошо знакома.
Вроде бы нет, хотя у меня только бета, посмотрим что будет в релизе.
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
||||||||||
|
|||||||||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
А может кто-нибудь возьмёт на себя труд объяснить простыми словами как события организованы?
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
gray_k |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1015 Регистрация: 9.1.2003 Где: Москва Репутация: нет Всего: 22 |
На дне Борланд в Москве, когда задали подобный вопрос топ-менеджер долго уходил от темы, а когда прижали таки прозвучала фраза: "C Delphi8 будет поставлятся Delphi7." ИМХО, всё ясно. -------------------- С уважением. Gray. |
|||
|
||||
Kurt |
|
|||
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: нет Всего: 36 |
Вот. Тут рассказано про этот день Борланд. В самом конце.. Обратите внимание - "выступление спонсора".. ИМХО, это и есть покупка Borland.. -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
stab |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: нет Всего: 48 |
Могу рассказать про то как события в .net организованны, про Delphi 8 не могу, т.к. не щупал еще. Про .net. Делегат это, что-то вроде указателя на функцию (C++) или процедурный тип (Pascal). Объявление делегата на C# выглядит так:
delegate ret-type name (parameters); delegate служебное слово ret-type тип возвращаемого значения методов, которые может вызвать делегат name имя делегата parameters параметры методов, которые может вызывать делегат У каждого метода есть сигнатура, если сигнатура метода соответствует сигнатуре делегата, то он может вызвать этот метод. Сигнатура формируется исходя из возвращаемого типа и списка параметров. Скажем, если дельфевое TNotifyEvent = procedure(Sender: TObject) of object; первести в C#, то получим delegate void TNotifyEvent(object Sender);. Теперь требуется как-то использовать полученные знания ![]()
Короче, все как обычно. Теперь то же самое только на C#:
Теперь создадим объект этого класса и назначим обработчик события, а в случае C# (.net) даже несколько обработчиков на одно событие. Delphi:
C#:
Фишка в том, что в .net на одно событие мы повесили 2 (два) ![]() -------------------- 6, 6, 6 - the number of the beast. |
||||||||
|
|||||||||
Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: нет Всего: 55 |
Здорово, однако вопрос, а если позже захочется снять один из обработчиков? Как это делается? -------------------- Все знать невозможно, но хочется |
|||
|
||||
stab |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: нет Всего: 48 |
можно так:
а можно так:
что в принципе эквивалентно, т.к. операция срвнение для делегатов перегружена и сравнивает не объекты, а то на что они ссылаются, т.е. методы. -------------------- 6, 6, 6 - the number of the beast. |
||||||
|
|||||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Думаю, что надо и мне слово сказать
![]() Я тоже смотрел Delphi 8. Итак: 1. По поводу вызовов WinAPI - да, так оно и делается, как vit показал. (Можете зайти в форум по .NET - там в разделе "Экспорт класса из DLL на VC++6.0, и его использование в .NET" есть практически такой же примерчик. 2. По поводу VCL - это фактически сделаны обертки вокруг компонентов для .NET. Поэтому можно предполагать, что компонентов будет прибавляться, т.к. на самом деле гибкость компонент в .NET достаточно велика и можно их там наклепать просто море. 3. По поводу BDE - лично мне кажется, что это тоже обертки вокруг копонентов от .NET |
|||
|
||||
AntonSaburov |
|
||||||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Прочитал весь топик и понял, что теперь работы в форуме .NET явно прибавится
![]() Потому как половина, если не 80% из того, что спрашивается - относится исключительно к сфере .NET. Например:
Это идеи именно от .NET. В принципе эти идеи, как часто водится у Майкрософт, уже были использованы в других продуктах (в той же JAVA).
Думаю, что на 99% попаду в точку если напишу так
Это уже стандартный синтаксис для C#. Вряд в Delphi по-другому. |
||||||
|
|||||||
GASTON |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 20.12.2003 Репутация: нет Всего: нет |
Vit
Интересно, а UNICODE добавили? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi" | |
|
Запрещается! 1. Обсуждать и делится взломанными компонентами или программным обеспечением 2. Публиковать ссылки на варез 3. Оффтопить
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |