kami
-
Постов
643 -
Зарегистрирован
-
Посещение
-
Победитель дней
41
Активность репутации
-
kami получил реакцию от Brovin Yaroslav в Аналог Post в FMX android
TThread.Queue(nil, procedure begin my_code end); ?
-
kami отреагировална krapotkin в Ввод числа - самый простой способ фильтрации
вместо tagString можно использовать Model.Data, это более концептуально верно
-
kami получил реакцию от Brovin Yaroslav в [SSL] Как получить содержимое страницы по HTTPS с помощью INDY?
Не работал с ВК.API, но судя по ответу - ваше приложение не считается авторизованным, и Indy с https тут ни при чем, т.к. 401 - ответ, полученный от сервера vk.com
-
kami получил реакцию от Brovin Yaroslav в Отправка содержимого Edit на сервер
Кстати, если "приложение на компе" планируется запускать исключительно под Windows, я бы посоветовал остаться на VCL и задействовать mormot-фреймворк, он работает с http-драйвером Windows и я за все время его эксплуатации ни разу не встречал проблем (в отличие от Indy и ICS).
-
kami получил реакцию от Brovin Yaroslav в Отправка содержимого Edit на сервер
В первую очередь определитесь, в каком виде сервер хочет получить содержимое вашего Edit. И хочет ли вообще.
Есть как минимум два варианта отправки (по http(s)) - метод GET и метод POST.
Anyway - до сервера должна быть возможность достучаться. В общем случае - сервер должен иметь белый статический IP. Если используется только локалка (пусть даже и с разными подсетями) - тут проще.
Берете Indy, десктопное приложение будет выступать сервером (idHTTPServer), а мобильное приложение - клиентом (idHTTPClient). Клиент отправляет данные через idHTTPClient1.Get|Post, а сервер в событии приема данных ловит это и обрабатывает.
-
kami получил реакцию от krapotkin в Отправка содержимого Edit на сервер
В первую очередь определитесь, в каком виде сервер хочет получить содержимое вашего Edit. И хочет ли вообще.
Есть как минимум два варианта отправки (по http(s)) - метод GET и метод POST.
Anyway - до сервера должна быть возможность достучаться. В общем случае - сервер должен иметь белый статический IP. Если используется только локалка (пусть даже и с разными подсетями) - тут проще.
Берете Indy, десктопное приложение будет выступать сервером (idHTTPServer), а мобильное приложение - клиентом (idHTTPClient). Клиент отправляет данные через idHTTPClient1.Get|Post, а сервер в событии приема данных ловит это и обрабатывает.
-
kami отреагировална Brovin Yaroslav в [TfgRichEdit]- компонент редактирования текста с поддержкой форматирования
В текущую версию добавлена поддержка:
Нумерованные списки Ненумерованные списки Форматированный код. Пока только сохранение отступов в коде и применение моношрифта. В будущем планирую добавить систему плагинов расширяющих базовые элементы разметки для реализации подсветки кода. Добавлено прокручивание текста
-
kami получил реакцию от Brovin Yaroslav в A component named ComponentName already exists.
xenon54, согласен. Но сам объект от этого никуда не денется - как минимум, его будет держать Parent.
Кстати, только сейчас обратил внимание на "compiler translates.....". Весьма удивился, если честно. Я почему-то был уверен, что всё от TObject и выше (дженерики не в счет) реализовано именно кодом в .pas файлах
procedure TObject.Free; begin // under ARC, this method isn't actually called since the compiler translates // the call to be a mere nil assignment to the instance variable, which then calls _InstClear {$IFNDEF AUTOREFCOUNT} if Self <> nil then Destroy; {$ENDIF} end; -
kami получил реакцию от Brovin Yaroslav в A component named ComponentName already exists.
Более того, она и меня ввела в заблуждение
Я посмотрел (когда начинал работать с FMX) код Free, увидел, что при ARC он будет пустой и успокоился на этом. А комментарии всякие читать... не барское это дело Вот и попался...
-
kami получил реакцию от Brovin Yaroslav в [TIdTCPClient] Почему TIdTCPClient зависает при общении с по IP в глобальной сети?
Это зависит не от индейцев и не от FireMonkey, а является общей проблемой сетевого обмена
Ваш сервер спрятан за NAT, т.е. нет прямого соответствия между внешним IP и локальным. Поэтому клиент и не может достучаться до него "извне".
Возможные варианты решения:
сделать серверу белый IP (есть такая услуга у провайдеров, в т.ч. и мобильных) Сделать промежуточный сервер, который будет сидеть на белом IP, а исходный сервер и клиент будут подключаться к этому, таким образом они оба будут клиентами. Если доступен роутер, через который сервер "смотрит" в интернет - можно пробросить на этом роутере порт извне напрямую на локальный ip сервера. Да, в качестве примеров работы "за NAT" вы можете привести Skype, TeamViewer, Ammyy и т.п. Но они все используют метод 2.
Еще есть вариант (кажется, не помню точно, давно этим не занимался) - DynDNS.
-
kami получил реакцию от Равиль Зарипов (ZuBy) в Передвижение rectangle на видимую область
В озвученном вами примере ScrollableForm в том числе получается высота виртуальной клавиатуры в методе FormVirtualKeyboardShown
-
kami получил реакцию от Brovin Yaroslav в Передвижение rectangle на видимую область
В озвученном вами примере ScrollableForm в том числе получается высота виртуальной клавиатуры в методе FormVirtualKeyboardShown
-
kami отреагировална Кривяков Виталий в TUITabControl
Добрый день!
В теме про наш продукт http://fire-monkey.ru/topic/1519-1c-papyc-mobilnoe-prilozhenie-dlia-masterov-priemschiko/ меня просили поделиться исходным кодом компонента TabControl с поддержкой слайда табов пальцем. С удовольствием делюсь
В составе архива сам компонент и пример его использования.
FMXUI.zip
-
kami получил реакцию от Brovin Yaroslav в Tethering Передача звука
TeamViewer, для справки, использует очень хорошие алгоритмы сжатия и передачи изображения/звука. Для последнего, думаю, используется что-то вроде надстройки над RTP.
... Я могу только повторить - afaik, Tethering не предназначен для передачи realtime-данных. Ожидание подтверждения каждого отправленного пакета станет бутылочным горлышком вашего приложения.
-
kami получил реакцию от Brovin Yaroslav в Tethering Передача звука
Теоретически - да, возможно. Практически - нецелесообразно для передачи realtime потока задействовать компоненты, использующие протокол с подтверждением - у вас будут огромные задержки в воспроизведении и в конце концов приложение свалится из-за нехватки памяти. А может и не свалится, но приятного все равно будет мало.
-
kami отреагировална Brovin Yaroslav в Удаление формы из back-стека
Это не будет работать. Так как форма FMX не имеет никакого отношения к активити. Поэтому этот аттрибут не поможет вам.
Так же этот флаг используется, чтобы осуществить навигацуию между разными активити, а в не внутри одного.
-
kami получил реакцию от krapotkin в Неблокирующий диалог в мобильном приложении
На всякий случай уточню:
ShowModal(Callback) - это не всем привычный ShowModal, как его обычно понимают - внутри этого метода просто запоминается Callback и вызывается Show. А когда вы присвоите показанной форме какой-нибудь ModalResult, то будет вызыван Callback и форма закроется.
Т.е. в действительности это Show/Close с доп. "фишками". Поэтому на такой вызов не распространяется ограничение из хелпа
-
kami получил реакцию от Brovin Yaroslav в [TIdHTTP] Пример авторизации на каком-нибудь сервисе
Использование Indy в VCL и FMX ничем не отличается.
-
kami получил реакцию от Brovin Yaroslav в Удаление формы из back-стека
Так удалите эту форму вообще.
Судя по тому, что я накопал - у FMX свой механизм определения активной формы. Смотреть
function TScreen.NextActiveForm -
kami получил реакцию от xenon54 в Неблокирующий диалог в мобильном приложении
myDialogForm.ShowModal(callbackProc)
-
kami отреагировална Brovin Yaroslav в Шторка TMultiView залезает на Toolbar
По идеи если вы хотите, чтобы у вас тулбар распологался сверху относительно всего остального, то TMultiView и TargetControl должны лежат в отдельном контейнере. Например так:
Потому что TMultiView в режиме Drawer распологается в ручную относительно своего родителя. На моем примере Drawer будет вытянут по высоте Layout1. Если же TMultiView лежит на форме, то он будет растягиваться по высоте формы.
-
kami получил реакцию от zairkz в [iOSSimulator] TBitmap.Resize - иногда белый прямоугольник
Господа, спасибо за участие!
zairkz, упростил и немного подправил ваш код, вот что получилось:
procedure TSiteExchangerThread.RescalePhoto(const FileName: string); const DefaultHeight = 300; var Bitmap: TBitmap; Thumb: TBitmap; BSS: TBitmapCodecSaveParams; xScale: Double; newWidth, newHeight: integer; begin Bitmap := TBitmap.Create; try try Bitmap.LoadFromFile(FileName); if Bitmap.Height <> DefaultHeight then begin xScale := Bitmap.Height / DefaultHeight; newHeight := DefaultHeight; newWidth := Round(Bitmap.Width / xScale); Thumb := Bitmap.CreateThumbnail(newWidth, newHeight); // далее работаем с Thumb, а не с Bitmap try BSS.Quality := 90; Thumb.SaveToFile(FileName, @BSS); // все менеджеры и surface не нужны, они есть внутри Save-метода finally Thumb.Free; end; end; except DeleteFile(FileName); raise; end; finally Bitmap.Free; end; end; Кстати, весьма удивился, что результат получился нужный: TBitmap.Resize использует тот же самый CreateThumbnail. Единственное отличие - в Resize-методе используется Assign получившегося thumb-а в себя же. А вот в самом assign какие-то непонятные манипуляции со счетчиками ссылок FImage. Имхо, именно здесь и возникает проблема с белым прямоугольником, ибо все остальное - 1:1 уже используемое в методах TBitmap
-
kami получил реакцию от antarey в Parallel Library на одно процессорных компах
не будет*. Планировщик потоков - штука очень умная.
*При условии, что Ваш код не глючит сам по себе.
-
kami получил реакцию от zairkz в Как скрыть MultiView на определенном табе или форме?
Ну, в качестве костыльного решения могу предложить менять MultiView.DrawerOptions.TouchAreaSize на 0.
Это должно убрать появление MultiView при слайде пальцем от левого края экрана. А при активации другой закладки возвращать значение по умолчанию.
-
kami отреагировална Brovin Yaroslav в Сообщения чата в виде сообщений в iphone.
Добрый день,
Я бы взял TScrollBox для контейнера сообщений. Каждое сообщени представил в виде TLabel с вашим стилем в виде облаков TLabel поместил в TLayout и внутри него выравнивал бы по правому или левому краю. А сами TLayout выравнивал бы по верху.