kami
Пользователи-
Постов
643 -
Зарегистрирован
-
Посещение
-
Победитель дней
41
Весь контент kami
-
Самое простое (да, это просто обходится любым,кто знаком с ProcessMonitor): программа-"подготовщик" запускается с правами админа и записывает в HKLM случайно сгенерированное довольно длинное значение. Она же выдает его пользователю в читабельном виде (например - через Base64). Рабочее приложение читает это значение (на чтение HKLM доступен) и сравнивает с эталоном, который хранится "внутри" нее.
-
Пардон, а когда с ними было хорошо? до 10 версии - постоянные проблемы с версиями OpenSSL. В отличие от других компонентов влезть в код Indy, покопаться чтобы понять где возникает глюк - практически нереально, слишком много всего наворочено. Да и взять самое простое - на кой idHTTP (который клиент) возбуждает исключение на коды 400-599 вместо того, чтобы просто отдать HTTPStatusCode в ответе? В результате приходится городить многоэтажные конструкции try-except, что явно не способствует читабельности уже собственного кода. Единственный плюс (который значим для меня, т.е. читать как имхо) у http-компонентов Indy - более-менее нормальная работа с multipart-form-data. В System.Net.Mime это немного недоработано, пришлось делать собственную надстройку. P.S. на RadStudio Seattle Tour в СПб неофициально рекомендовали не использовать Indy, а действовать через System.Net.HttpClient
-
OnIdHTTP1Work случайно не в отдельном потоке работает? Откажитесь от Indy, переходите на System.Net.*.pas
-
У меня в понедельник эта эпопея была, поскольку срок действия того сертификата закончился в воскресенье.
-
Мне вот интересно - почему авторы вопросов не допускают мысли, что проблема не в их приложении, а действительно сам сервер отдает именно такой контент? Казалось бы - чего проще, поставить расширение Postman для Chrome и вручную отправить именно тот запрос, который вызывает сомнения. В ответе сразу всё будет видно. И уже тогда можно с уверенностью утверждать "проблема именно в приложении, потому что сайт всё отдает нормально" или "проблема в сайте, он отдает ерунду".
-
Простите, а зачем? Вот лежит у меня в кармане телефон. Тихо, спокойно лежит. И тут какое-то приложение решает, что нужно разблокировать экран и что-то показать. Во-первых, легко могут пойти несанкционированные нажатия (мотыляется телефон во внутреннем кармане куртки, фиг знает как сенсор экрана будет реагировать), а во-вторых включается экран и начинает усиленно садиться батарейка. Вопрос: на... в смысле, зачем я буду держать на своем устройстве такое приложение? "Правильные" приложения показывают уведомление в "шторке", сопровождаемое звуковым сигналом. Услышал пользователь - сам разблокировал экран и пошел разбираться. Не услышал - значит чем-то занят, нечего его беспокоить.
-
А лучше не делать такие действия из "детей" MultiView. Установку Selected можно оставить, а скрывать лучше через какой-то промежуток времени (реализация "в лоб" - по таймеру с маленьким интервалом и однократным срабатыванием)
-
Вставьте костыль - перед HideMaster сделайте Application.ProcessMessages
-
Новые ключи, которые не предусмотрены опциями проекта, можно добавить (например) при помощи бесплатной утилиты iOS9 Fix от TMSSoftware
-
Очень легко. var Response: IHTTPResponse; begin Response := FHTTPClient.Post(CONST_URL, Params, Stream); AnswerCode := Response.StatusCode; // вот этот код.
- 8 ответов
-
- NetHTTPClient
- SSL
-
(и ещё 1 )
C тегом:
-
Видимо, у нас разные понятия об универсальности. Ручное задание значения "глобального смещения", имхо, следует считать "тонкой доводкой" исключительно под конкретный тип окружения. Но - ваше право. Еще раз огромное спасибо за модуль. За сим умолкаю.
- 46 ответов
-
- vkbdhelper
- scrollable form
-
(и ещё 3 )
C тегом:
-
Тоже немного не так - он будет каждый раз искать форму при показе клавиатуры. Что, впрочем, и без того проделывается в ScrollInToRect Совершенно верно, именно про него. А вот то что он работает как ваш исходный код модуля - не согласен. потому что в ScrollableForm как раз и проводится ScreenToClient для координат клавиатуры в FormVirtualKeyboardShown. Повторюсь - про Android судить не могу, но в iOS правильное позиционирование должно быть именно с ScreenToClient преобразованием координат клавиатуры.
- 46 ответов
-
- vkbdhelper
- scrollable form
-
(и ещё 3 )
C тегом:
-
Увы - на андроиде протестировать не могу. Да, медленнее из-за поиска (а сильно? на IOS Simulator я разницы не ощутил, да и вызывается он однократно при показе). Однако в стандартной клавиатуре на iOS 9 всегда вверху есть кнопки типа "отменить/копировать" и т.п. При этом IFMXVirtualKeyboardToolbarService.IsToolbarEnabled возвращает False. В iOS8 такого я не видел. Т.е. получается, что в iOS9 всегда нужно добавлять VKOffset, а в iOS8 - нет. Зоопарк андроида всегда впечатлял Но думается, введением переменной дело в любом случае не ограничить, раз "там включают, а тут не включают" тулбар в размер клавиатуры. По поводу п.1 - а как отрабатывает стандартный способ от Embarcadero?
- 46 ответов
-
- vkbdhelper
- scrollable form
-
(и ещё 3 )
C тегом:
-
Простите, что-то не прикрепилось...vkbdhelper.zip
- 46 ответов
-
- vkbdhelper
- scrollable form
-
(и ещё 3 )
C тегом:
-
В модуле есть неточность с определением координат, из-за этого и введено VKOffset. Дело в том, что координаты клавиатуры получаются абсолютными относительно экрана, а координаты контрола, которому нужно провести позиционирование - абсолютными относительно формы. Сама же форма имеет TopLeft отличные от нуля (шторка). Нужно преобразование координат клавиатуры относительно формы. В этом случае VKOffset не нужен, т.к. координаты клавиатуры включают в себя тулбар (если он есть). Прикладываю уточненный модуль, оттестировано на iOS. Прошу проверить на Android.
- 46 ответов
-
- vkbdhelper
- scrollable form
-
(и ещё 3 )
C тегом:
-
Хммм... не совсем отрабатывает на iOS. Позиция меняется, но не на столько, чтобы контрол стал полностью виден. При этом "верхних" тулбаров на клавиатуре нет. Правильно ли я понимаю, что для использования этого модуля не нужно извращаться, как предложено в "стандартном" способе - класть все контролы на VertScrollBox? Нет, туплю. Тулбар был, всё классно.
- 46 ответов
-
- vkbdhelper
- scrollable form
-
(и ещё 3 )
C тегом:
-
Обожаю вот такую вот реализацию: включил в uses - функционал заработал, исключил - функционала нет, но ни на что другое это не повлияло. И не задумываешься, что "ага, раз мне нужно это, значит еще в 10 модулях нужно переопределить всё подряд и вообще переписать заново". ZuBy, огромнЕйшее спасибо! Сейчас будем посмотреть, как оно на iOS живет
- 46 ответов
-
- vkbdhelper
- scrollable form
-
(и ещё 3 )
C тегом:
-
На презентации Seattle рекомендовали использовать именно его, а не Indy. Вот только не знаю - работает ли он через https. А так - насколько я знаю, Indy не заставить отдавать контент в случае кода ответа, отличного от 200. Если сервер возвращает 400 - 5хх ошибку, то происходит выход из метода Get/Post через исключение(!), что мне изначально не понравилось. Контент при этом недоступен, вполне возможно (я не стал разбираться) исключение вызывается сразу после получения заголовка, до приема тела ответа.
-
{$IFDEF offtop}по ряду причин стараюсь использовать именно прослойку между БД и приложением. Стойкое убеждение (не для холивара) - не должна СУБД быть открытой для доступа "снаружи", даже если это локалка. Сегодня так, а завтра потребуется доступ через интернет... Я считаю, что правильный админ никогда не откроет порт для доступа к БД наружу. В данном случае не понимаю, что мешает установить свой сервис не на машину с СУБД, а "рядом".{$ENDIF} А так - да, рекламный пост Pax Beach , все нормально, очень многие знают про UniDac
- 5 ответов
-
- RAD Studio
- UniDAC
-
(и ещё 3 )
C тегом:
-
MS SQL Server - это не локальное подключение и не Embedded-база. Смотрите пункт "Создание приложений для баз данных с клиент-серверным подключением". Это же декларируется и в pdf-таблице полных отличий.
-
Господа, огромное спасибо за ответы, думаю, на этом можно закругляться. В любом случае - "вскрытие покажет"
-
Нет, зачем? Всегда готов
-
Видимо, я плохо объясняю, тоже тяжелый день. Попробую еще раз, вкратце. Есть текущая версия приложения, сделана на XE 7 под iOS 8.4. Заказчик сидит на этой версии iOS и не будет обновляться до тех пор, пока мы не будем готовы. Требуется перейти на Seattle + iOS 9.2 Условие: на период перехода (установка, обновления, миграция кода и стилей) нельзя потерять возможность компиляции и деплоя в XE7 под iOS 8.4 на случай экстренных правок. Т.е. обновление-обновлением, но "существующая конфигурация" должна иметь возможность продолжить работу вне зависимости от версии OSX и XCode. По большей части это относится к периоду: OSX и XCode уже обновлены, я занимаюсь миграцией кода и стилей на Seattle, и тут резко прилетает задача чего-нибудь быстро-быстро поправить в XE 7. Вот и опасаюсь - сможет ли XE 7 сработаться с новым XCode и сиэтловским paserver...