Перейти к содержанию
Fire Monkey от А до Я

Anatoliy

Пользователи
  • Постов

    176
  • Зарегистрирован

  • Посещение

Активность репутации

  1. Like
    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); 
  2. Like
    Anatoliy отреагировална fidel42rus в переходпо ссылке с push уведомления   
    Всем привет)
    Ситуация следующая, написал сервер на php, написал программу в delphi 10.2 tokyo, пуши выводит как надо, но не могу понять как сделать чтобы при нажатии на push уведомление осуществлялся переход по заданному URL, а не в само приложение. перелистал множество сайтов но толком ничего не нашел. Delphi не совсем моя среда, язык легкий, но обьемный не смог сам разобраться. Прошу вашей помощи.
     
    Если кому-то помогу скину скрипты php сервера, количество клиентов не ограничено. 
  3. Like
    Anatoliy отреагировална ENERGY в Рабочее место для IOS разработки   
    Необходимый минимум -
    iPhone или iPad. iPhone нужен от 5s и выше. 5 уже не пойдет, т.к. 32 битный. 
    100$  - купить сертификат разработчика у Apple.
    MacOS можно запускать на виртуальной машине, готовые образы Vmware, с установленой системой, есть на рутрекере. Для работы нужен реальный процесор Intel, с AMD не пойдет.
    Настройка всего этого может занять пару дней, а то и больше.  
  4. Like
    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) -->  
  5. Like
    Anatoliy отреагировална Евгений Корепов в Ошибка QuotedStr   
    http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.SysUtils.QuotedStr
    Возможно : "Примечание. При работе с многобайтовыми системами символов ( MBCS) вместо этого используйте AnsiQuotedStr ." ?
  6. Like
    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;
    Так всё работает!
    Всем спасибо за поддержку!
  7. Like
    Anatoliy отреагировална krapotkin в Ошибка QuotedStr   
    для начала вообще просто строку написать хардкодом, без переменных
    'CHILDFAM=''значение'' '
    потом еще 2 раза проверить тип поля 
  8. Like
    Anatoliy отреагировална Barbanel в Ошибка QuotedStr   
    Ошибка "Type mismatch" означает несоответствие типов.
    Либо фильтр неправильно настроен, либо поле имеет другой тип.
    Если поле всетаки строковое - посмотрите тип поля (String/WideString) и кодировку, если указана.
    Посмотрите также, что возвращает источник данных (query или что у вас источником является) по по этому полю.
    PS еще можно писать так:
    Child.Filter := 'CHILDFAM=' + s.QuotedString;
  9. Like
    Anatoliy отреагировална dnekrasov в FMX Form   
    Не за что.
    Маленькое уточнение - это хорошо работает только если один монитор. Вообще правильнее эмулировать максимизацию окна следующим образом:
    SetBounds(Screen.DisplayFromRect(Bounds).WorkAreaRect);  
  10. Like
    Anatoliy отреагировална Alex7wrt в OnMouseEnter срабатывает при каждом перемещении мыши по контролу   
    Так происходит потому что вы делаете проверку с помощью ShowMessage. При этом панель теряет фокус и любое движение мыши над ней снова вызывает OnMouseEnter.
    Проверяйте так: добавьте на форму компонент TText  и в обработчике панели OnMouseEnter напишите:
    text1.Text:=text1.Text+#13+'asdasd'; Вы увидите, что событие срабатывает корректно
  11. Like
    Anatoliy отреагировална Barbanel в Что быстрее Rectangle или TButtonStyleObject, TText или TButtonStyleTextObject   
    Вы знаете, я лично такие замеры не производил.
    Я пользовался здравой логикой: поменьше анимаций, и поменьше объектов в стиле.
    Нет, вы не один.
    Если вы действительно хотите получить ответ на свой вопрос - сделайти сами такой тест производительности.
    Накидайте в стиль то что вы описали, создайте 100500 объектов и замерьте скорость.
    Сообщество скажет вам спасибо, да и вы получите профит!
  12. Like
    Anatoliy отреагировална kami в Плавный Swipe вниз   
    Или возьмите TListView, у него есть PullToRefresh... или смотрите, как оно в нем сделано (в TListViewBase)
  13. Like
    Anatoliy отреагировална krapotkin в AniИндикатор на винде   
    Berlin. No updates



  14. Like
    Anatoliy отреагировална Superator в Кириллица в ListView выводится в виде вопросительных знаков   
    Всем спасибо. Это все моя невнимательность. Ошибка крылась в синтаксисе php файла, а не в delphi. Не указал $mysqli->set_charset("utf8").
  15. Like
    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 не подскажу...
  16. Like
    Anatoliy отреагировална ENERGY в OnVirtualKeyboardShown   
    У формы есть свойство Focused. 
    MyControl := TControl(Focused.GetObject);
  17. Like
    Anatoliy отреагировална FREEFAR в Кнопка Done   
    Я сделал проще. Убрал эту кнопку и ее панель. Повесил над клавой свою панель и все
  18. Like
    Anatoliy отреагировална ENERGY в Кнопка Done   
    У формы есть событие OnVirtualKeyboardHidden, оно срабатывает когда юзер нажимает Done и клавиатура скрывается.
    Также, срабатывает событие OnExit компонента (напр TEdit).
  19. Like
    Anatoliy отреагировална krapotkin в Кириллица в ListView выводится в виде вопросительных знаков   
    что вы путаете человека. если с сервера приходит в UTF-8, все работает замечательно без всяких переделок
    автор, можно URL, куда обратиться с http-запросом ?
    тут на слово не верят )))
  20. Like
    Anatoliy отреагировална Евгений Корепов в Не работает OverWrite в Deployment   
    Или в среде, меню Run, Parameters, поле Parameters  - добавьте туда -cleaninstall, при запуске на устройстве будет производиться чистая установка.
  21. Like
    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
     

  22. Like
    Anatoliy отреагировална Andrey Efimov в Что лучше: TIdHttp или TNetHTTPClient?   
    Если не изменяет память, то:
    Компонент TNetHttpClient это просто обёртка над THttpClient. В этой обёртке и реализована асинхронность, посредством создания отдельного потока. Если по каким-то причинам не хочется использовать TNetHttpClient с асинхронным режимом, то берёте THttpClient и запихиваете в отдельный поток.
    На 100% точность не претендую, но когда стоял вопрос, что использовать в одном из приложений, выбор был сделан в пользу TNetHttpClient, т.к. уже всё, что нужно написали за нас (только использовать студию не ниже Berlin, т.к. в Seattle были какие-то проблемы с асинхронностью)
     
    p.s. Если приложение для мобильных устройств - то юзайте TNetHttpClient (THttpClient). С indy компонентами на моб. устройствах проблемы.
  23. Like
    Anatoliy отреагировална WebPuper в Не работает OverWrite в Deployment   
    Либо прямо в коде сделать временную процедуру для этого дела с DeleteFile  ? (я так делаю)
  24. Like
    Anatoliy отреагировална WebPuper в [Android] Событие FormCloseQuery не останавливает закрытие приложения   
    Решил через анализ события FormKeyUp  
     if(Key == vkHardwareBack) Key = 0;  
     
  25. Like
    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; соответственно элементы с самым низким индексом будут наверху. Единственное ограничение, что индексы элементов должны быть подряд, без пропусков. Это не очень удобно, надо будет переделать
×
×
  • Создать...