Anatoliy
-
Постов
176 -
Зарегистрирован
-
Посещение
Активность репутации
-
Anatoliy отреагировална ruslan в Освобождение памяти TListViewItem
при Add тебе возвращается указатель(!) на новый итем.
смотри TListViewItems.AddItem(Index: Integer) в FMX.ListView
в TListViewItems.Delete(Index: Integer) вызывается FreeAndNil итема
а вот в TListViewItems.Clear просто чистится TList<TListViewItem>.
как известно TList это просто список указателей. так что сама память при ListView.Items.Clear как я понимаю не освободится.
как альтернатива:
while ListView.Items.Count > 0 do
ListView.Items.Delete(0);
-
Anatoliy отреагировална fidel42rus в переходпо ссылке с push уведомления
Всем привет)
Ситуация следующая, написал сервер на php, написал программу в delphi 10.2 tokyo, пуши выводит как надо, но не могу понять как сделать чтобы при нажатии на push уведомление осуществлялся переход по заданному URL, а не в само приложение. перелистал множество сайтов но толком ничего не нашел. Delphi не совсем моя среда, язык легкий, но обьемный не смог сам разобраться. Прошу вашей помощи.
Если кому-то помогу скину скрипты php сервера, количество клиентов не ограничено.
-
Anatoliy отреагировална ENERGY в Рабочее место для IOS разработки
Необходимый минимум -
iPhone или iPad. iPhone нужен от 5s и выше. 5 уже не пойдет, т.к. 32 битный.
100$ - купить сертификат разработчика у Apple.
MacOS можно запускать на виртуальной машине, готовые образы Vmware, с установленой системой, есть на рутрекере. Для работы нужен реальный процесор Intel, с AMD не пойдет.
Настройка всего этого может занять пару дней, а то и больше.
-
Anatoliy отреагировална Alex7wrt в Android. Форма не на весь экран по вертикали.
Уточнение: после обновления до MIUI 10 снова появилась черная полоса снизу. При этом в сторонних приложениях ее не наблюдалось. Следовательно, приведенное выше решение неполноценно.
Решение: добавить строку android:resizeableActivity="true" в секцию Activity
<?xml version="1.0" encoding="utf-8"?> <!-- BEGIN_INCLUDE(manifest) --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="%package%" android:versionCode="%versionCode%" android:versionName="%versionName%" android:installLocation="%installLocation%"> <!-- This is the platform API where NativeActivity was introduced. --> <uses-sdk android:minSdkVersion="%minSdkVersion%" android:targetSdkVersion="%targetSdkVersion%" /> <%uses-permission%> <uses-feature android:glEsVersion="0x00020000" android:required="True"/> <application android:persistent="%persistent%" android:restoreAnyVersion="%restoreAnyVersion%" android:label="%label%" android:debuggable="%debuggable%" android:largeHeap="%largeHeap%" android:icon="%icon%" android:theme="%theme%" android:hardwareAccelerated="%hardwareAccelerated%"> <%application-meta-data%> <%services%> <!-- Our activity is a subclass of the built-in NativeActivity framework class. This will take care of integrating with our NDK code. --> <activity android:name="com.embarcadero.firemonkey.FMXNativeActivity" android:label="%activityLabel%" android:resizeableActivity="true" android:configChanges="orientation|keyboard|keyboardHidden|screenSize" android:launchMode="singleTask"> <!-- Tell NativeActivity the name of our .so --> <meta-data android:name="android.app.lib_name" android:value="%libNameValue%" /> <meta-data android:name="android.max_aspect" android:value="2.1" /> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <%activity%> <%receivers%> </application> </manifest> <!-- END_INCLUDE(manifest) -->
-
Anatoliy отреагировална Евгений Корепов в Ошибка QuotedStr
http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.SysUtils.QuotedStr
Возможно : "Примечание. При работе с многобайтовыми системами символов ( MBCS) вместо этого используйте AnsiQuotedStr ." ?
-
Anatoliy отреагировална ulansaran в Ошибка QuotedStr
В общем ошибка остается! С типами полей у меня всё нормально, было работоспособное приложение до перехода на Rad Studio 10.2 Tokyo . Ничего нигде не менял! Решил вместо фильтра с QuotedStr использовать SQL-запросы для поиска человека по фамилии:
s:=Edit5.Text;
FDQuery.SQL.Text:='select * from CHILD where CHILDFAM=(:CHILDFAM)';
FDQuery.ParamByName('CHILDFAM').AsString:=s;
FDQuery.Open;
Так всё работает!
Всем спасибо за поддержку!
-
Anatoliy отреагировална krapotkin в Ошибка QuotedStr
для начала вообще просто строку написать хардкодом, без переменных
'CHILDFAM=''значение'' '
потом еще 2 раза проверить тип поля
-
Anatoliy отреагировална Barbanel в Ошибка QuotedStr
Ошибка "Type mismatch" означает несоответствие типов.
Либо фильтр неправильно настроен, либо поле имеет другой тип.
Если поле всетаки строковое - посмотрите тип поля (String/WideString) и кодировку, если указана.
Посмотрите также, что возвращает источник данных (query или что у вас источником является) по по этому полю.
PS еще можно писать так:
Child.Filter := 'CHILDFAM=' + s.QuotedString;
-
-
Anatoliy отреагировална Alex7wrt в OnMouseEnter срабатывает при каждом перемещении мыши по контролу
Так происходит потому что вы делаете проверку с помощью ShowMessage. При этом панель теряет фокус и любое движение мыши над ней снова вызывает OnMouseEnter.
Проверяйте так: добавьте на форму компонент TText и в обработчике панели OnMouseEnter напишите:
text1.Text:=text1.Text+#13+'asdasd'; Вы увидите, что событие срабатывает корректно
-
Anatoliy отреагировална Barbanel в Что быстрее Rectangle или TButtonStyleObject, TText или TButtonStyleTextObject
Вы знаете, я лично такие замеры не производил.
Я пользовался здравой логикой: поменьше анимаций, и поменьше объектов в стиле.
Нет, вы не один.
Если вы действительно хотите получить ответ на свой вопрос - сделайти сами такой тест производительности.
Накидайте в стиль то что вы описали, создайте 100500 объектов и замерьте скорость.
Сообщество скажет вам спасибо, да и вы получите профит!
-
Anatoliy отреагировална kami в Плавный Swipe вниз
Или возьмите TListView, у него есть PullToRefresh... или смотрите, как оно в нем сделано (в TListViewBase)
-
-
Anatoliy отреагировална Superator в Кириллица в ListView выводится в виде вопросительных знаков
Всем спасибо. Это все моя невнимательность. Ошибка крылась в синтаксисе php файла, а не в delphi. Не указал $mysqli->set_charset("utf8").
-
Anatoliy отреагировална Евгений Корепов в скачать файл
Ну а в тему - если это винда, то можете попробовать открыть ссылку на файл с помощью ShellExecute, если андроид, то запустить активити как тут https://stackoverflow.com/questions/49200962/delphi-10-2-how-can-i-open-a-url-in-androids-web-browser-from-my-application (вместо TJIntent.JavaClass.ACTION_VIEW можете попробовать использовать другие экшены). В ios не подскажу...
-
Anatoliy отреагировална ENERGY в OnVirtualKeyboardShown
У формы есть свойство Focused.
MyControl := TControl(Focused.GetObject);
-
Anatoliy отреагировална FREEFAR в Кнопка Done
Я сделал проще. Убрал эту кнопку и ее панель. Повесил над клавой свою панель и все
-
Anatoliy отреагировална ENERGY в Кнопка Done
У формы есть событие OnVirtualKeyboardHidden, оно срабатывает когда юзер нажимает Done и клавиатура скрывается.
Также, срабатывает событие OnExit компонента (напр TEdit).
-
Anatoliy отреагировална krapotkin в Кириллица в ListView выводится в виде вопросительных знаков
что вы путаете человека. если с сервера приходит в UTF-8, все работает замечательно без всяких переделок
автор, можно URL, куда обратиться с http-запросом ?
тут на слово не верят )))
-
Anatoliy отреагировална Евгений Корепов в Не работает OverWrite в Deployment
Или в среде, меню Run, Parameters, поле Parameters - добавьте туда -cleaninstall, при запуске на устройстве будет производиться чистая установка.
-
Anatoliy отреагировална x11 в Prototyping: from Vision to UX Design - FMX Stencils - Free Tool
FireMonkey (FMX) Stencils - Free Tool
Design Beautiful Apps for RAD Studio, Delphi, and C++Builder
https://community.embarcadero.com/blogs/entry/prototyping-from-vision-to-ux-design
https://www.embarcadero.com/free-tools/firemonkey-stencils
-
Anatoliy отреагировална Andrey Efimov в Что лучше: TIdHttp или TNetHTTPClient?
Если не изменяет память, то:
Компонент TNetHttpClient это просто обёртка над THttpClient. В этой обёртке и реализована асинхронность, посредством создания отдельного потока. Если по каким-то причинам не хочется использовать TNetHttpClient с асинхронным режимом, то берёте THttpClient и запихиваете в отдельный поток.
На 100% точность не претендую, но когда стоял вопрос, что использовать в одном из приложений, выбор был сделан в пользу TNetHttpClient, т.к. уже всё, что нужно написали за нас (только использовать студию не ниже Berlin, т.к. в Seattle были какие-то проблемы с асинхронностью)
p.s. Если приложение для мобильных устройств - то юзайте TNetHttpClient (THttpClient). С indy компонентами на моб. устройствах проблемы.
-
Anatoliy отреагировална WebPuper в Не работает OverWrite в Deployment
Либо прямо в коде сделать временную процедуру для этого дела с DeleteFile ? (я так делаю)
-
Anatoliy отреагировална WebPuper в [Android] Событие FormCloseQuery не останавливает закрытие приложения
Решил через анализ события FormKeyUp
if(Key == vkHardwareBack) Key = 0;
-
Anatoliy отреагировална gonzales в Сортировка элементов Скроллбокса
Решил вот так, если вдруг кому надо
procedure TForm1.SortGroup; var i, j: integer; elementscount: byte; begin elementscount := Form1.RoomsScrollBox.Content.Children.Count; for i := 1 to elementscount do for j := 0 to elementscount - 1 do begin if (Form1.RoomsScrollBox.Content.Children.Items[j] as TEssence).SortIndex = i then begin (Form1.RoomsScrollBox.Content.Children.Items[j] as TEssence).Position.Y := 10000; break; end; end; end; соответственно элементы с самым низким индексом будут наверху. Единственное ограничение, что индексы элементов должны быть подряд, без пропусков. Это не очень удобно, надо будет переделать