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

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

Модерирует : 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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322

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

V1s1ter



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
         
Обсуждаем новые возможности и баги
 
Просьба писать про Embarcadero RAD Studio XE5, XE6, XE7, XE8, 10.x (Seattle, Berlin,Tokyo)
  По вопросам скачивания - Тема в Варезнике (lite-версии тут)
  Вопросы по неюникодным версиям Delphi — шестая бумага
  Бесплатные Компоненты и утилиты для Delphi/BCB/FreePascal/Lazarus
  Коммерческие компоненты и утилиты для Delphi/BCB
  Вопросы по компонентам для Delphi, C++ Builder разных версий
  Новые языковые возможности, начиная с Delphi 2005 по XE4 — здесь, и New!здесь еще
  Англоязычный официальный форум Embarcadero — здесь
  Embarcadero Quality Central, веб интерфейс — здесь, новый Quality Portal тут
  Программирование на Delphi — викиверситет
  Другие ресурсы
   Предыдущие бумаги
 
     Вопросы ..XE4       Вопросы ..XE3    Вопросы ..XE2      
  Вопросы ..2009-XE    Вопросы ..<2009 / ч.5    Вопросы ..<2009 / ч.4      
  Вопросы ..<2009 / ч.3    Вопросы ..Delphi 2 / ч.2    Вопросы ..Delphi  

  Выключение встроенного эксперта Castalia  для XE8 (иногда помогает при вылетах и тормозах)  
  Полезные плагины(эксперты)

Всего записей: 948 | Зарегистр. 06-02-2007 | Отправлено: 15:25 11-09-2013 | Исправлено: Komandor, 18:58 18-03-2022
De Niro

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Даже не заметил, с какой версии изменили (сломали) логику работы ShowMessage()
 
Раньше (проверял в XE2) строку в окне сообщения можно было перенести вручную используя #13#10, или если строчка слишком длинная она автоматически переносилась при наличии в ней пробелов. Если же строка без пробелов, то окно сообщения масштабировалось в ширину, под длинну этой строки.
вот так выглядит в XE2:
   
 
Теперь же (проверял в XE7 и XE8), окно сообщения фиксированное по ширине. и если в строке нет #13#10 или пробелов, то строка просто обрезается.
вот так выглядит в XE8:
 

Всего записей: 94 | Зарегистр. 25-11-2005 | Отправлено: 23:08 27-06-2015
Sulphide

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

Цитата:
Насколько понял, под мобильными платформами у дельфи проблемы есть.  
А как обстоят дела с OS X? Насколько всё стабильно?  
Необходимо написать прогу, которыя в основном с файлами будет работать и показывать результат.

Писал для OSX всеперевариваемый видеоплеер и гляделку картинок (специализированный для планетария) под OpenGL. Работает стабильно, если не учитывать некоторые нюансы, касаемые не то чтобы нелюбви, а полной ненависти FMX к OpenGL, хотя под всеми платформами, кроме винды использует для себя как раз OpenGL. Поэтому программка, которая будет работать с файлами и показывать результат, думаю заработает без проблем. Хотя в том же плеере столкнулся с проблемами при проверке файла на существование (FileExists) под OSX через раз выдавало ошибку, хотя под виндой работало без проблем. Но опять же это было в XE7 вроде даже без апдейта. Заказчик решил переехать на винду, а я соответственно на VCL и переписал плеер. Больше проблем не знаю

Всего записей: 277 | Зарегистр. 20-03-2008 | Отправлено: 23:26 27-06-2015 | Исправлено: Sulphide, 23:28 27-06-2015
kaz_av

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

Цитата:
изменили (сломали) логику работы ShowMessage()  


Цитата:
проверял в XE7 и XE8

Скорее, привели к системному поведение диалоговых окон. Проверил XE7 на XP - длинная строка отображается, как и прежде.

Всего записей: 437 | Зарегистр. 15-02-2006 | Отправлено: 12:43 28-06-2015
De Niro

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kaz_av
 
Действительно на XP длинная строка отображается. Проверил XE8 на XP.
в том же приложении на Win 7 x64 окно диалога фиксировано по ширине.
Неудобно это. Обычно если я что то вывожу в сообщение, то хочу это видеть целиком, а не обрезанный кусок.

Всего записей: 94 | Зарегистр. 25-11-2005 | Отправлено: 13:49 28-06-2015 | Исправлено: De Niro, 13:58 28-06-2015
kaz_av

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

Цитата:
Неудобно это. Обычно если я что то вывожу в сообщение, то хочу это видеть целиком, а не обрезанный кусок.

Это не к дельфям претензии. Такое поведение определяется системой.

Всего записей: 437 | Зарегистр. 15-02-2006 | Отправлено: 15:06 28-06-2015
Eternal_Shield

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

Цитата:
Обычно если я что то вывожу в сообщение, то хочу это видеть целиком, а не обрезанный кусок.

Обычно не выводят текст без разделителей (пробел и тд), поэтому ваше негодование, как минимум, не ясно.

Всего записей: 766 | Зарегистр. 18-05-2009 | Отправлено: 21:49 28-06-2015
De Niro

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Eternal_Shield
Я обычно не вывожу текст без разделителей (пробел и тд), поэтому только сейчас заметил изменение в поведении этого диалога. Иногда удобно ShowMessage'ем побыстрому проверить написанный алгоритм, вывести туда пару контрольных переменных. А тут вывел длинную строку, и удивился что оно теперь подругому работает.
Конечно это не проблема, всегда можно под отладчиком глянуть что да как.

Всего записей: 94 | Зарегистр. 25-11-2005 | Отправлено: 00:00 29-06-2015
doxtur

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
De Niro
 
заведите себе простейший лог в файл, оно и удобнее - копи-паст из него, не то что ShowMessage, CodeSite еще есть
 
более того, под iOS только так приходится отлаживать мне
 
  System.SysUtils.DeleteFile(local_path + 'program.log'); // очищаем лог при запуске, чтобы не рос
 
я лог вообще пишу в 3 места (понятно что через TextFile работать некрасиво, но все же):
 
procedure Log(S:String);
var
  LogFile : TextFile;
begin
  S := TimeToStr(Now) + ': ' + S;
  frmSettings.MemoLog.Lines.Add(S);
  AssignFile(logFile, local_path + 'program.log');
  if FileExists(local_path + 'program.log') then
    Append(logFile)
  else
  Rewrite(logFile);
  WriteLn(LogFile, S);
  CloseFile(logFile);
  {$IFDEF MSWINDOWS}
  CodeSite.Send(S);
  {$ENDIF}
end;
 

Всего записей: 88 | Зарегистр. 21-12-2005 | Отправлено: 02:32 29-06-2015 | Исправлено: doxtur, 02:33 29-06-2015
De Niro

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
doxtur
Спасибо. Так и сделаю.

Всего записей: 94 | Зарегистр. 25-11-2005 | Отправлено: 03:14 29-06-2015
SolidSnakeRU

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
doxtur
А если 2 потока захотят одновременно в файл записать?
Я делал специальный класс для хранения записей лога, правда это было в виндовом приложении.
Запись лога происходит через метод, внутри которого реализована блокировка через TMultiReadExclusiveWriteSynchronizer.
Запись в файл - нечто иное как блокировка объекта и обход коллекции и формирование лога нужного формата. Можно еще запоминать сколько записей скинули в файл чтобы только добавлять новые в конец. А писать файл удобно через класс TStringStream (если не ошибаюсь с названием).

Всего записей: 248 | Зарегистр. 27-08-2008 | Отправлено: 23:04 30-06-2015 | Исправлено: SolidSnakeRU, 23:06 30-06-2015
dred2k



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

Цитата:
TMultiReadExclusiveWriteSynchronizer

А зачем это применять, если в лог только пишут ?
Критической секции - за глаза... Причем, возможно, будет даже быстрее.

Всего записей: 403 | Зарегистр. 15-02-2006 | Отправлено: 00:33 01-07-2015
AlekXL



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
к вопросу о XE8 UP1:  
что там реально пофиксили из регрессий XE8, и какие серьезные проблемы остались?
Я , конечно, не о глюкодроме FMX, а о классике..

Всего записей: 792 | Зарегистр. 24-04-2008 | Отправлено: 07:20 01-07-2015 | Исправлено: AlekXL, 07:21 01-07-2015
NeoAnomaly

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Update 1 Fix List for RAD Studio XE8, Delphi XE8, and C++ Builder XE8
 
Тут заявлен некий Community toolbar, это что такое?

Всего записей: 418 | Зарегистр. 23-03-2010 | Отправлено: 07:55 01-07-2015
reenoip



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

Цитата:
Update 1 Fix List for RAD Studio XE8, Delphi XE8, and C++ Builder XE8
 
Тут заявлен некий Community toolbar, это что такое?

Видимо, это:  
 
 

Всего записей: 1768 | Зарегистр. 10-03-2006 | Отправлено: 09:42 01-07-2015
NeoAnomaly

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
reenoip, а что делают эти кнопки? Хотелось бы понять назначение этого тулбара(сам XE 8 не ставил).

Всего записей: 418 | Зарегистр. 23-03-2010 | Отправлено: 13:36 01-07-2015
Sulphide

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xe8up1 - пустая форма с панелью на всю форму (alClient) - при уводе окна за край экрана и возвращении на экран, не прилетает событие OnPaint - это нормальное поведение или баг? просто такая же форма с кучей контролов получает это событие без проблем.

Всего записей: 277 | Зарегистр. 20-03-2008 | Отправлено: 15:30 01-07-2015
reenoip



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

Цитата:
reenoip, а что делают эти кнопки? Хотелось бы понять назначение этого тулбара(сам XE 8 не ставил).  

Без понятия, у меня машина с IDE без доступа к сети. Но, судя по названию панели и иконкам, авторы IDE наконец-то поняли, что что-то идёт не так, и озаботились инструментами для оперативного фидбека. Т.е. чтобы программисты могли жаловаться и предлагать идеи в прямом эфире - это я так понимаю. Пусть меня поправят те, кто этой фичей реально пользуется.

Всего записей: 1768 | Зарегистр. 10-03-2006 | Отправлено: 18:14 01-07-2015
kaz_av

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

Цитата:
а что делают эти кнопки? Хотелось бы понять назначение этого тулбара(сам XE 8 не ставил).
 

Интеграция с community.embarcadero.com. Читать тут: http://docwiki.embarcadero.com/RADStudio/XE8/en/Embarcadero_Community_Toolbar

Всего записей: 437 | Зарегистр. 15-02-2006 | Отправлено: 18:42 01-07-2015
SolidSnakeRU

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

Цитата:
А зачем это применять, если в лог только пишут ?

Потому что не только пишут)
У меня был вывод лога в интерфейс при необходимости, кроме того, чтобы при сохранении в файл не было проблем, в условиях работы с несколькими потоками, тоже нужна блокировка.
Быстродействие - там были какие-то заморочки с этим классом, вроде в новых XE исправлено.
У меня не было проблем с тормозами, не замерял разницу.

Всего записей: 248 | Зарегистр. 27-08-2008 | Отправлено: 20:18 01-07-2015
dred2k



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

Цитата:
Потому что не только пишут)  
У меня был вывод лога в интерфейс при необходимости, кроме того, чтобы при сохранении в файл не было проблем, в условиях работы с несколькими потоками, тоже нужна блокировка.

Ну, это обычная схема. Причем, файл и интерфейс - два разных ресурса, в которые производится запись. Где тут чтение ?  
У меня так: вызов LogWrite помещает новую запись в потокобезопасную очередь ("обложенную" критической секцией), выставляет эвент "есть запись" и радостно и быстро забывает об этом, не неся, заметь, никаких накладных расходов по времени выполнения (запись в файл, базу и прочее). Диспетчерская нитка лога просыпается по событию "есть запись" и начинает выбирать всю доступную очередь новых сообщений лога, распихивая их по всем зарегистрированным "лог-девайсам" - файлы, базы, интерфейсы... Потом опять засыпает до события о записи (или об остановке).

Цитата:
Быстродействие - там были какие-то заморочки с этим классом, вроде в новых XE исправлено.  
У меня не было проблем с тормозами, не замерял разницу.

В большинстве случаев выигрыш от использования более быстрого синхро-объекта будет незаметен. Однако, применять специализированный суррогатный синхро-механизм вместо нативного объекта, да еще там, где это архитектурно не оправдано - "не есть гут", я считаю.  
 
 
Добавлено:
Если хочется гарантированной записи в некий лог-ресурс, то у меня это указывается при создании этого ресурса (при старте лог-системы). Тогда LogWrite делает так: если есть такие ресурсы, то производим в них запись синхронно, "под сенью критической секции" опять же (LogWrite работает всегда "под критической секцией" - даже при помещении в очередь, для корректного выставления времени и айди сообщения), а для остальных - через очередь и нитку. Так что все, "что смогло" - в файл, к примеру, поступит, а в интерфейс уже, как бы, может и не дойти (последующий сбой приложения и все такое).
Но, как показала практика, это излишне. Очередь работает прекрасно, и этого достаточно.

Всего записей: 403 | Зарегистр. 15-02-2006 | Отправлено: 07:06 02-07-2015
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322

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


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru