kami
-
Постов
643 -
Зарегистрирован
-
Посещение
-
Победитель дней
41
Активность репутации
-
kami получил реакцию от zairkz в vkbdhelper - поднятие компонентов над клавиатурой
Коллеги, прошу при возможности протестировать очередную модификацию модуля.
К сожалению, Santya видимо покинул форум надолго, так что отработать решение проблемы и возможные недостатки на "первом подопытном" не удалось.
Основные изменения: очень многое переписал. По большому счету от исходного модуля осталась идея и два фундаментальных момента.
Как обычно, спасибо Rusland за тестирование. Осталось проверить, как ведет себя модуль с ScrollBox-ами, которые не растянуты на всю форму.
vkbdhelper.zip
-
kami получил реакцию от bigjorj в vkbdhelper - поднятие компонентов над клавиатурой
Коллеги, прошу при возможности протестировать очередную модификацию модуля.
К сожалению, Santya видимо покинул форум надолго, так что отработать решение проблемы и возможные недостатки на "первом подопытном" не удалось.
Основные изменения: очень многое переписал. По большому счету от исходного модуля осталась идея и два фундаментальных момента.
Как обычно, спасибо Rusland за тестирование. Осталось проверить, как ведет себя модуль с ScrollBox-ами, которые не растянуты на всю форму.
vkbdhelper.zip
-
kami получил реакцию от Error в TMS Pack for FireMonkey
Засунуть куки в веббраузер можно. Кстати, таким же макаром (если это позволяет javascript) можно и вставить в браузер логин/пароль и нажать на кнопку Login.
Все "веббраузеры", которые вы можете использовать в FMX (да и в VCL, если уж на то пошло) - всего лишь надстройки над нативными.
Нет такого метода у браузеров на всех платформах, который мог бы вытащить содержимое страницы или куки. Поэтому реализация такого должна привязываться к конкретной платформе, на которой это нужно провернуть. Например, на stackoverflow есть вопросы и ответы, как это сделать в Android на Java. Осталось разобраться и портировать код в свое приложение.
FMX тут ни при чем. Возможно, вашему приложению не хватает каких-то разрешений. От того, что вы смените обертку, нативный браузер (используемый этой оберткой) не станет работать по другому.
-
kami получил реакцию от rareMax в [TExpander] Как отловить событие OnExpand?
Все придумано до нас http://stackoverflow.com/questions/35105713/delphi-set-the-texpander-height/35109511#35109511 берем protected - поле FIsExpanded и анализируем его в методе DoExpandedChanged.
Хотите - добавьте свое событие, хотите - пользуйтесь так.
-
kami получил реакцию от zairkz в vkbdhelper - поднятие компонентов над клавиатурой
vkbdHelper имеет весьма интересный алгоритм - если он находит scrollbox и понимает, что тот в состоянии поднять поле ввода так, чтобы оно было над клавиатурой, то собственный Layout не создается, а прокручивается имеющийся ScrollBox. Но там какой-то алгоритм работы со scrollbox-ом, который отличается от штатной демки.
Не проверял этот момент и не менял его, попробую посмотреть, когда разгребусь с текущими вопросами.
-
kami получил реакцию от zairkz в Передать значение в ITask
Так и делайте.
ParseItem(i). Емнип, значение будет размещено в стеке, так что последующие изменения переменной на уже созданный таск не повлияют.
-
kami получил реакцию от rareMax в System.IOUtils.TFile.WriteAllText потокобезопасная процедура?
Да, потокобезопасный "классовый" метод. Однако, в связи с соседней темой есть важные дополнения:
1. этот метод не записывает преамбулу.
2. Для записи используется кодировка UTF8
3. Метод создает файл с эксклюзивным доступом к нему. Пока метод работает, попытка достучаться до файла (например из другого потока) провалится с выбросом исключения.
Кроме того - нежелательно пользоваться методом TFile.AppendAllText без явного указания кодировки (буквально недавно здесь и здесь была куча споров. Жалко, половину комментариев потерли...)
-
kami получил реакцию от Равиль Зарипов (ZuBy) в vkbdhelper - поднятие компонентов над клавиатурой
Update. Исправили недостаток на Android 5. Большое спасибо Rusland за тестирование.
Итоговый файл прикладываю.
По прежнему не рекомендую использовать этот модуль, если создаваемые в runtime контролы ложатся напрямую на форму.
Перед написанием претензий, пожалуйста прочитайте known issues в комментарии в начале файла.
vkbdhelper.zip
-
kami получил реакцию от rareMax в Как узнать, в какой кодировке файл?
В общем случае - никак. Если файл не содержит преамбулу (1-3 байта) - идентификатор кодировки, то предстоит только догадываться. Если содержит - посмотрите исходники TStringList или TFile.AppendAllText.
Вкратце - для автоматического "угадывания" используемой кодировки задействуется TEncoding.GetBufferEncoding
-
kami отреагировална beklexx в Ошибка при задании координат формы
ммм... я так понимаю что на форме 5 лежит TRectangle под именем left... бывает, когда переработаешь, отдохнуть вам надо бы... пивка там
-
kami получил реакцию от Rusland в vkbdhelper - поднятие компонентов над клавиатурой
Update. Исправили недостаток на Android 5. Большое спасибо Rusland за тестирование.
Итоговый файл прикладываю.
По прежнему не рекомендую использовать этот модуль, если создаваемые в runtime контролы ложатся напрямую на форму.
Перед написанием претензий, пожалуйста прочитайте known issues в комментарии в начале файла.
vkbdhelper.zip
-
kami получил реакцию от Rusland в vkbdhelper - поднятие компонентов над клавиатурой
Ну вот, собственно, что получилось.
Решение, к сожалению, мне не нравится, поскольку основывается исключительно на том, что этот "левый" Rectangle лежит прямо на форме и имеет Align = Contents.
В остальном - работает.
Еще раз заострю внимание на своем предыдущем сообщении - если вы создаете контролы в runtime и выставляете родителем для них саму форму, то пользоваться этим модулем для вас противопоказано.
Upd: заменил вложение. Прошу обратить внимание на комментарии в файле, касаемые known issues.
vkbdhelper.zip
-
kami получил реакцию от zairkz в Ошибка сертификата Apple
У меня в понедельник эта эпопея была, поскольку срок действия того сертификата закончился в воскресенье.
-
kami получил реакцию от Rusland в Проблема при активации memo или edit программа зависает и закрывается.
Было бы неплохо продублировать сюда ответ из Stackoverflow, если он вам помог
-
kami получил реакцию от zairkz в Как показать форму в Android при заблокированном устройстве
Простите, а зачем?
Вот лежит у меня в кармане телефон. Тихо, спокойно лежит. И тут какое-то приложение решает, что нужно разблокировать экран и что-то показать. Во-первых, легко могут пойти несанкционированные нажатия (мотыляется телефон во внутреннем кармане куртки, фиг знает как сенсор экрана будет реагировать), а во-вторых включается экран и начинает усиленно садиться батарейка.
Вопрос: на... в смысле, зачем я буду держать на своем устройстве такое приложение?
"Правильные" приложения показывают уведомление в "шторке", сопровождаемое звуковым сигналом. Услышал пользователь - сам разблокировал экран и пошел разбираться. Не услышал - значит чем-то занят, нечего его беспокоить.
-
kami получил реакцию от Равиль Зарипов (ZuBy) в Как показать форму в Android при заблокированном устройстве
Простите, а зачем?
Вот лежит у меня в кармане телефон. Тихо, спокойно лежит. И тут какое-то приложение решает, что нужно разблокировать экран и что-то показать. Во-первых, легко могут пойти несанкционированные нажатия (мотыляется телефон во внутреннем кармане куртки, фиг знает как сенсор экрана будет реагировать), а во-вторых включается экран и начинает усиленно садиться батарейка.
Вопрос: на... в смысле, зачем я буду держать на своем устройстве такое приложение?
"Правильные" приложения показывают уведомление в "шторке", сопровождаемое звуковым сигналом. Услышал пользователь - сам разблокировал экран и пошел разбираться. Не услышал - значит чем-то занят, нечего его беспокоить.
-
kami получил реакцию от Равиль Зарипов (ZuBy) в TMultiView и TListBox
А лучше не делать такие действия из "детей" MultiView.
Установку Selected можно оставить, а скрывать лучше через какой-то промежуток времени (реализация "в лоб" - по таймеру с маленьким интервалом и однократным срабатыванием)
-
kami получил реакцию от zairkz в [iOS] Добавить свои поля в Info.plist
Новые ключи, которые не предусмотрены опциями проекта, можно добавить (например) при помощи бесплатной утилиты iOS9 Fix от TMSSoftware
-
kami получил реакцию от Равиль Зарипов (ZuBy) в [iOS] Добавить свои поля в Info.plist
Новые ключи, которые не предусмотрены опциями проекта, можно добавить (например) при помощи бесплатной утилиты iOS9 Fix от TMSSoftware
-
kami получил реакцию от Rusland в NetHTTPClient и SSL
Очень легко.
var Response: IHTTPResponse; begin Response := FHTTPClient.Post(CONST_URL, Params, Stream); AnswerCode := Response.StatusCode; // вот этот код. -
kami отреагировална Равиль Зарипов (ZuBy) в vkbdhelper - поднятие компонентов над клавиатурой
Привет Всем!
vkbdhelper.pas
Давно пользовался vkbdhelper'ом, но он был только для андроида.
руки добрались и до этого, теперь его можно использовать и на IOS
изменения
* почистил uses секцию
* убрал зависимость от платформ (кросс-платформенный)
* добавил глобальную переменную VKOffset
VKOffset - расстояние между контролом и клавиатурой
для тех случаев когда включены подсказки/автозамена
и контрол оказывается под доп. панелькой
Не все клавиатуры включают доп. панели в свой размер!
Например для IOS нужно всегда прибавлять 30-32 пикселя, панель с кнопкой Done перекрывает контрол
{$IFDEF IOS} VKOffset := 31; {$ELSE} VKOffset := 0; // на свой вкус // не знаю как определить размер доп. панельки // когда она не входит в размер клавиатуры // и определить есть ли панелька вообще... {$ENDIF} vkbdhelper.zip
-
kami отреагировална Равиль Зарипов (ZuBy) в Альтернатива FMX
Такой вопрос глупо задавать на форуме который посвящён только fmx. Здесь нет наверное людей которые для стеба сидят. А вообще, кто вам мешает изучать разные языки и фреймворки. Что душе будет ближе и рукам удобней то и выбирайте.
-
kami получил реакцию от Ra72 в Как объединить два StileBook динамически?
В качестве самой очевидной ошибки:
перед LoadFromStream нужно сделать
FBinary.Seek(0, soBeginning); или
FBinary.Position:=0; -
kami получил реакцию от Pax Beach в Пример создания Android приложения в RAD Studio 10 Seattle для работы c сервером MySQL. Работа с компонентами UniDAC от Devart.
{$IFDEF offtop}по ряду причин стараюсь использовать именно прослойку между БД и приложением. Стойкое убеждение (не для холивара) - не должна СУБД быть открытой для доступа "снаружи", даже если это локалка. Сегодня так, а завтра потребуется доступ через интернет... Я считаю, что правильный админ никогда не откроет порт для доступа к БД наружу. В данном случае не понимаю, что мешает установить свой сервис не на машину с СУБД, а "рядом".{$ENDIF}
А так - да, рекламный пост
Pax Beach , все нормально, очень многие знают про UniDac
-
kami получил реакцию от AngryOwl в Пример создания Android приложения в RAD Studio 10 Seattle для работы c сервером MySQL. Работа с компонентами UniDAC от Devart.
{$IFDEF offtop}по ряду причин стараюсь использовать именно прослойку между БД и приложением. Стойкое убеждение (не для холивара) - не должна СУБД быть открытой для доступа "снаружи", даже если это локалка. Сегодня так, а завтра потребуется доступ через интернет... Я считаю, что правильный админ никогда не откроет порт для доступа к БД наружу. В данном случае не понимаю, что мешает установить свой сервис не на машину с СУБД, а "рядом".{$ENDIF}
А так - да, рекламный пост
Pax Beach , все нормально, очень многие знают про UniDac