Сергей Сергеев
-
Постов
144 -
Зарегистрирован
-
Посещение
-
Победитель дней
9
Активность репутации
-
Сергей Сергеев отреагировална Евгений Корепов в TWebBrowser показывает две клавиатуры в IOS
Там видимо все контролы ControlType Platform подвержены этому глюку. А Браузер - это нативный контрол по умолчанию.
-
Сергей Сергеев отреагировална Евгений Корепов в TWebBrowser показывает две клавиатуры в IOS
Я в своем сообщении указал способ решения:
https://quality.embarcadero.com/browse/RSP-25523
Там Dave Nottage написал причину и способ исправления:
Прикладываю архив с исправленным FMX.Platform.iOS.pas - положите в папку с проектом и все заработает нормально (я проверил).
P.S. Несчастный FMX.Platform.iOS.pas изуродовали в Рио бесчеловечно )) Какой то индус прошелся по нему в наркотическом угаре.
FMX.Platform.iOS.pas.7z
-
Сергей Сергеев отреагировална Евгений Корепов в TWebBrowser показывает две клавиатуры в IOS
Да, легко удалось воспроизвести проблему - набрал yandex.ru, нажал Go (открылась страница), на странице нажал ссылку "Картинки" - появилась клавиатура, которая не получает фокуса, не реагирует на тыканье.
Среда 10.3.2, iPhone SE, iOS 12.3.1
Возможно проблема перекликается с https://quality.embarcadero.com/browse/RSP-25523
-
Сергей Сергеев отреагировална Евгений Корепов в TWebBrowser показывает две клавиатуры в IOS
Закиньте сюда тестовый проект, я проверю на своем устройстве.
-
Сергей Сергеев отреагировална Татьяна в TWebBrowser показывает две клавиатуры в IOS
FMX.VirtualKeyboard.iOS.rar
-
Сергей Сергеев отреагировална juppy в Как можно обновиться в Google Play после 1 августа
Всем привет!
Чот тема заглохла, а ответа так и нет.
У меня вот с таким манифестом публикуется:
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="28" android:maxSdkVersion="27" />
А вот с таким уже нет:
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="28" android:maxSdkVersion="28" />
Поет песенку про то, что надо еще и 64 бит сборку бла бла.
Все бы итак хорошо, но проблема проявляется так, что на 64 разрядные телефоны в Плей Маркете
приложение не выдается в поиске.
Как можно решить эту проблему?
ЗЫ
Delphi 10.3 Version 26.0.33219.4899
-
Сергей Сергеев отреагировална qz5 в LiveBinding на ListView и FireDAC в отдельном потоке без "заморозки" интерфейса на Андроид?
Понятно, я пробовал вроде похожий метод взятый отсюда: https://stackoverflow.com/questions/37830470/firedac-freezes-gui
всё равно не удовлетворило
-
Сергей Сергеев получил реакцию от qz5 в LiveBinding на ListView и FireDAC в отдельном потоке без "заморозки" интерфейса на Андроид?
я тоже не разобрался.. т.к. у меня в дизайнере создана custom item, все в Live Binding настроено.. поэтому ( для моего случая подходит - т.к. данных немного , не боле 100).. создал два одинаковых DataSet - один это результат запроса, никуда не приделан, второй ( полученный копированием в дизайнере первого) - прибайденный. Открываю запрос - заполняется первый датасет ( это в потоке без синхронайза, т.к. на экран ничего не выводится), на экране нет еще данных. Копирую из 1го во второй - и данные на экране появляются( это уже в синхронайзе). Это позволило развязать получение данных с сервера и отображение их на экране. Понятно, что данных в два раза больше, но для меня не критично.
-
Сергей Сергеев отреагировална qz5 в Как можно обновиться в Google Play после 1 августа
и вначале дадут Бету тем у кого есть действующая подписка
"later this month" - переводится как "позже в этом месяце" или "после этого месяца"?
Насколько я понимаю, всё-таки "позже в этом месяце"
остался только непонятным вопрос - для "коммуняк" дадут бету или ждать релиза
-
Сергей Сергеев получил реакцию от Ingalime в LiveBinding на ListView и FireDAC в отдельном потоке без "заморозки" интерфейса на Андроид?
я тоже не разобрался.. т.к. у меня в дизайнере создана custom item, все в Live Binding настроено.. поэтому ( для моего случая подходит - т.к. данных немного , не боле 100).. создал два одинаковых DataSet - один это результат запроса, никуда не приделан, второй ( полученный копированием в дизайнере первого) - прибайденный. Открываю запрос - заполняется первый датасет ( это в потоке без синхронайза, т.к. на экран ничего не выводится), на экране нет еще данных. Копирую из 1го во второй - и данные на экране появляются( это уже в синхронайзе). Это позволило развязать получение данных с сервера и отображение их на экране. Понятно, что данных в два раза больше, но для меня не критично.
-
Сергей Сергеев получил реакцию от Barbanel в Личный кабинет пациента поликлиники
сделано на Datasnap - 3х звенка
MsSql- Сервис Https - Клиент ( Андроид, Ios, Win, Mac)
Личный кабинет пациента клиники (www.familydoctor.ru) открывает зарегистрированным пользователям доступ
к медицинской карте (результаты лабораторных исследований и функциональной диагностики,
описание приемов врачей, направления и рекомендации,
истории посещений клиники (дата, время, специалист),
программам медицинского наблюдения (перечень, период прикрепления),
информации о движении средств по депозитам.
Для пересылки выписок (файлов) из медицинской карты используется электронная почта (в системе должен быть настроенный Майл Агент на отправку почты).
Полной версией приложения могут воспользоваться только пациенты, подключившие услугу "Личный кабинет" в регистратуре любого корпуса клиники "Семейный доктор".
В новой версии изменен дизайн, появились новые функции и разделы:
вход по номеру медкарты или ФИО;
запрос нового пароля;
заявка на онлайн запись;
отмена приема;
прейскурант услуг клиники;
справочник адресов клиники.
сервис оплаты услуг клиники через приложение.
В ближайшем будущем функционал личного кабинета будет дополнен онлайн расписанием специалистов, возможностью электронной записи на приём.
в гугл плее
https://play.google.com/store/apps/details?id=com.familydoctor.FD
Есть тестовый вход, обращайтесь.
-
Сергей Сергеев получил реакцию от Евгений Корепов в Личный кабинет пациента поликлиники
сделано на Datasnap - 3х звенка
MsSql- Сервис Https - Клиент ( Андроид, Ios, Win, Mac)
Личный кабинет пациента клиники (www.familydoctor.ru) открывает зарегистрированным пользователям доступ
к медицинской карте (результаты лабораторных исследований и функциональной диагностики,
описание приемов врачей, направления и рекомендации,
истории посещений клиники (дата, время, специалист),
программам медицинского наблюдения (перечень, период прикрепления),
информации о движении средств по депозитам.
Для пересылки выписок (файлов) из медицинской карты используется электронная почта (в системе должен быть настроенный Майл Агент на отправку почты).
Полной версией приложения могут воспользоваться только пациенты, подключившие услугу "Личный кабинет" в регистратуре любого корпуса клиники "Семейный доктор".
В новой версии изменен дизайн, появились новые функции и разделы:
вход по номеру медкарты или ФИО;
запрос нового пароля;
заявка на онлайн запись;
отмена приема;
прейскурант услуг клиники;
справочник адресов клиники.
сервис оплаты услуг клиники через приложение.
В ближайшем будущем функционал личного кабинета будет дополнен онлайн расписанием специалистов, возможностью электронной записи на приём.
в гугл плее
https://play.google.com/store/apps/details?id=com.familydoctor.FD
Есть тестовый вход, обращайтесь.
-
Сергей Сергеев получил реакцию от krapotkin в Личный кабинет пациента поликлиники
сделано на Datasnap - 3х звенка
MsSql- Сервис Https - Клиент ( Андроид, Ios, Win, Mac)
Личный кабинет пациента клиники (www.familydoctor.ru) открывает зарегистрированным пользователям доступ
к медицинской карте (результаты лабораторных исследований и функциональной диагностики,
описание приемов врачей, направления и рекомендации,
истории посещений клиники (дата, время, специалист),
программам медицинского наблюдения (перечень, период прикрепления),
информации о движении средств по депозитам.
Для пересылки выписок (файлов) из медицинской карты используется электронная почта (в системе должен быть настроенный Майл Агент на отправку почты).
Полной версией приложения могут воспользоваться только пациенты, подключившие услугу "Личный кабинет" в регистратуре любого корпуса клиники "Семейный доктор".
В новой версии изменен дизайн, появились новые функции и разделы:
вход по номеру медкарты или ФИО;
запрос нового пароля;
заявка на онлайн запись;
отмена приема;
прейскурант услуг клиники;
справочник адресов клиники.
сервис оплаты услуг клиники через приложение.
В ближайшем будущем функционал личного кабинета будет дополнен онлайн расписанием специалистов, возможностью электронной записи на приём.
в гугл плее
https://play.google.com/store/apps/details?id=com.familydoctor.FD
Есть тестовый вход, обращайтесь.
-
Сергей Сергеев получил реакцию от Татьяна в Личный кабинет пациента поликлиники
сделано на Datasnap - 3х звенка
MsSql- Сервис Https - Клиент ( Андроид, Ios, Win, Mac)
Личный кабинет пациента клиники (www.familydoctor.ru) открывает зарегистрированным пользователям доступ
к медицинской карте (результаты лабораторных исследований и функциональной диагностики,
описание приемов врачей, направления и рекомендации,
истории посещений клиники (дата, время, специалист),
программам медицинского наблюдения (перечень, период прикрепления),
информации о движении средств по депозитам.
Для пересылки выписок (файлов) из медицинской карты используется электронная почта (в системе должен быть настроенный Майл Агент на отправку почты).
Полной версией приложения могут воспользоваться только пациенты, подключившие услугу "Личный кабинет" в регистратуре любого корпуса клиники "Семейный доктор".
В новой версии изменен дизайн, появились новые функции и разделы:
вход по номеру медкарты или ФИО;
запрос нового пароля;
заявка на онлайн запись;
отмена приема;
прейскурант услуг клиники;
справочник адресов клиники.
сервис оплаты услуг клиники через приложение.
В ближайшем будущем функционал личного кабинета будет дополнен онлайн расписанием специалистов, возможностью электронной записи на приём.
в гугл плее
https://play.google.com/store/apps/details?id=com.familydoctor.FD
Есть тестовый вход, обращайтесь.
-
Сергей Сергеев получил реакцию от Ingalime в Личный кабинет пациента поликлиники
сделано на Datasnap - 3х звенка
MsSql- Сервис Https - Клиент ( Андроид, Ios, Win, Mac)
Личный кабинет пациента клиники (www.familydoctor.ru) открывает зарегистрированным пользователям доступ
к медицинской карте (результаты лабораторных исследований и функциональной диагностики,
описание приемов врачей, направления и рекомендации,
истории посещений клиники (дата, время, специалист),
программам медицинского наблюдения (перечень, период прикрепления),
информации о движении средств по депозитам.
Для пересылки выписок (файлов) из медицинской карты используется электронная почта (в системе должен быть настроенный Майл Агент на отправку почты).
Полной версией приложения могут воспользоваться только пациенты, подключившие услугу "Личный кабинет" в регистратуре любого корпуса клиники "Семейный доктор".
В новой версии изменен дизайн, появились новые функции и разделы:
вход по номеру медкарты или ФИО;
запрос нового пароля;
заявка на онлайн запись;
отмена приема;
прейскурант услуг клиники;
справочник адресов клиники.
сервис оплаты услуг клиники через приложение.
В ближайшем будущем функционал личного кабинета будет дополнен онлайн расписанием специалистов, возможностью электронной записи на приём.
в гугл плее
https://play.google.com/store/apps/details?id=com.familydoctor.FD
Есть тестовый вход, обращайтесь.
-
Сергей Сергеев получил реакцию от qz5 в LiveBinding на ListView и FireDAC в отдельном потоке без "заморозки" интерфейса на Андроид?
вот нашел свой пример, который года три назад тоже подсмотрел гдето..
-
Сергей Сергеев получил реакцию от qz5 в LiveBinding на ListView и FireDAC в отдельном потоке без "заморозки" интерфейса на Андроид?
Synchronize - синхронизирует с основным потоком, я делал так - получал данные в потоке, без синхронизации, перегружал в видимы контролы в потоке с синхронизацией, а основной поток в это время крутил индикатор..
-
Сергей Сергеев отреагировална qz5 в Не работает JS в Android
или вот так
document.getElementById('PR_FIO').setAttribute('value','test'); -
Сергей Сергеев отреагировална #WAMACO в Редизайн, создание стиля, существующего приложения
Показали бы что ли... интересно ведь...
-
Сергей Сергеев отреагировална Barbanel в Редизайн, создание стиля, существующего приложения
Ну так вы спрашивайте, здесь много людей могут ответить на такие вопросы.
Также уверен, здесь есть люди, прошедшие эти курсы ?
-
Сергей Сергеев получил реакцию от Ingalime в Бегущая строка
Сделал так..
TEdit положил внутри THorzScrollBox. Ширина TEdit больше чем Scroll, что не влезло справа, обрезалось. Спрятал ScrollBar, чтобы не портил вид.
Положил на форму TrackBar c Value от 0 до 150. Для значения Value добавил TFloatAnimaton с изменением Value от 0-150 по циклу и с реверсом.
На событие OnChangeValue TrackBar повесил обработчик в котором, в зависимости от значения Track меняю у HorzscrollBox позицию ползунка ( .ScrollBy (dX,dY) - еле нашел!)
Результат на видео https://youtu.be/crtw-qQmjFc. Проект вечером прикреплю - может кому понадобится.
"мозг" тут :
var Form1: TForm1; currPos : integer=0; implementation {$R *.fmx} {$R *.LgXhdpiPh.fmx ANDROID} {$R *.Windows.fmx MSWINDOWS} procedure TForm1.TrackBar1Change(Sender: TObject); var cnt : integer; cp :integer ; begin lbT.Text := TrackBar1.Value.ToString; cp := Round(TrackBar1.Value) ; cnt := currPos - cp; currPos := cp; HorzScrollBox1.ScrollBy(cnt,0) ; end;
Test.rar
-
Сергей Сергеев получил реакцию от Maximus в XE10.2 Tokyo есть запись вебинара от 28.03.2017?
Поставил Токио для проверки, такого я не ожидал, скажу честно. Проект, который достаточно безболезненно двигался с Сиетла в Берлин, и количество глюков уменьшалось, просто "умер" в Токио. в Андроид 4.4.2 просто не стартует после splash экрана, до точки останова на первой же команде не доходит, segmentation fault. В Андр 5.1 , 6.0 хоть запускается. Опять пропадают картинки с кнопок ( допилили). Форма с анимацией, пока идёт соединение в потоке, не анимирует. Шрифт на этой форме искажен, с зелёной обводкой. Форма не закрывается после установки соединения. Сказать что я разочарован, не сказать ничего.
-
Сергей Сергеев получил реакцию от Rusland в Ipv6 в datasnap
Проблема решена - приложение в Апп сторе.
Опишу как решил.
Конфигурация - Berlin 10.1 - update 2, Xcode 8.
Datasnap сервер, использую tcpIp.
Компоненты на клиенте TSqlConnection - для Datasnap, TIdTcpClient - использую для проверки соединения перед открытием ДатаСнар соединения, т.к. в нем не работает ТаймОут и есть вероятность "залипнуть"
Сервер так и остался в ИП4 ( вначале хотел перевести его в ип6, но провайдер МТС ответил, что такие адреса не дает, сделал туннель с tunnelbroker.net на тестовый сервер, но так и не пригодилось ( кстати бесплатно, но без гарантии пропускной способности) .
Никаких квадратных скобок , если у вас имена хостов а не ИП адреса не нужны.
Смысл простой - у обоих компонентов нужно выставить свойства протоколов в зависимости от сети нахождения клиента.
Вначале ставлю у обоих ИПв4, если коннект ексептиться - то ставлю ипв6 и еще раз пробую коннектится. и только второй ексепт скажет, что сети действительно нет.
function TClientModule1.gethost(aHost : string):string; var dbxProps: TDBXDatasnapProperties; begin try TabbedForm.HostDS := TabbedForm.Host4; TabbedForm.HostP := TabbedForm.Host4; // ставим все в ип4 IdTCPClient1.IPVersion := TIdIpVersion.Id_IPv4; IdTCPClient1.Host:=TabbedForm.Host4; IdTCPClient1.Port:=StrToInt(TabbedForm.port); //порт сервера DataSnap idTCPClient1.ConnectTimeout := 12000; //заданный тайм-аут Assert(SQLConnection1.DriverName = 'DataSnap', 'Driver must be DataSnap'); dbxProps := SQLConnection1.ConnectionData.Properties as TDBXDatasnapProperties; dbxProps.CommunicationProtocol := 'tcp/ip'; dbxProps.CommunicationIPVersion := 'IP_IPv4'; IdTCPClient1.Connect; if IdTCPClient1.Connected then begin //подключились result:=TabbedForm.Host4; TabbedForm.HostDS := TabbedForm.Host4; TabbedForm.HostP := TabbedForm.Host4; IdTCPClient1.Disconnect; end; except on E: Exception do begin //toast ('IPv4 except '+E.Message); try IdTCPClient1.IPVersion := TIdIpVersion.Id_IPv6; IdTCPClient1.Host:= TabbedForm.Host6P; IdTCPClient1.Port:=StrToInt(TabbedForm.port); //порт сервера DataSnap idTCPClient1.ConnectTimeout := 12000; //заданный тайм-аут IdTCPClient1.Connect; if IdTCPClient1.Connected then begin //подключились result:=TabbedForm.Host6DS; TabbedForm.HostDS := TabbedForm.Host6DS; TabbedForm.HostP := TabbedForm.Host6P; IdTCPClient1.Disconnect; dbxProps.CommunicationIPVersion := 'IP_IPv6'; end; except on E: Exception do begin //не подключились result:='Не подключились'; dbxProps.CommunicationIPVersion := 'IP_IPv4'; IdTCPClient1.IPVersion := TIdIpVersion.Id_IPv4; TabbedForm.HostDS := TabbedForm.Host4; TabbedForm.HostP := TabbedForm.Host4; end; end; end; end; Тут немного есть излишества кода - думал что для Ип4 и Ип6 будут разные имена хостов, но сейчас это одно и тоже имя Сервера который находится в Ип4 и не имеет ни выхода ни адреса в ип6.
вызвав эту фунцию я заполняю глобальные переменные ( ds- датаснап сервер. P- для пробного открытия ("пинг" )) на самом деле они тоже одинаковые.
клиента проверял, как описано http://www.brianjcoleman.com/tutorial-how-to-test-your-app-for-ipv6-compatibility/
т.е. макбук подключен через 3ж модем в сеть и через WiFi раздает ИпВ6 сеть и Айфон к ней присоединен. Если приложение работает в этой внутренней ипв6 сети, то все - проблема решена - Аппле именно так и проверяет.
-
Сергей Сергеев получил реакцию от Kitty в Ipv6 в datasnap
Проблема решена - приложение в Апп сторе.
Опишу как решил.
Конфигурация - Berlin 10.1 - update 2, Xcode 8.
Datasnap сервер, использую tcpIp.
Компоненты на клиенте TSqlConnection - для Datasnap, TIdTcpClient - использую для проверки соединения перед открытием ДатаСнар соединения, т.к. в нем не работает ТаймОут и есть вероятность "залипнуть"
Сервер так и остался в ИП4 ( вначале хотел перевести его в ип6, но провайдер МТС ответил, что такие адреса не дает, сделал туннель с tunnelbroker.net на тестовый сервер, но так и не пригодилось ( кстати бесплатно, но без гарантии пропускной способности) .
Никаких квадратных скобок , если у вас имена хостов а не ИП адреса не нужны.
Смысл простой - у обоих компонентов нужно выставить свойства протоколов в зависимости от сети нахождения клиента.
Вначале ставлю у обоих ИПв4, если коннект ексептиться - то ставлю ипв6 и еще раз пробую коннектится. и только второй ексепт скажет, что сети действительно нет.
function TClientModule1.gethost(aHost : string):string; var dbxProps: TDBXDatasnapProperties; begin try TabbedForm.HostDS := TabbedForm.Host4; TabbedForm.HostP := TabbedForm.Host4; // ставим все в ип4 IdTCPClient1.IPVersion := TIdIpVersion.Id_IPv4; IdTCPClient1.Host:=TabbedForm.Host4; IdTCPClient1.Port:=StrToInt(TabbedForm.port); //порт сервера DataSnap idTCPClient1.ConnectTimeout := 12000; //заданный тайм-аут Assert(SQLConnection1.DriverName = 'DataSnap', 'Driver must be DataSnap'); dbxProps := SQLConnection1.ConnectionData.Properties as TDBXDatasnapProperties; dbxProps.CommunicationProtocol := 'tcp/ip'; dbxProps.CommunicationIPVersion := 'IP_IPv4'; IdTCPClient1.Connect; if IdTCPClient1.Connected then begin //подключились result:=TabbedForm.Host4; TabbedForm.HostDS := TabbedForm.Host4; TabbedForm.HostP := TabbedForm.Host4; IdTCPClient1.Disconnect; end; except on E: Exception do begin //toast ('IPv4 except '+E.Message); try IdTCPClient1.IPVersion := TIdIpVersion.Id_IPv6; IdTCPClient1.Host:= TabbedForm.Host6P; IdTCPClient1.Port:=StrToInt(TabbedForm.port); //порт сервера DataSnap idTCPClient1.ConnectTimeout := 12000; //заданный тайм-аут IdTCPClient1.Connect; if IdTCPClient1.Connected then begin //подключились result:=TabbedForm.Host6DS; TabbedForm.HostDS := TabbedForm.Host6DS; TabbedForm.HostP := TabbedForm.Host6P; IdTCPClient1.Disconnect; dbxProps.CommunicationIPVersion := 'IP_IPv6'; end; except on E: Exception do begin //не подключились result:='Не подключились'; dbxProps.CommunicationIPVersion := 'IP_IPv4'; IdTCPClient1.IPVersion := TIdIpVersion.Id_IPv4; TabbedForm.HostDS := TabbedForm.Host4; TabbedForm.HostP := TabbedForm.Host4; end; end; end; end; Тут немного есть излишества кода - думал что для Ип4 и Ип6 будут разные имена хостов, но сейчас это одно и тоже имя Сервера который находится в Ип4 и не имеет ни выхода ни адреса в ип6.
вызвав эту фунцию я заполняю глобальные переменные ( ds- датаснап сервер. P- для пробного открытия ("пинг" )) на самом деле они тоже одинаковые.
клиента проверял, как описано http://www.brianjcoleman.com/tutorial-how-to-test-your-app-for-ipv6-compatibility/
т.е. макбук подключен через 3ж модем в сеть и через WiFi раздает ИпВ6 сеть и Айфон к ней присоединен. Если приложение работает в этой внутренней ипв6 сети, то все - проблема решена - Аппле именно так и проверяет.
-
Сергей Сергеев отреагировална Равиль Зарипов (ZuBy) в Ipv6 в datasnap
а сам хост(сервер) имеет IPv6 адрес?
вот у меня тоже самое было, пока не выдал провайдер IPv6 адрес, я не смог опубликовать