
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.100] |
![]() |
|
Сообщ.
#1
,
|
|
|
Наконец то свершилось. Увидел свет 2009-й билдер. Несколько слов о нем с http://slavka.org.ru/
Тотальная «уникодификация» затронула практически все составляющие IDE. Прежде всего, это изменение строковой концепции языка. Был добавлен новый строковой тип UnicodeString. Для UnicodeString внутренним форматом будет UTF16. Тип string, который ранее описывался как AnsiString, стал UnicodeString. Типы Char и PChar, которые ранее соответствовали AnsiChar и PAnsiChar, соответственно стали WideChar и PWideChar. Как следствие, все заголовочные файлы для работы с WinAPI изменены под юникод. Если ранее все функции соответствовали A функциям Windows, то теперь они будут соответствовать W функциям... Например, если в Delphi 2007 MessageBox определялась как MessageBoxA, то в Delphi 2009 она это будет MessageBoxW. Старые типы данных также можно будет использовать, но потребуется явное указание типа (например, AnsiString и AnsiChar для указания старой однобайтной строки и символа). Кроме того, был введен новый класс TEncoding, предназначенный для преобразования текста в различные кодировки. Соответственно, претерпели изменения некоторые базовые классы, которые стали использовать данный класс в реализации своих методов. Так метод LoadFromFile класса TStrings теперь автоматически определяет кодировку текста и производит его перекодировку в UTF-16 (UnicodeString), используя TEncoding. Множества вида Set of Char теперь в коде должны быть заменены на Set of AnsiChar. В противном случае компилятор выдаст ошибку. правда в полной версии приходится качать 4.5 Гига. ставлю - посмотрим что получится.... |
Сообщ.
#2
,
|
|
|
похоже что ClassExplorer и в эту версию не включили....
![]() во всяком случае пока я его не нашел. |
Сообщ.
#3
,
|
|
|
++++ СОМ объекты, созданные в 6-ой версии нормально переносятся, компилятся и регистрируются (в 2007-м билдере это не работало)
---- ClassExplorer есть только в дельфях и то не очень.... Возникает логический вопрос к разработчикам РАД2009 - и зачем убирать то что было удобно и нужно в 6-ке ??? +-+- с юникодом не обманули - таки есть.... |
Сообщ.
#4
,
|
|
|
и что - никто ниче на эту тему сказать не хочет
![]() ![]() |
Сообщ.
#5
,
|
|
|
Не видели. Трудности с ... до установки
|
Сообщ.
#6
,
|
|
|
Посмотрел вчера одним глазом
![]() порадовали расширенные возможности VCL Нда, действительно, класс експлорера не обнаружил, странно... |
Сообщ.
#7
,
|
|
|
заметил одну неприятную деталь - если при установке выбрать С# то среда потом валится с эксцепшеном. может это у меня дистрибутив кривой, а может из-за того что на вирткалке крутится. но факт.
|
Сообщ.
#8
,
|
|
|
kwwsoft
а ты какую версию тестил. Вроде бы еще не продают builder |
Сообщ.
#9
,
|
|
|
Цитата Большой @ Вроде бы еще не продают builder Оффициальная дата выпуска Delphi 2009 и C++ Builder 2009 - понедельник, 25 августа 2008 года. В продажу оба продукта поступят по следующим ценам: Professional 399$, Enterprise 1299$, Architect 2299$. у меня RAD Studio 2009 Architect версия 12.0.3163.16897. |
Сообщ.
#10
,
|
|
|
kwwsoft
А ты ее купил ? если нет то получи ошибки. |
Сообщ.
#11
,
|
|
|
kwwsoft
Цитата kwwsoft @ всего 400 баков вроде в 2007 она стоила 900 Professional 399$ |
Сообщ.
#12
,
|
|
|
![]() |
Сообщ.
#13
,
|
|
|
Сообщ.
#14
,
|
|
|
Цитата Dem_max @ А ты ее купил ? если нет то получи ошибки А триал уже религией запрещен что ли? При чем тут куплено/не куплено? |
Сообщ.
#15
,
|
|
|
Что, тема не интересна никому?
|
Сообщ.
#16
,
|
|
|
kwwsoft
Так как теперь строки в AnsiString выводить в том же MessageBox? С простыми разобрался, в хелпе есть Application->MessageBox(L"This should be on top.", L"Look", MB_OKCANCEL); А вот как мне AnsiString туда засунуть без сторонних переменных? |
![]() |
Сообщ.
#17
,
|
|
![]() ![]() Application->MessageBox(UnicodeString(s).w_str(), L"Title", MB_OKCANCEL); |
Сообщ.
#18
,
|
|
|
volvo877
Вполне. Тенкс. |
Сообщ.
#19
,
|
|
|
Есть ли возможность параллельного программирования, например для реализации программы на 4-х ядерном процессоре ?
|
Сообщ.
#20
,
|
|
|
Как думаете, стоит ли C++ Builder 6 менять на C++ Builder 2009?
Как там обстоят дела с размерами готовых программ (пустая VCL форма, скоко будет весить приложение) по сравнению с 6 билдером? Спасибо. |
Сообщ.
#21
,
|
|
|
а C++ Builder 2009 в когда выйдет?
|
Сообщ.
#22
,
|
|
|
Уже в продаже
|
Сообщ.
#23
,
|
|
|
Всё хорошо на удивление, пользуюсь, полка птьфу птьфу....
NickiRawer, конечно, не пожалеешь |
Сообщ.
#24
,
|
|
|
упаковка экзешников с любого билдера лучше всего производится ASPack'ом можно сжать болие чем на 30%
|
Сообщ.
#25
,
|
|
|
По мне - лучше чем 2007 и тем более 2006 - за счет более устойчивой работы самой среды.
Не радует до сих пор хелп. Зато радует присутствие boost. |
Сообщ.
#26
,
|
|
|
EvGeniy LellСовет в личке
|
Сообщ.
#28
,
|
|
|
![]() Adilизвени))) ..."сенсоред" мне в аську слать ненадо!!!!! ![]() все спасибо дали торент прийду с работы поставлю на заливку войду в число тестеров ))) пока сижу на 2006 |
Сообщ.
#29
,
|
|
|
volvo877
Прошу еще помощи по переходу (блин, думаю теперь, а стоило ли?) на 2009-ку. Есть шифрованная строка в базе данных. Строка изначально содержит как русские, так и английские символы. Засовываю в переменную типа AnsiString значение поля. Расшифровываю. Английские видно, вместо русских белиберда. Подозреваю что в Юникоде. Но я же AnsiString использую. В чем трабла? Если просто нешифрованное поле считываю с русскими буквами - то все ОК. P.S. В общем проблема как оказалось в Indy'вских TIdEncoderMIME, TIdDecoderMIME. Обрабатывая энкодером русский текст и потом обратно декодером получается белиберда. Видимо надо после обработки декодером преобразовывать из юникода обратно в Ansi. Как? |
![]() |
Сообщ.
#30
,
|
|
Цитата Adalon @ В общем проблема как оказалось в Indy'вских TIdEncoderMIME, TIdDecoderMIME. Обрабатывая энкодером русский текст и потом обратно декодером получается белиберда. http://www.delphimaster.ru/cgi-bin/forum.pl?id=1222762776&n=0 См. последнее сообщение... |
Сообщ.
#31
,
|
|
|
volvo877
Спасибо еще раз за помощь. Действительно как я придполагал дело было в Инди. Переделал функцию расшифровки на работу с Bytes - все заработало. ![]() Как я понимаю если мне до лампочки в данном месте этот Юникод я должен использовать TEncoding::Default ? Просто как эти подводные камни обойти в связи с заменой String'ов на юникод? Я сам лично в своем коде использовал всегда AnsiString. Поэтому мне беспокоиться на счет себя не надо. А вот как оказалось другие компоненты могут перейти (или остаться) на String. Как совместимость сохранить, какие подводные камни могут быть! P.S. На том форуме было вот это: А вот зато стандартный дельфовый EncdDecd поправили. С ним нет проблем. Это про что? Мне от этого Индивовского компонента нужно просто получить текстовую последовательность A..Z, a..z ну и символы типа = и т.п. Т.е. чтобы превратить шифрованный текст, обработанный xor'ом в человеческий так сказать. |
![]() |
Сообщ.
#32
,
|
|
Цитата Adalon @ Это про то, чтоЭто про что? ![]() ![]() #include <EncdDecd.hpp> ... AnsiString s = "this is a тест"; AnsiString s_encoded = EncodeString(s); AnsiString s_decoded = DecodeString(s_encoded); // <--- Получаешь строку "this is a тест", а не кракозябры |
Сообщ.
#33
,
|
|
|
Кстати заметил такую тему что компилер материтьсо на то, что не используются параметры событий. к примеру тот же Sender
|
Сообщ.
#34
,
|
|
|
Цитата mrbrooks @ Кстати заметил такую тему что компилер материтьсо на то, что не используются параметры событий. к примеру тот же Sender А и правильно. А чтоб не было этого варнинга, всего-то пишешь : ![]() ![]() void __fastcall TForm1 :: SomeEventHandler (TObject *) /* а имя не указуешь, если оно не используется в функции */ { // ... } А как, в новом билдере кодогенерация такая же пещерная осталась, или поддержку более-менее новых процов ввели ? |
Сообщ.
#35
,
|
|
|
antigen сенкс.
но как то это не по людски ![]() |
![]() |
Сообщ.
#36
,
|
|
Цитата mrbrooks @ но как то это не по людски Что именно? То, что раньше, чтобы это увидеть, тебе надо было сделать Show All Warnings, а теперь - не надо ничего делать? Не нравится - отключи: Project->Options->C++ Compiler->Warnings->Enable Selected Warnings |
Сообщ.
#37
,
|
|
|
Цитата mrbrooks @ но как то это не по людски Это в полном соответвии с правилами языка. А на варнинги, если хочешь, чтобы прога была стабильной и неглючной, следует всегда обращать внимание. |
Сообщ.
#38
,
|
|
|
Цитата volvo877 @ точняг. что-то я лоханулся.Не нравится - отключи Цитата antigen @ Бесспорный факт камрад. Это в полном соответвии с правилами языка. |
Сообщ.
#39
,
|
|
|
/оффтоп
Цитата kwwsoft @ Оффициальная дата выпуска Delphi 2009 и C++ Builder 2009 - понедельник, 25 августа 2008 года. напоминило случай в жизни, когда я с другом смотрел книги, было это ашь в 2007 году (начало лета), так вот на книге было написано дата издания : 2008 год. |
Сообщ.
#40
,
|
|
|
заметил 2 неприятные вещи (по сравнению с БСБ6):
1. если вызывать контекстную помощь (F1 по слову в коде), очень часто среда уходит в глухой вис - тока диспечер виндовый ее убить может.... ![]() 2. делал код с подменой оконной процедуры формы в котором была ошка. запустил под отладчиком. повисло все - тока ресет спас. раньше отладчик по любому вытягивал любые баги - до ресета дело не доходило. ![]() и еще - в БСБ6 был в менюшке хоть простенькой - но графредактор. тут нет. ![]() |
Сообщ.
#41
,
|
|
|
1. Посмотрел ролик написания DataSnap на дельфи. Всё просто. Там под это дело сделан Server Data Modul. Ни какого COM. В билдере этого модуля нет. Видимо опять только Remote Data Module и COM.
2. Поставил DevExpress, всё нормуль вроде. Кинул кнопку на форму и кликнул 2 раза. Получил вот что... Некорректное объявление метода. void __fastcall TForm1::cxButton1Click(Sender *) При генерации через инспектор всё ок. |
Сообщ.
#42
,
|
|
|
Что-то не пашет под 2009 как надо Socket->ReceiveText() у TClientSocket и TServerSocket.
Получается хрень какая-то. Причем отсылается то, что надо, т.к. старый сервак, компиленный еще под 2007 принимает от клиента, переписываемого под 2009 нормально. А вот тот принимает обратно хрень. Перекомпилил сервер и тот пересал принимать нормально. Вроде там везде AnsiString в методах. Не пойму в чем дело. К примеру, вместо команды ###Ping### приходит ??????. |
Сообщ.
#43
,
|
|
|
в 2009-м по умолчанию если явно не указать другое то везде используется юникод. может в этом беда...
я вот юзаю UDP клиента и сервера - так вроди норомально все |
Сообщ.
#44
,
|
|
|
kwwsoft
В хелпе описание класса там AnsiString для билдера. Ну а как тогда правильно юзать? |
Сообщ.
#45
,
|
|
|
Короче дело явно в юникоде.
SendText отсылает в Ansi, а вот ReceiveText возвращает в юникоде. Стоит послать 1 символ <127 он доходит, стоит 2 - превращается в 1 китайский, оно и понятно. DecodeString не помогает. Тут, думаю, дело в том же, что и в Indy - разрабы перелезли на юникод, а компоненты нормально адаптировать забыли - вот камни и вылезают. Но может я и ошибаюсь - кто подскажет, как нормальный текст из ReceiveText получить? Пока юзаю ReceiveBuf. Вроде пашет. Хелп просто убивает. Pascal function ReceiveBuf(var Buf; Count: Integer): Integer; C++ __fastcall int ReceiveBuf( Buf, int Count); Description This is ReceiveBuf, a member of class TCustomWinSocket. Все. ![]() Я по смыслу могу понять что это. Могу догадаться что возвращает функция. Но какое же это тупое описание метода, вы не находите? |
Сообщ.
#46
,
|
|
|
а скачать нельзя нигде?
только покупать надо? |
Сообщ.
#47
,
|
|
|
1. с оффсайта триал.
2. в этой теме я давал ссылки откуда еще можно качнуть. |
Сообщ.
#48
,
|
|
|
Hi All!
А как в BCB2009 с такими вещами как: 1) 64 битный код? 2) Поддержка многоязыкового интерфейса, которая была в BCB6 и которая есть в DELPHI 2006-2008? |
Сообщ.
#49
,
|
|
|
1)не знаю - у меня ось и среда 32-х разрядная.
2)есть. |
Сообщ.
#50
,
|
|
|
да, оказалось верно то что говорил
Adalon - недомудрили немного с юникодом при работе по сетке. если латынь по приему идет нормально - то вот вместо кирилицы полная билиберда. Вот на что нарвался (в результате тестов): использую очень простую связку юдп клиента и сервера. с клиента шлю постенькую строку ![]() ![]() String str = "sSыЫ"; Label1->Caption = str; Label1->Update(); udpcl1->Send(str); смотрю это дело под отладчиком (CPU) - текст делается юникодный и потом шлется. мой текст преобразуется в слова 0х0073,0х0053,0х044в,0х042в что и есть в юникоде моя строка. на приемнике - юдп-сервере тож сделал простенько: ![]() ![]() void __fastcall TForm1::udpsr1UDPRead(TIdUDPListenerThread *AThread, TBytes AData, TIdSocketHandle *ABinding){ int i; String str = ""; for (i = 0; i < AData.Length; i++) { str += (char)AData[i]; } Label2->Caption = str; Label2->Update(); } а вот тут если посмотреть "сырой" массив AData - видно 0х73,0х53,0x3f,0x3f. ![]() как то у меня закралось подозрение что инди юдп сервер - компонент с глюком .. ![]() Есть мысли по этому поводу? |
Сообщ.
#51
,
|
|
|
kwwsoft
В случае с TServerSocket текст шлется не юникодный. А вот при получении у них не исправлено то, о чем пишу они же в блогах. При работе с текстовым буферов не учитывается, что SizeOf(Char) уже не 1. Я исправил ситуацию так: юзаю ReceiveBuffer. |
Сообщ.
#52
,
|
|
|
Цитата Adalon @ Я исправил ситуацию так: юзаю ReceiveBuffer. у меня этот буфер постоянно был пустой и такой вриант не прокатил. сделал по другому - сервер как и был с вкладки инди (TIdUDPServer для приема), а вот как клиента применил TUDPSoket с вкладки Internet (для отсылки). все ожило и нормально стыкуется. |
Сообщ.
#53
,
|
|
|
Цитата Fedel @ Hi All! А как в BCB2009 с такими вещами как: 1) 64 битный код? 2) Поддержка многоязыкового интерфейса, которая была в BCB6 и которая есть в DELPHI 2006-2008? 1) Должно появиться в версии 2010. По карйней мере тако они на конференции сказали. 2) Есть |
Сообщ.
#54
,
|
|
|
меня порадовала помощь, теперь её можно пользоваться.
компилятор работает шустрее и код тоже. дебугер пожалуй по глючнее будет 2006. надо ставить 2 апдейта |
Сообщ.
#55
,
|
|
|
а я вот заменил компилятор 6 версии компилятором 2009-й, и стало мне счастье
![]() ![]() |
Сообщ.
#56
,
|
|
|
![]() только в упаковке? али еще что? |
Сообщ.
#57
,
|
|
|
али еще чего-то не заметил, да и исследованиями не занимался, работает - и то хорошо
![]() ![]() |
![]() |
Сообщ.
#58
,
|
|
C++ Builder 2010 выйдет 25 августа
http://habrahabr.ru/blogs/delphi/66711/ |
Сообщ.
#59
,
|
|
|
Наконец то в билдер возвратят инспектор классов, и панель компонентов вверху тоже радует, хоть и мелочь
![]() |
Сообщ.
#60
,
|
|
|
Ну почему же? Мне интересна
![]() ![]() |
Сообщ.
#61
,
|
|
|
Что касается Builder 2010, не нравиться то, что новый сервер DataSnap (без поддрежки COM), можно создать только в Delphi, а клиенты можно создавать уже в С++ Builder. Builder как бедный родственник...
|
Сообщ.
#62
,
|
|
|
блин только что перешел на 2009 билдер =\
есть ли смысл ставить 2010 ? |
Сообщ.
#63
,
|
|
|
Цитата agentex @ есть ли смысл ставить 2010 учитытывая: 1. огромное количество граблей в 2009-м 2. наличие ClassExplorer в 2010-м наверное - ДА. |
Сообщ.
#64
,
|
|
|
Цитата Kitty @ Builder как бедный родственник... Да он всегда был таким. и не только в этом случае Добавлено Написали, что они буст обновили до версии 1.39. Наверное опять урезанный. |
Сообщ.
#65
,
|
|
|
наверно глупый вопрос, но почему прога, скомпиленная на 09 работает в 10 раз медленнее (а точнее намертво подвисает на циклах) чем таже прога, скомпиленная в шестом? нет догадок с чем это связано?
|
Сообщ.
#66
,
|
|
|
Цитата agentex @ нет догадок с чем это связано? нет и не будет пока не будет приведен код. |
![]() |
Сообщ.
#67
,
|
|
У дебаггера RAD Studio (2007, 2009 и, наверно, 2010) есть проблема на Windows 7 x64, отладчик вылетает при отладке многопоточных приложений с сообщением "Assertion failure "(!"SetThreadContext failed")" in ..\win32src\thread32.cpp at line 434"
Апдейтов, решающих эту проблему, еще нет. Но есть сторонний фикс: http://www.monien.net/blog/index.php/2009/07/delphi-2009-windows-7-64-bit-debugger-crash-workaround/ ![]() http://www.monien.biz/blog/wp-content/uploads/2009/07/Delphi_2007_2009_WOW64_Debugger_Fix.zip Сообщения были разделены в тему "Проблемы с ValueListEditor в C++ Builder 2009" |
Сообщ.
#68
,
|
|
|
сейчас стоит 2007. Станет ли на одной системе и 2009 и не возникнет ли траблов?
|
Сообщ.
#69
,
|
|
|
Цитата Schumi @ сейчас стоит 2007. Станет ли на одной системе и 2009 и не возникнет ли траблов? Раньше стояли вместе. Проблем не наблюдалось. Но лучше сразу ставить 2010 со всеми апдейтами. Список апдейтов для студий тут: http://cc.embarcadero.com/reg/rad_studio |
Сообщ.
#70
,
|
|
|
Kitty а почему стоит сразу перескакивать на 2010? Серьезные улучшения?
|
Сообщ.
#71
,
|
|
|
Цитата Schumi @ Kitty а почему стоит сразу перескакивать на 2010? Серьезные улучшения? Я в основном из-за обновления DataSnap, которую использую. :) |
Сообщ.
#72
,
|
|
|
ага, понятно.
Просто я сторонник поставить среду, когда уже к ней все апдейты/патчи стоят выпустили ![]() Но думаю переход 2009-2010 не такой болезненный, как 2007-2009 будет. Kitty то есть ты сперва поставил 2007 делфи + билдер, потом наверх 2009 и всё оки было? А то народ говорил, что инсталлер 2009 ругаться стал, что типа удалите сперва старую версию... |
Сообщ.
#73
,
|
|
|
Цитата Schumi @ когда уже к ней все апдейты/патчи стоят Для С++ IDE 2010 уже есть достаточно апдейтов. Цитата Schumi @ Kitty то есть ты сперва поставил 2007 делфи + билдер, потом наверх 2009 и всё оки было? У меня стояла IDE 2007 (Делфи+Билдер), я поставила потом IDE 2009. Проблем не было. Правда, были нюансы потом, например вот этот с Data Explorer http://support.codegear.com/article/38475 Все же IDE 2010 лучше. ![]() |
Сообщ.
#74
,
|
|
|
Раньше 6 использовал. Мне в школе от первой ПОмощи выдали 2009.
Это просто супер! Все работает быстрее. Можно изменять названия unito'в. И вообще намного лучше шестерки. |
Сообщ.
#75
,
|
|
|
А раньше названия юнитов нельзя было менять?
|
Сообщ.
#76
,
|
|
|
Только при сохранении.
|
Сообщ.
#77
,
|
|
|
Подскажите, пожалуйста, в какая версия C++ Builder работает с сервером Word 2007?
|
Сообщ.
#78
,
|
|
|
Любая.
|
Сообщ.
#79
,
|
|
|
Как любая, а например C++ Builder 6, он же работает только с Word 2k...
Просто у меня проблема не для этой темы форума, помогите пожалуйста: sources.ru |
Сообщ.
#80
,
|
|
|
Цитата sanchos91 @ Так любая. OLE-серверу без разницы, откуда его грузят.Как любая Цитата sanchos91 @ В нем есть компонент, предназначенный для работы с "Word.Application.9". Также есть компоненты для "Word.Application.8"(MS Word97) и "Word.Application.10"(MS Word XP) а например C++ Builder 6, он же работает только с Word 2k... |