Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.192] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 104 105 [106] 107 108 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#1576
,
|
|
|
|
а это такой квадратик, который кидаешь на форму, а при запуске проги его не видно Добавлено Думаю для начала, неплохо было бы определиться, что такое вообще компонент, а то смотрю каждый это понятие воспринимает по своему... |
|
Сообщ.
#1577
,
|
|
|
|
эти возможности ИДЕ напрямую вытекают из компонентной модели фреймворков, компонент сам решает какие его параметры будут доступны в дизайнтайме, среде остается лишь предоставить пользовательский интерфейс. Если у компонента 20 параметров, ты же не будешь создавать для него конструктор с 20-ю параметрами (ведь некоторые из них инициализируют поля, которые нельзя напрямую изменить у сконструированного объекта) |
|
Сообщ.
#1578
,
|
|
|
|
Цитата korvin @ Если у компонента 20 параметров, ты же не будешь создавать для него конструктор с 20-ю параметрами (ведь некоторые из них инициализируют поля, которые нельзя напрямую изменить у сконструированного объекта) korvin, я не буду создавать никаких конструкторов с 20 параметрами, я просто создам объект, конструктор вызовется автоматом и проинициализирует поля значениями по умолчанию, если мне что либо нужно изменить, я вызову нужный мне метод и передам в него нужный мне параметр... Отличие от IDE, ли ш в том, что в IDE мне мышкой тыкать придется, а в моем случае на клавиши давить, что быстрее будет? Это ооочень спорный вопрос, я уверен что я быстрее наберу эти 5 строчек кода, чем ты найдешь нужный тебе компонент, выкинешь его на форму, плюс найдешь нужное тебе свойство из 40 доступных, и инициализируешь его нужным значением... Так что тут как бы нужно всетаки определится что значит компонент, и что мы будем сравнивать... Программировать - это не за IDE сидеть, понимаешь? Можно ручку и листик бумаги в ручки взять и начать программировать... Цитата korvin @ эти возможности ИДЕ напрямую вытекают из компонентной модели фреймворков, компонент сам решает какие его параметры будут доступны в дизайнтайме, среде остается лишь предоставить пользовательский интерфейс. Ну ты загнул, а с интерфейсами что не так? Ну так инкапсуляция и там и сям... Интерфейс тебе предоставляет только те свойства которые ты можешь дергать, все остальное скрыто в имплементации и тебе не доступно. |
|
Сообщ.
#1579
,
|
|
|
|
Это закладка на статичность. Что мне от этой проверки(если она вообще есть), если у меня параметр задается в процессе работы?
Кстати, а в исходники VCL не заглядывал, чем сопровождается эта проверка? Код, предназначенный исключительно для design-time, тащится в результирующий исполнимый файл. |
|
Сообщ.
#1580
,
|
|
|
|
ты же вроде пишешь на C#, в VS? там же есть -- те же компоненты для доступа к БД Добавлено Цитата KILLER @ korvin, я не буду создавать никаких конструкторов с 20 параметрами, я просто создам объект, конструктор вызовется автоматом и проинициализирует поля значениями по умолчанию, если мне что либо нужно изменить, я вызову нужный мне метод и передам в него нужный мне параметр... дык а если нет метода, задающего этот параметр напрямую? будешь наследоваться от этого класса? Добавлено Цитата KILLER @ Программировать - это не за IDE сидеть, понимаешь? Можно ручку и листик бумаги в ручки взять и начать программировать... понимаю, ИДЕ -- это инструмент. _удобный_ (в большинстве случаев) инструмент, автоматизирующий некоторые рутинные действия |
|
Сообщ.
#1581
,
|
|
|
|
Цитата korvin @ А такой параметр доступен через Object Inspector в Delphi?дык а если нет метода, задающего этот параметр напрямую? Цитата Published members have the same visibility as public members. The difference is that runtime type information (RTTI) is generated for published members. RTTI allows an application to query the fields and properties of an object dynamically and to locate its methods. RTTI is used to access the values of properties when saving and loading form files, to display properties in the Object Inspector, and to associate specific methods (called event handlers) with specific properties (called events). Published properties are restricted to certain data types. Ordinal, string, class, interface, and method-pointer types can be published. So can set types, provided the upper and lower bounds of the base type have ordinal values between 0 and 31. (In other words, the set must fit in a byte, word, or double word.) Any real type except Real48 can be published. Properties of an array type (as distinct from array properties, discussed below) cannot be published. Some properties, although publishable, are not fully supported by the streaming system. These include properties of record types, array properties of all publishable types, and properties of enumerated types that include anonymous values. If you publish a property of this kind, the Object Inspector won’t display it correctly, nor will the property’s value be preserved when objects are streamed to disk. All methods are publishable, but a class cannot publish two or more overloaded methods with the same name. Fields can be published only if they are of a class or interface type. |
|
Сообщ.
#1582
,
|
|
|
|
Цитата korvin @ ты же вроде пишешь на C#, в VS? там же есть -- те же компоненты для доступа к БД Я их не использую. Для доступа к БД у нас либо своя либа, либо ORM. Я вообще не пишу какой бы то ни было пользовательский интерфейс, всё как-то части системы, которые используют другие. А десктопных частей у нас вообще нет, всё веб-интерфейс. |
|
Сообщ.
#1583
,
|
|
|
|
Цитата korvin @ дык а если нет метода, задающего этот параметр напрямую? будешь наследоваться от этого класса? Если такого метода нет, 100% этого свойства нет в инстпекторе объекта, для твоего компонента, и выставить ты его просто не сможешь, хоть в делфях хоть в С++ хоть в C#, потому как Object Inspector как раз и отображает те свойства, которые тебе доступны через открытые проперти/методы ... Добавлено Цитата korvin @ понимаю, ИДЕ -- это инструмент. _удобный_ (в большинстве случаев) инструмент, автоматизирующий некоторые рутинные действия Нет, как раз таки IDE это не способ понизить рутиную задачу, а как раз таки повысить, потому как ты просто сидишь и тыкаешь по мышке, даже не задумываясь чего оно тебе там проектирует.. Заметь многие профессиональные программисты, зачастую сидят в обычных редакторах, с обычной подсветкой кода, безо всяких наворотов типа там Visual Assist+MSVS2010 |
|
Сообщ.
#1584
,
|
|
|
|
Цитата trainer @ Это закладка на статичность. Что мне от этой проверки(если она вообще есть), если у меня параметр задается в процессе работы? дык если в процессе работы, то и задавай его в процессе работы, а если на этапе проектирования? например, возьмем компонент представляющий SQL-запрос к БД (а ля QSqlModel/TQuery), известно, что текст запроса меняться не будет в рантайме, задаются только параметры запроса. в случае с Qt, чтобы проверить корректность синтаксиса запроса, существование таблиц и полей (ну мало ли опечатался, с кем не бывает) тебе придется лезть в средство управления своей БД, запускать там запрос (возможно подставлять параметры вручную, я просто ни разу не пробовал запускать в Query Analizer'е, например, параметризованный запрос) или компилировать и запускать программу (+ возможно выполнять какие-то действия, по которым срабатывает запрос). в случае с VCL/.NET у тебя есть возможность запустить запрос на этапе проектирования (в делфи -- всего лишь установкой св-ва Active в True, в VS не помню, но тоже легко и быстро) и если есть указанные выше ошибки, то ты сразу получишь исключение. более того, если эта модель связана с представлением (TDBGrid например), то ты сразу можешь увидишь результат запроса. (надо только уточнить, как там с модифицирующими запросами, но если не ошибаюсь, их нельзя таким образом запустить, только SELECT, возвращающий набор данных) |
|
Сообщ.
#1585
,
|
|
|
|
И сколько у тебя таких компонентов в типичном проекте?
Цитата korvin @ Всегда выставлял его в false, чтобы не мешал работать. всего лишь установкой св-ва Active в True, |
|
Сообщ.
#1586
,
|
|
|
|
Цитата KILLER @ Нет, как раз таки IDE это не способ понизить рутиную задачу, а как раз таки повысить, потому как ты просто сидишь и тыкаешь по мышке, даже не задумываясь чего оно тебе там проектирует.. Заметь многие профессиональные программисты, зачастую сидят в обычных редакторах, с обычной подсветкой кода, безо всяких наворотов типа там Visual Assist+MSVS2010 если ты бездумно тыкаешь мышкой -- это твои проблемы, повышения рутинности ИДЕ не привносит. а emacs -- не такой уж обычный редактор. да и vim не такой уж примитивный, программирующие же в блокноте с подсветкой синтаксиса профессионалами не являются |
|
Сообщ.
#1587
,
|
|
|
|
Цитата korvin @ программирующие же в блокноте с подсветкой синтаксиса профессионалами не являются Так вот он какой, критерий профессионализма! |
|
Сообщ.
#1588
,
|
|
|
|
Цитата trainer @ И сколько у тебя таких компонентов в типичном проекте? Всегда выставлял его в false, чтобы не мешал работать. у меня нет "типичного проекта", я их не клепаю сотнями =) пару программ, в первой около 20, в одном датамодуле (плохо проанализировал существующую БД, в условиях отсутствия документации и просто наиужаснейшего дизайна БД сделать это было несколько проблематично =/) во второй примерно столько же, только уже более логически сгруппированы по разным датамодулям ну выставил в True, убедился, что все ок, вернул в False =) |
|
Сообщ.
#1589
,
|
|
|
|
Цитата korvin @ А не таких в этом же проекте? в первой около 20 |
|
Сообщ.
#1590
,
|
|
|
|
Цитата korvin @ а emacs -- не такой уж обычный редактор. да и vim не такой уж примитивный, программирующие же в блокноте с подсветкой синтаксиса профессионалами не являются Я не понял, emacs - это нормально или мне переквалифицироваться в управдомы? |