
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.5] |
![]() |
|
Страницы: (117) « Первая ... 2 3 [4] 5 6 ... 116 117 ( Перейти к последнему сообщению ) |
Сообщ.
#46
,
|
|
|
Цитата Smike @ Так вот, в ходе своего знакомства я увидел, что для элементарных вещей в Delphi в C++ требуются большие усилия. Например, чтобы задать экспортирумым функциям нормальные имена (а не _Function@8) нужно вручную править DEF-файл. То же самое в Delphi делается без всякого вмешательства программиста: всем функциям изначально даются такие же имена, как в коде. Легко критиковать то, в причинах чего не до конца разобрался. ![]() ![]() Цитата Smike @ А вот C++ (не Борландовский) еще не научился работать со строками произвольного размера (без нулевого окончания)? Проснись ![]() Цитата wind @ Зачем писать отдельный контрол, когда можно просто реализовать адаптер для этих компонент, реализующий интерфейсы слушателей изменения их свойств? Можно так. А можно и проще. |
![]() |
Сообщ.
#47
,
|
|
Цитата Flex Ferrum @ Можно так. А можно и проще. Ждём-с ![]() |
Сообщ.
#48
,
|
|
|
Цитата Smike @ Аналогичная ситуация ситуация с STL и Boost. В поставке Visual C++ 2005 нет ни того, ни другого, ![]() ![]() ![]() Добавлено Цитата wind @ Ждём-с ![]() Ну представим себе следующий код: ![]() ![]() // Класс строки редактирования class EditBox { public: //... // Объявляем сигнал на изменение содержимого строки редактирования boost::signal<void (const std::wstring&)> OnTextChanged; // Метод, устанавливающий значение в строку редактирования void SetText(const std::wstring& value); //... }; class Slider { public: //... // Сигнал на изменение значения слайдера boost:signal<void (int)> OnValueChanged; // Метод, устанавливающий новую позицию слайдера void SetValue(int valuel); }; Ну а теперь где-то в форме ![]() ![]() class VeryBigForm { public: VeryBigForm(); private: EditBox m_EditBox1; EditBox m_EditBox2; EditBox m_EditBox3; Slider m_Slider1; Slider m_Slider2; Slider m_Slider3; }; void SetSliderValue(const std::wstring& val, Slider* slider) { slider->SetValue(boost::lexical_cast<int>(val)); } void SetEditBoxValue(int val, EditBox* eb) { eb->SetText(boost::lexical_cast<std::wstring>(val)); } VeryBigFrom::VeryBigFrom() { // Связываем слайдеры с editbox'ами m_Slider1.OnValueChanged.connect(boost::bind(SetEditBoxValue, _1, &m_EditBox1)); m_Slider2.OnValueChanged.connect(boost::bind(SetEditBoxValue, _1, &m_EditBox2)); m_Slider3.OnValueChanged.connect(boost::bind(SetEditBoxValue, _1, &m_EditBox3)); // Связываем editbox'ы со слайдерами m_EditBox1.OnTextChanged.connect(boost::bind(SetSliderValue, _1, &m_Slider1)); m_EditBox2.OnTextChanged.connect(boost::bind(SetSliderValue, _1, &m_Slider2)); m_EditBox3.OnTextChanged.connect(boost::bind(SetSliderValue, _1, &m_Slider3)); } Вот и всех делов, собственно. ![]() |
Сообщ.
#49
,
|
|
|
Цитата Smike @ Delphi — это язык. Не нужно смешивать язык и надстройки. И средства создания GUI с помощью Delphi не ограничиваются VCL. На Delphi я могу написать полностью юникодное приложение на WinApi, например. Или мы тут не языки сравниваем? Если рассматривать в таком аспекте (delphi как язык), то, согласен, можно... Цитата Smike @ Аналогичная ситуация ситуация с STL и Boost. В поставке Visual C++ 2005 нет ни того, ни другого, значит это отнюдь не такая стандартная библиотека. В поставке vc++2005 есть stl, так как он входит в c++. А стандартность stl'а описана в стандарте c++ (кстати, у дельфи имеется стандарт?). |
Сообщ.
#50
,
|
|
|
mo3r- а чтож у мну-то вон Unicode ф-кции нормально пашут???
![]() ![]() {$apptype console} program Hello; uses windows; const caption = widestring ('Превед'); text = widestring ('Проснись и пой'); begin MessageBoxW (0, text, caption, mb_ok); end. Так что, не надо ля-ля... Хм.. а в C++ Unicode - есть из коробки, или там тока одни костыли? |
Сообщ.
#51
,
|
|
|
Цитата mo3r @ Если рассматривать в таком аспекте (delphi как язык), то, согласен, можно... У Смайка интересно получается. Когда ему удобно, он говорит, что Delphi - это только язык. В другой момент - это язык + VCL. В третий - язык + VCL + IDE. А ты сиди, и пытайся понять - что же в данном конкретном месте он понимает под словом Delphi... ![]() Добавлено Цитата n0p @ Хм.. а в C++ Unicode - есть из коробки, или там тока одни костыли? Тип wchar_t в стандарте прописан. widechar-функции - тоже. Так что думай - из коробки или нет. ![]() |
Сообщ.
#52
,
|
|
|
Цитата mo3r кстати, у дельфи имеется стандарт? ты не поверишь, но совместимость с Delphi актуальна как GNU Pascal, так и Free Pascal, соответственно есть опции совместимости, которые, в значительной мере раскрепощают избалованово простотой и лёгкостью Delphi, кодера. Единственый незачет (как и у С++) - использование линкера в последней стадии обработки. Ну и конечно отсутствие рульных трёх регистровых fastcall вызовов. По оптимизации кода - эти компилеры всьма сливают Borland'у. Асм в ставках применять очень напряжно (как собсна и в C/C++) - создаються стековые фреймы (и от этого не помогают ни какие опции), которые за частую создают лишние проблемы. Добавлено Цитата Так что думай - из коробки или нет пишем слив плюсам - вот что я думаю ![]() |
Сообщ.
#53
,
|
|
|
Цитата n0p @ пишем слив плюсам - вот что я думаю Да сколько угодно. Только вот по правилам раздела этот слив обосновать надо. А то можно очень быстро слить тебя... ![]() |
![]() |
Сообщ.
#54
,
|
|
Цитата Flex Ferrum @ Вот и всех делов, собственно. ![]() Собственно, ничем не отличается от предложенного мною или Мяутом ![]() |
Сообщ.
#55
,
|
|
|
Цитата wind @ Собственно, ничем не отличается от предложенного мною или Мяутом ![]() Ну, видимо, я не совсем понял суть того, что вы предлагали. |
Сообщ.
#56
,
|
|
|
Цитата Только вот по правилам раздела этот слив обосновать надо Ну по моему скромному имхо, С++ весьма тяжел для осиливания, во всех его нюансах, и слишком увесист, во всех его навороченейших хидерах (+либы), на одно усвоение которых уйдет значительное кол-во времени (чтоб потом программить по 'шаблонным правилам'). Ну а так, достаточно сопаставить одинаковые VCL проги Delphi и C++ Builder, чтоб понять где больше букв, и знаков препинания. Да, в чем то, OPascal прямолинеен, гдето неудобен, однако C++ он мало чем уступит в основном применении - вызов ф-кций системы, c заполнением тех или иных структур, которые занимают значительную часть в любой мало мальски функциональной проге. Хотя, бесспорно, есть темы в которых плюсы его безоговорочно уделают. ![]() Правда, для этого нужна целая команда, высокообразованых в высшей алгебре, мега-кул кодеров. |
Сообщ.
#57
,
|
|
|
Цитата n0p @ Ну по моему скромному имхо, С++ весьма тяжел для осиливания, во всех его нюансах, и слишком увесист, во всех его навороченейших хидерах (+либы), на одно усвоение которых уйдет значительное кол-во времени (чтоб потом программить по 'шаблонным правилам'). Т. е., грубо говоря, "многа букаф, ниасилил"? Ну, это еще не повод записывать слив. Может быть, если бы ты лучше изучил бы С/С++, не надо было бы направо и налево использовать ассемблерные вставки в коде... |
Сообщ.
#58
,
|
|
|
Да знаю я ваши си и плюсы, хосспади. в базовой части. То есть они и мои, разумееться, как и целый ворох компиляторов. Просто предпочитаю находить более лёгкие пути. В жестоком деле (хотя и джаст-фор-фан) власти над машиной, системой и алгоритмами.
![]() |
Сообщ.
#59
,
|
|
|
Цитата Flex Ferrum @ У Смайка интересно получается. Когда ему удобно, он говорит, что Delphi - это только язык. В другой момент - это язык + VCL. В третий - язык + VCL + IDE. А ты сиди, и пытайся понять - что же в данном конкретном месте он понимает под словом Delphi... ![]() В этой теме, как ты мог заметить, я ниразу не упоминал о преимуществах Delphi в виде VCL. И про IDE тоже умолчал. |
Сообщ.
#60
,
|
|
|
Цитата Smike @ В этой теме, как ты мог заметить, я ниразу не упоминал о преимуществах Delphi в виде VCL. И про IDE тоже умолчал. Ну так ведь это - не первая такая тема. ![]() |