Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Embarcadero RAD Studio XE2 (Pulsar)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

Открыть новую тему     Написать ответ в эту тему

data man



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обсуждаем новые возможности и баги
Просьба писать только про Embarcadero RAD Studio XE2 (Pulsar) - по остальным версиям есть соответствующие темы.

Вопросы вареза здесь не обсуждаются !!!
См. также:


Из слишком часто повторяемых вопросов:
  1. Почему EXE такие большие - перевод статьи от Andy тут, оригинал на страницу назад.
  2. Что случилось c авто-увеличением Build Number - Объяснение на англ.. Можно отключить встроенную функцию и добавить плагин, в котором есть "старый" авто-инкремент. Например DDevExtensions от Andy. У него так же есть хороший плагин IDE FixPack

Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 23:54 27-07-2011 | Исправлено: Arioch1, 16:08 25-04-2013
Bill_PHO

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не пробовал ли кто в ХЕ2 сделать проект на FireMonkey для MAC OSX (х86) с коннектом к MSSQL Server?
У меня такой проект компилируется с ошибкой: F1026 File not found 'Data.DBXMSSQL.dcu'.
И правда. Поиском на компе обнаруживаются такие dcu, но только для платформ Win x86, x64.
Подключения к ORACLE, Interbase, MySQL компилируются без ошибок.
Ошибка  компиляции возникает как при использовании XE2_Update1 так и XE2_Update2.

Всего записей: 287 | Зарегистр. 15-08-2003 | Отправлено: 18:12 07-11-2011
Eternal_Shield

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Arioch1

Цитата:
Вы очень разнообразно избегаете ответа на простой вопрос: где же именно в for-var-in-range должен использоваться ваш совет "Сколько раз советовали использовать CharInSet(var, set) для юникодных проверок?" ?

... значит смотрим что есть enumerator'ы через который работает for-in ... - это во-первых;
 
во-вторых, чего к CharInSet прицепились? Я, вроде, сказал очевидную вещь: для проверок Ansi/WideChar на множестве рекомендуется использовать CharInSet; Всё! Я нигде ни слова не сказал, что эта функа используется в for-in ... не морочьте мне мозг;
 
Повторюсь опять: При использовании WideChar в множествах компилятор урезает его до 1 байта. Не может элемент множества быть больше 1 байта; Само множество может быть больше 1 байта;
 
Поэтому всяческие проверки вида C[: WideChar] in [..] вообще не будут работать;
 
Как вариант написать свой for-in для перечисления WideChar'ов #:
 
 
Этот код будет работать начиная с делфи 2009 и выше;

Всего записей: 766 | Зарегистр. 18-05-2009 | Отправлено: 12:30 08-11-2011 | Исправлено: Eternal_Shield, 12:58 08-11-2011
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
> Я, вроде, сказал очевидную вещь:
Ну все как-то думали вы её к теме разговора сказали. Понимаете? Когда человек влезает в разговор и что-то говорит, обычно люди думают, что он по теме сказать пытается, а не от фонаря.
А оказывается, вы влезли в чужой разговор, сказали ни с чем не связанную прописную истину и с умным видом отчалили. Могли бы ещё посокрушаться, что на ноль делить не советуете, тоже сказали бы очевидную вещь. Настолько же полезную.
 
 
> При использовании WideChar в множествах компилятор урезает его до 1 байта
А мы и это уже и до вас поняли. Правда почему-то ворнингов не выдает, скотина.
 
 
> Поэтому всяческие проверки вида C[: WideChar] in [..] вообще не будут работать;
А ещё на ноль делить не нужно. И числовым переменным не нужно присваивать строчки. И много много очевидных вещей. НИКАК к теме разговора не относящихся. Или вы всё-таки покажете в обсуждавшемся коде ХОТЯ БЫ ОДНУ такую проверку ?

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 12:39 08-11-2011
psa1974



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mcka
Arioch1

Цитата:
var c : char; // или widechar  
 begin  
 for c in ['А'..'Я'] do showmessage(c); - НЕ работает в unicode!  
 end;

Все просто: структура типа "множество" испокон веков может содержать только 256 однобайтных элементов и индексация может осуществляться от 0 до 255. С другой стороны объявление var c : char; говорит нам о том что переменная объявлена как двубайтовая и имеет максимальный размер 65536. А теперь самое интересное: вот здесь for c in ['А'..'Я'] происходит попытка  проверить, не входит ли двубайтовая переменная в множество однобайтовых элементов, максимальный индекс которых равен 255. Если входит - то выполняется тело цикла. Вот тут и происходит выход за пределы диапазона. И контроль пределов диапазона и собственно саму проверку выполняет сам компилятор, за что ему отдельное спасибо.
 
Тут:
Цитата:
var c : ['А'..'Я'];  
  begin  
    for c in ['А'..'Я'] do showmessage(c); - работает!  
  end;

все работает, потому что с объявлена как массив однобайтных символов, и при проверке не входит ли однобайтных символ в множество однобайтных символов никакого выхода за пределы диапазона не происходит.
Все просто как 5 копеек. Как еще более подробно разжевать - я не знаю.
ЗЫ: Вот эти "особоглубокие" выкладки и пытался объяснить здесь Eternal_Shield
.  


----------
У программёра есть два состояния: "Втупляю" и "Попёрло"...

Всего записей: 438 | Зарегистр. 08-11-2005 | Отправлено: 19:46 08-11-2011
ChSerg



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Какая то чехарда получается с установкой полей version info проекта для разных платформ на XE2 update 2.
Когда поля пустые показывает нормальную табличку. При заполнении первых двух полей (допустим) и переключении конфигурации в комбо-боксе остается одно поле с длинной строкой, содержащей все поля verion info. Если дальше переключаться между кофигурациями, то может оставаться одно поле, или несколько.
К тому же общая установка полей для платформы совершенно не означает, что они поля установились для release и debug этой платформы.
Как правильно это всё работает, может кто-нить сказать?

Всего записей: 936 | Зарегистр. 30-08-2001 | Отправлено: 23:02 08-11-2011
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
> вот здесь for c in ['А'..'Я'] происходит попытка  проверить, не входит ли двубайтовая переменная в множество однобайтовых элементов
 
чё, правда ??? попытка проверить, для каждого значения c ?
Вот то есть так с и пробегает 65536 разных значений и каждое из них проверяется ?
 
> как двубайтовая и имеет максимальный размер 65536
Кстати, это уже трёхбайтовая будет. Типичная программиcтская ошибка "промахнулся на один и не заметил, как попортил память" ;-P
 
Я от ужаса даже CPU Window открыл. Фффух... нет там никаких проверок. Сколько в множестве есть элементов - столько переменная и пробегает, ни больше, ни меньше. Никаких холостых пробегов, когда у перемeнной значение есть, а "тело цикла не выполняется" и в помине нет.
 
А если бы с какого-то перепугу и были - не я же их делаю, а компилятор. К нему советы и обращайте.
Или вы мне советуете "in" внутри цикла на функцию заменить ?
И как же писать надо, for CharInSet(c, ['A'..'Я']) do ... - так что ли вы предлагаете проверять ?
 
> И контроль пределов диапазона
да ну ? и как же этот код тогда без единой ошибки или предупреждения печатает буквы ЗА ПРЕДЕЛАМИ ДИАПАЗОНА русского алфавита ? где же тут "контроль выполняет" ?
 
>  за что ему отдельное спасибо.
отдельное спасибо отдельно занесено в QC
 
>  что с объявлена как массив однобайтных символов
Ух ты! и сколько индексов у этого массива? Бррр... Такие же фантазии, как проверка вхождения в множество.
PS: вы хоть компилировать это пробовали, прежде чем о массивах рассуждать ?
 
Добавлено:

Цитата:
К тому же общая установка полей для платформы совершенно не означает, что они поля установились для release и debug этой платформы.

Это да.
"Общие" настройки не наследуются и в EXE не попадают
 
Но склеиваться вроде не склеиваются.
И в Хелпе написано что только номер версии ставится для всех платформ сразу.

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 23:22 08-11-2011 | Исправлено: Arioch1, 23:42 08-11-2011
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ChSerg
Еще на релизе без апдейтов пробовал с этим возится. В результате пришлось править dproj в блокноте. Но вышло вроде неплохо и строковые поля между конфигурациями нормально отнаследовались.

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 23:47 08-11-2011
Andrey128

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Установил XE2 на виртуалку и ужаснулся, размер Delphi+Demos+Help=~2.6G, размер того-же на XE=750M. Плюс к этому в %AppData% в папочках {...} еще 2.5G.
После установки XE2 попытался отключить, все что касается iOS, OS X и 64, но инсталлер говорит, что всего -44М.
Хотел XE2 на ноут поставить, а там с местом не очень.
 
Вот думаю, если поприбивать папки, с названиями osx32 и win64 в дальнейшем не будет проблем?

Всего записей: 408 | Зарегистр. 16-01-2003 | Отправлено: 14:22 09-11-2011 | Исправлено: Andrey128, 14:23 09-11-2011
RageSV

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bill_PHO

Цитата:
У меня такой проект компилируется с ошибкой: F1026 File not found 'Data.DBXMSSQL.dcu'.  
И правда. Поиском на компе обнаруживаются такие dcu, но только для платформ Win x86, x64.  
Подключения к ORACLE, Interbase, MySQL компилируются без ошибок.

А Вы видели где-нибудь возможность подключения к MSSQL на платформе, отличной от Windows и Microsoft Mobile?

Всего записей: 72 | Зарегистр. 20-01-2006 | Отправлено: 17:39 09-11-2011
LG Team



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
возможность подключения к MSSQL на платформе, отличной от Windows

 
hттp://www.razorsql.com/articles/sql_server_mac.html
hттp://www.sommarskog.se/mssqlperl/unix.html

Всего записей: 328 | Зарегистр. 04-12-2006 | Отправлено: 18:05 09-11-2011
Bill_PHO

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RageSV
 
До появления XE2 с ее FireMonkey и не пытался. А вот в FAQ от Embarcadero по теме написано, что применив dbExpress получить доступ можно, поэтому я и стал пробовать. Теперь же понятно, что соответствующих драйверов от Microsoft нет и вероятнее всего не будет.
От Embarcadero все же можно было ожидать (за деньги, которые они назначили за продукт), чтобы не было возможности выбирать неподдерживаемые свойства компонент для выбранной платформы.  
 
LG Team
 
Спасибо за ссылки по теме.

Всего записей: 287 | Зарегистр. 15-08-2003 | Отправлено: 18:25 09-11-2011 | Исправлено: Bill_PHO, 19:29 09-11-2011
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
если у кого есть старые программы, в которых используется ShowModal - имейте в виду.
 
http://www.bobswart.nl/Weblog/Blog.aspx?RootId=5:5029

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 23:33 09-11-2011
Ludens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не подскажете, с чего вдруг один из проектов, нормально компилировавшихся под XE, вдруг стал под XE2 спотыкаться на какой-то библиотеке, имеющей отношение к си (в си не разбираюсь совсем), по имени System.ZLib, которая тянет за собой файлы типа
  {$L deflate.obj}
  {$L inflate.obj}
  {$L infback.obj}
  {$L inffast.obj} и т. д.,
которых у меня вообще не оказалось на диске?
А иногда этот проект нормально компилируется и под XE2. Какая-то мистика, короче.
Устанавлено из XE2 только Delhpi, причем Lite.
 
Upd: блин, оказывается, даже новый свежесозданный пустой проект отказывается компилиться с теми же симптомами. Наверное, что-то в Options у меня стало неправильно.
 
Upd2: вот же чудеса: оказалось достаточным убрать нафиг файл System.ZLib.pas (я просто переименовал его), и все сразу стало нормально. Но мне все равно крайне интересно: ЧТО ЭТО БЫЛО?

Всего записей: 1512 | Зарегистр. 16-01-2006 | Отправлено: 02:06 10-11-2011 | Исправлено: Ludens, 10:37 10-11-2011
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ludens
Скорее всего это были приколы лайта.

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 11:58 10-11-2011
RageSV

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LG Team

Цитата:
hттp://www.razorsql.com/articles/sql_server_mac.html  
hттp://www.sommarskog.se/mssqlperl/unix.html

Восхитительно. Осталось все это прикрутить к delphi.
Специально не стал отсылать к разного рода opensource-проектом т.к. бессмысленно.
Единственный native jdbc-driver от ms, поддерживающий последние версии серверов, как ни странно, java-only.
DBX работает через nativ client.
Возможно, какое то решение появится от DevArt.
Во всех презентациях xe2 для osx еще до релиза говорили - используйте datasnap.

Всего записей: 72 | Зарегистр. 20-01-2006 | Отправлено: 12:27 10-11-2011
Lena44



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В RAD XE в меню студии был пункт AQtime. В RAD XE2 его нет. Так и должно быть?

Всего записей: 282 | Зарегистр. 27-02-2007 | Отправлено: 15:44 10-11-2011
wasilissk

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Lena44
Не работал ни с XE ни с XE2, но AQtime это сторонний очень мощный и дорогой продукт. Может конечно в XE в рекламных целях и добавляли его кастрированную версию, но что-то я в этом сильно сомневаюсь. Может вы просто поставили руборд-эдишн и забыли...

Всего записей: 293 | Зарегистр. 25-12-2006 | Отправлено: 16:25 10-11-2011
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добавляли, добавляли, не сомневайтесь.
 
Да и в XE2 вроде должно быть.
 
Страница 8 раздел Profiling
http://embarcadero.com/delphi-features-matrix
 
Добавлено:

Цитата:
Upd2: вот же чудеса: оказалось достаточным убрать нафиг файл System.ZLib.pas (я просто переименовал его), и все сразу стало нормально. Но мне все равно крайне интересно: ЧТО ЭТО БЫЛО?

 
Скорее всего умудрился ты отредактировать этот pas или ещё как-нибудь поменять ему дату.
Он стал новее, чем System.ZLib.dcu и его пытались перекомпилировать.

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 16:36 10-11-2011
Bill_PHO

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RageSV

Цитата:
Возможно, какое то решение появится от DevArt.

 
Нет, они не планируют.  
Их ответ:
"SDAC не будет поддерживать Mac OS X потому что OLEDB и SQL Native Client не поддерживают Mac "

Всего записей: 287 | Зарегистр. 15-08-2003 | Отправлено: 19:10 10-11-2011
RageSV

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bill_PHO
Да. Я уже читал их ответ на эту тему.
И, как я понял, с чем-то новым они заморачиваться не хотят.

Всего записей: 72 | Зарегистр. 20-01-2006 | Отправлено: 14:38 11-11-2011
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Embarcadero RAD Studio XE2 (Pulsar)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru