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

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

Модерирует : 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

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

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 (иногда помогает при вылетах и тормозах)  
  Полезные плагины(эксперты)

Всего записей: 899 | Зарегистр. 06-02-2007 | Отправлено: 15:25 11-09-2013 | Исправлено: AlekXL, 12:05 29-07-2017
MakePik

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

Цитата:
[/q]
[q]Вот тут гляньте, может найдете что хотите: https://www.youtube.com/watch?v=n7Jm5loU_QY

Большое спасибо Frodo_Torbins!!! Оказывается много чего напихали в RAD Studio и много полезного.

Всего записей: 9 | Зарегистр. 10-03-2011 | Отправлено: 07:49 25-02-2018
DmitryB2005

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Заметил на своей RAD Studio 10.2 Version 25.0.29039.2004 c установленным обновление 2018г.(распаковка архива с заменой) для себя странность. Очень часто при отладке простейшего окна с 1 кнопкой и диалогом показа выбора файла вся среда "виснет" и отменить отладку уже нельзя. Только убивать процесс студии и запускать по новой. Складывается ощущение, что отладчик не управляет полностью процессом выполнение приложения под его управлением. Можно что то "подкрутить" в настройках студии? У меня одного такие "странности"?

Всего записей: 70 | Зарегистр. 24-09-2005 | Отправлено: 18:19 26-02-2018
vez



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

Цитата:
У меня одного такие "странности"?  

 
Эта странность возникает иногда во все версиях (7-8-10.x).
Много с ними бодался, от версии к версии то хуже то лучше но до конца этот баг не выловили.

Всего записей: 414 | Зарегистр. 02-06-2003 | Отправлено: 18:42 26-02-2018
VadimLou



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

Цитата:
среда "виснет"
- попробуй в ярлыке запуска выставить запуск с админ. полномочиями.

Всего записей: 661 | Зарегистр. 22-07-2004 | Отправлено: 22:25 26-02-2018
nickneykov

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет,
Скажите, где можно прочитать о том как можно сделат службе Виндов с помощью JSON. /Delphi Embarcadero 10.2/
 
Client <(JSON)> (Windows Service)
 
Спасибо

Всего записей: 31 | Зарегистр. 20-02-2018 | Отправлено: 17:10 27-02-2018 | Исправлено: nickneykov, 17:11 27-02-2018
Alexey_Gawrilow



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

Цитата:
Client <(JSON)> (Windows Service)  

Делаешь службу.
В службе делаешь HTTP сервер.
На POST/GET делаешь разборзапроса/генерацию ответа JSON любой библиотекой.
 
Сервис сделать - не проблема.
HTTP server сделать - не проблема.
Json разобрать - не проблема.
 
Готовые инфраструктуры:
- STOCK(Delphi),
- mORMot,
- BrookFramework,
- Daraja Framework,
- DelphiMVCFramework,
- MARS-Curiosity Delphi REST Library,
- RealThinClient,
- СleverСomponents.
 
HTTP:
- Indy,
- Synapse,
- HTTP.SYS,
- как грязи.
 
Json:
- JsonDataObjects by A.Hausladen,
- dwsJson from (DWScript),
- Json(SynCommons.pas/SynCrossPlatformJSON.pas) from mORMot,
- STOCK(Delphi) тоже пойдет, лучше без приставки dbx,
- как грязи.
 
Библиотеки требуют изучения.
 
шикарная иллюстрация
https://github.com/andrea-magni/MARS/blob/master/media/MARS-Curiosity%20Map.png

Всего записей: 538 | Зарегистр. 08-09-2003 | Отправлено: 19:21 27-02-2018 | Исправлено: Alexey_Gawrilow, 19:25 27-02-2018
uranic2

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

Цитата:
Эта странность возникает иногда во все версиях (7-8-10.x).  

 
Это только у вас. DX3, DX10.1, DX10.2 проекты разной сложности (Devexpress, Jedi, UNIDAC, FASTREPORT, TRICHVEIW), в последнее время все под VirtualBOX, никогда не замечал подобного
 

Всего записей: 235 | Зарегистр. 17-08-2004 | Отправлено: 19:33 27-02-2018
ChSerg



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

Всего записей: 852 | Зарегистр. 30-08-2001 | Отправлено: 20:38 27-02-2018
nickneykov

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexey_Gawrilow
Спасибо за понимание,
До сих пор я занимался службой SOAP, но мне пришлось перевести на связь JSON + HTTP.
Я посмотрю на них и выберем вариант, близкий к характеру работы.

Всего записей: 31 | Зарегистр. 20-02-2018 | Отправлено: 11:05 28-02-2018
Alexey_Gawrilow



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

Цитата:
До сих пор я занимался службой SOAP

Одно другому не мешает.
Просто они живут в разных PathInfo
soap*
rest*
 
У меня в одном модуле и SOAP и REST интерфейсы.
Можно при желании и Json-RPC.
Но это скорее для случая, когда не понятно как в REST уложить.
Я решаю новым глаголом/или ресурсом.
 
С одной стороны весов процедурный подход, н-р Dataset.(Open/Close).
С другой установка свойств, нр- Dataset.Active := (True/False).
 
SOAP, (Json|XML)-RPC - это процедурный.
REST - ресурсы и их свойства.
 
Главное - велосипед не изобретать.
 
PS. SOAP - лучше, просто он не модный и плохо поддерживается JS. , а Json - дитя JS.
И да, у него(SOAP) есть "фатальный недостаток", а еще он чаще всего XML
Цитата с другого форума

Всего записей: 538 | Зарегистр. 08-09-2003 | Отправлено: 13:41 28-02-2018 | Исправлено: Alexey_Gawrilow, 13:51 28-02-2018
nickneykov

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexey_Gawrilow
Конечно,
Я не смогу их объединить, потому что они предназначены для разных проектов, но идеи важны! Велосипед ... и колесо - давно их обнаружили!
Спасибо!
PS
И из-за недостатков я решил пойти в REST

Всего записей: 31 | Зарегистр. 20-02-2018 | Отправлено: 13:52 28-02-2018 | Исправлено: nickneykov, 13:55 28-02-2018
StalkerSoftware



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Hi All,
 
Есть программа с которой работает пользователь. Периодически по таймеру программа лезет в базу и смотрит есть ли какие то новые данные для пользователя и если есть то сообщает ему об этом. В принципе это все работает нормально, но есть один момент: Пользователь может переключиться на другую программу, например Word или какой ни будь браузер и тогда получается ситуация, когда программа сообщает пользователю о новых данных, а он это не видит, так как сидит в другой программе.
 
То есть, если моя программа не актива (свернута или просто пользователь переключился на другую), мне надо вывести ее на передний план, что бы пользователь увидел свое сообщение.  
Можно конечно было бы показать какой нибудь балун в трее, но это мне не годится, так как информация в сообщение может касаться сразу нескольких разделов программы и пользователь должен в диалоге нажать на соответствующую кнопку для перехода в нужный раздел.
 
Ранее у меня в Delphi 7 работал такой код:

Код:
 
  if not Application.Active then begin
    SetForegroundWindow(Application.Handle);
    Application.Restore;
  end;
 

он вполне хорошо срабатывал и на WinXP и на Win7 - т.е. моя программа выводилась на передний план.
Но после перевода программы на Delphi 10.2, я заметил, что он перестал нормально срабатывать.
 
Вопрос: Может этот код можно как то поправить, что бы он опять стал работать правильно ?
Или может в Delphi 10.2 появились какие то новые возможности по информированию пользователя, например балун с элементами диалога (задаваемыми кнопками) на которые можно повесить разные действия ?
 
 
 

Всего записей: 559 | Зарегистр. 23-06-2008 | Отправлено: 11:45 03-03-2018
abyss79

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
StalkerSoftware
Тут страннее, что ранее работало, т.к. SetForegroundWindow имеет безумное количество ограничений (почитайте секцию Remarks чтобы понять, что она обычно не работает):
https://msdn.microsoft.com/en-us/library/windows/desktop/ms633539(v=vs.85).aspx
Чтобы заставить её работать всегда надо очень сильно постараться.
 
Например, чтобы обойти ограничения есть функция AllowSetForegroundWindow, но её можно вызвать только из активного процесса, т.е. надо внедриться в активный процесс и вызвать, что усложняет всё очень сильно.
 
Может в д7 Restore более агрессивно работало и получалась симуляция, как будто окно свернулось и развернулось.
 
А так, есть стандартный способ привлечения внимания в виде моргания в панели задач. Оно так даже лучше, т.к. окно не выскакивает когда пользователю не надо, а именно это и является причиной всех ограничений SetForegroundWindow.
 
var
  pfwi: FLASHWINFO;
begin
  pfwi.cbSize := SizeOf(FLASHWINFO);
  pfwi.hwnd := Application.MainForm.Handle;
  pfwi.dwFlags := FLASHW_ALL or FLASHW_TIMERNOFG;
  pfwi.uCount := UInt32.MaxValue;
  pfwi.dwTimeout := 0;
  FlashWindowEx(pfwi);

Всего записей: 68 | Зарегистр. 23-11-2007 | Отправлено: 12:27 03-03-2018 | Исправлено: abyss79, 17:26 03-03-2018
VadimLou



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

Всего записей: 661 | Зарегистр. 22-07-2004 | Отправлено: 22:50 03-03-2018
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
StalkerSoftware
Обычно приложения в таких ситуациях создают небольшую форму со всеми нужными кнопками и fsStayOnTop, и показывают ее в углу экрана.

Всего записей: 2160 | Зарегистр. 24-05-2007 | Отправлено: 12:16 04-03-2018
DmitryB2005

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В конфигурации "отладка" моя утилита работает нормально. Если использую конфигурацию "релиз" при компиляции, то оно уже не работает, как в предыдущем случае. Я в своей части(без учета шаблона проекта создаваемого средой по умолчанию) исходного кода не использую никаких директив компилятору. Подскажите, в чем может быть причина ?
 
Нашел сам: по умолчанию в конфигурации "релиз" отключена проверка на выход за диапазон для индексов массивов.

Всего записей: 70 | Зарегистр. 24-09-2005 | Отправлено: 21:41 04-03-2018 | Исправлено: DmitryB2005, 22:38 04-03-2018
V1s1ter



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

Цитата:
то оно уже не работает

А подробнее? А то у меня тут тоже одна прогга не работает, может подскажешь  что не так?

Всего записей: 899 | Зарегистр. 06-02-2007 | Отправлено: 22:38 04-03-2018
StalkerSoftware



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

Цитата:
Тут страннее, что ранее работало, т.к. SetForegroundWindow имеет безумное количество ограничений

Тем не менее, эта комбинация прекрасно работала и на Win7 SP1 и на WinXP SP3 в программе на Delphi 7.
Хотя в последнее время я заметил, что на Win7 SP1 она перестала работать, возможно это какие то изменения после фиксов винды от MS.
 

Цитата:
А так, есть стандартный способ привлечения внимания в виде моргания в панели задач.  

Ну что бы просто помигать можно и проще  
Application.BringToFront
как раз только мигает, без переключения на само приложение.
 
Frodo_Torbins

Цитата:
Обычно приложения в таких ситуациях создают небольшую форму со всеми нужными кнопками и fsStayOnTop, и показывают ее в углу экрана.

Попробовал и этот вариант:

Код:
 
oDlgTimer := TForm.Create(nil);
 try
   Application.Restore;
   oDlgTimer.FormStyle := fsStayOnTop;
   oDlgTimer.ShowModal;
finally
   FreeAndNil(oDlgTimer);
end;

Под Win7 SP1 работает прекрасно, а вот под WinXP SP3 не хочет - форма не выскакивает вперед, пробовал и из свернутого и просто переключенного приложения.
 
VadimLou
Ваш код работает хорошо, спасибо за него, дергаю его так:

Код:
       
 Application.Restore;
 ForceForegroundWindow(Application.Handle);
 

пробовал под Win7 SP1 и WinXP SP3.  
Единственно что, он не дружит с консольными приложениями. То есть если запустить программу с этим кодом и переключиться например на FAR, то моя программа вперед не вылезет.
Возможно это связанно с проверкой в коде :
(IsWindowVisible(hWnd) or IsIconic(hWnd)) and // На WinXP появляется доп окно "GDI+ Window"
 
И еще небольшой вопрос по вашему коду, в нем есть такая строка:
Application_ProcessMessages();
Знак подчеркивания - это опечатка или у Вас есть своя реализация ProcessMessages ?

Всего записей: 559 | Зарегистр. 23-06-2008 | Отправлено: 10:44 05-03-2018
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
StalkerSoftware
Делайте простой Show вместо ShowModal. А то ShowModal очень много ненужной работы делает, и кажется отменяет FormStyle. Только тогда убийство такой формы надо делать совсем в другом месте. Можно, например, caFree использовать.

Всего записей: 2160 | Зарегистр. 24-05-2007 | Отправлено: 16:46 05-03-2018 | Исправлено: Frodo_Torbins, 16:48 05-03-2018
VadimLou



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

Цитата:
консоль программа вперед не вылезет.Возможно это связанно с проверкой в коде

Похоже на то - поэкспериментируйте...
 

Цитата:
Application_ProcessMessages

Подробнее...

Всего записей: 661 | Зарегистр. 22-07-2004 | Отправлено: 20:19 05-03-2018
Открыть новую тему     Написать ответ в эту тему

Страницы: 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

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

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.

Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2018

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru