»»» Диман - makaev@pisem.net (28.07.00 13:05) Объект - это экземпляр класса.
»»» ASCRUS - ascrus@aport.ru (28.07.00 13:47) если ты имеешь ввиду под понятием обьекты: обьектыне типы, которые описывались ранее в Object Pascal (ключевое слово object), то в Delphi class - это то же самое плюс свойства, события и RTTI (то есть возможность делать публицируемые свойства).
»»» Alexander - avolkov@infostroy.ru (28.07.00 13:48) Согласен с предыдущим с точки зрения анализа. Еще - объект отличается наличием данных (атрибутов или в терминологии Delphi полей, свойств, указателей на обработчиков событий). Класс данных не имеет, кроме реализованных в виде функций класса и предопределенных в TClass атрибутов, например ClassName.
»»»
SergSuper - sergsuper@mail.ru (28.07.00 14:24) Не со
всем так. Класс тоже ведь имеет данные. t=class X:char end - X это что, не данные? Дело в следующем. Первоначально появился object - что-то вроде record-а, но с процедурами, наследованием и т.д. Использовались обычно объекты динамически, т.е. приходилось описывать тип данных объект и тип ссылку на него. Чтобы создать нечто динамическое надо было использовать функцию New. В итоге всё получалось несколько громоздко. В Delphi решили работать с объектами по-другому, т.е. объект(который class) это уже сразу ссылка, еще один тип объявлять не надо, New тоже не надо вызывать. Все новые возможности реализовали только в классах, а object оставили для совместимости.
Ну а принципиальные различия между class и object, как видно из вышеописаного: 1. Класс это ссылка 2. В классы реализованы новые возможности. Если не имеются в виду паскалевские термины, то объект и класс это обычно
одно и тоже, ну может быть "объект - это экземпляр класса".
»»&r
aquo; Alexander - avolkov@infostroy.ru (28.07.00 15:13) Д!
а, тут н
ечего сказать. Super поставил жирную точку в дискусси, не удосужившись понять о чем я писал. Написав "t=class X: char; end;" Вы не сможете обратиться к данным "t.X := #13;", поскольку память под эти "данные" не выделена. Понятно? Не верите, можете попробовать. И вообще, прежде чем писать пример кода, неплохо было бы его хотя-бы откомпилировать без ошибок.
»»» Диман - makaev@pisem.net (28.07.00 15:38) Вот я и говорю: Объект - это экземпляр класса. т.е. объект, это тотже класс, под который выделена память и с которым уже можно работать.
»»» SergSuper - sergsuper@mail.ru (28.07.00 16:02) Ну зачем же так. Очень я даже удосужился. А Ваш последний мессаждь действительно мне непонятен, чего я не скрываю. Написав t=class Вы объявляете тип и естественно не можете присвоить данные типу. Естественно такое компилироваться не будет и
я не пытался его компилировать. Вам же не придет в голову писать "t=record X: char; end"
и потом обращаться к данным "t.X := #13;". Так что Ваши возражения не принимаю. Чтобы окончательно снять вопросы приведу пример идентичного объекта реализованного через object и через class
---object----- type to=object(TObject) x:byte end; po=^to; var o:po; begin o:=New(po,Init) o^.x=#13; Dispose(o,Done) end
---class----- type to=class(TObject) x:byte end; var o:to; begin o:=to.Create o.x=#13; o.Free end
Т.е. когда пишется через object есть и объект(to) и ссылка на него (po). Когда пишется через class есть только ссылка(to). Я думаю, что для Alexander-а я ничего нового не написал, спор имеет чисто теоритический характер, но может кому-то, кто не писал на Паскале 6
или 7, будет интересно.
»»» Palladin (31.07.00 17:40) К
ороче, я понял, что объекты в Delphi еще можно использовать.!
И тут в
опрос возник другой. На счет того что имя класса сразу является указателем я понял, но тогда вопрос: можно ли написать класс с нуля или без TObjecta не обойтись?
»»» ASCRUS - ascrus@aport.ru (01.08.00 08:34) Да ты прав - даже если ты напишешь типа to = class, то все равно это будет означать to = class(TObject). Естественно это сделанно из-за RTTI
»»» SergSuper - sergsuper@mail.ru (01.08.00 09:07) Если использовать object - то будет без без TObject, чисто твой объект. Если class - то прицепляется автоматом.
-= Из конференции сайта MASTERS OF DELPHI (http://delphi.mastak.com) =-
Иконку приложения
Помогите разобраться! Как получить иконку какого-нибудь запущенного приложения, делаю это так: Image1.Picture.Icon....
Обработка строки. Паскаль
ужасно глючит комиплятор, не могу доделать прогу. надо из строки "123 456 789" сделать строку "789 456 123" и на ...
Люди кто знает .................
Люди у меня к вам два вопроса кто мне подскажет даже не подскажет, а перечислит какие игры логические есть? И где можно ...
Повторное использование форм в Delphi
Каждый раз, приступая к разработке нового проекта, я ловлю себя на мысли, что когда-то я уже делал подобные формы. Поэтому я решил поделиться несколькими мыслями о повторном использовании форм в Delphi. Я не претендую на авторство описанных ниже методов, однако я еще не встречал статьи, где данный вопрос был освещен достаточно полно...
Help. Разработка справочных систем.
Средства помощи пользователю являются обязательной частью любой настоящей программы. Эти средства могут быть реализованы различными способами, от команд явного вызова справки до автоматического отображения подсказки, соответствующей текущей ситуации. Но помощь пользователю должна быть всегда эффективной и своевременной. Книга адресована тем программистам, которые не очень хорошо представляют себе, как помочь потенциальным пользователям. Главное внимание в ней уделено технологии создания электронных справочных систем в двух форматах HLP и CHM. Рассмотрены наиболее эффективные инструменты построения справочников, в том числе популярный во всем мире пакет RoboHelp Office.
Автор: Гультяев А. К.
Хокку дня
Да, нелегка самурайская жизнь Hо делать себе харакири Обидно, поевши пельменей...
Афоризмы
Говорящий плохо о твоих детях, говорит плохо о тебе....
Фраза дня
Искусство вождения требует жертв
Дурацкие законы (информация предоставлена сайтом kurilka.com)
В Кентуки (США) женщинам запрещено ходить по шоссе в купальном костюме. Исключение- если ее сопровождают по крайней мере двое полицейских или если она вооружена палкой.
В городе Джаспер в Алабаме (США) муж не может колотить жену палкой, диаметр которого больше толщины его большого пальца на руке.
И на закуску коротенький анекдот
Встречаются два программиста: - Говорят, ты женился! - Да, есть такое дело. - А как зовут? - (в задумчивости) Оксана... нет, Татьяна... нет, КОРОЧЕ ICQ# 98745482190 !!!