Akad

Пользователи
  • Публикаций

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

  • Посещение

  • Победитель дней

    2

Весь контент Akad

  1. Мммм... Поспорим? Значит цикл выполняется. Просто у Rad Studio не все "ходы на мобильных платформах записаны". По крайней мере на 10.2 встречал, что крусор отладчика или прыгает взад-вперед, или пропускает небольшие блоки. Он есть в коде, рядом с циклом. Его длинна - это параметр цикла. Как может не иметь к нему отношения - для меня загадка. Это реально или ваша фантазия? Стоит это значение смотреть в какой-то отдельной переменной. Цикловые переменные шанс корректно увидеть - это 1/2 или 2/3.
  2. Что такое CartList? Зачем High использовать (от слова вообще)? Что такое rz? Если for 0 to 0, то 1 раз цикл выполнится. P.S. Почему бы на форумах не перестать считать всех телепатами?
  3. Что невозможно сделать на Delphi для Android?

    2 камня преткновения:synchronize - глючито что пц на 10.х и webbrowser так же падает с вероятностью ~1/3 при form.free на тех же самых версиях. Поэтому что платно, что бесплатно - один хрен не работает. Имхо. У дельфи есть будущее, если сменятся продакт менеджеры. На кого-то, кто разбирается в проблеме. Слишком много развилось хомячков, кто начитается хабра и ко и мнит себя мега-умным-гением.
  4. Запомнить фокус, показать форму, вернуть фокус?
  5. Ни где это не указано. Не надо. Тема в общем форуме, ни в названии, ни в теле поста этого нет. Не умеешь задавать вопросы, не надо тра-ля-ля разводить. Не ко мне вопрос, а к разработчикам ОС. Если у тебя не правильно организована работа твоей поделки, то ни кто кроме тебя в этом не виноват. Не хочешь помощи - что ты вообще на форуме забыл? Иди на какую-нибудь помойку типа хабра, описывай там как надо софт писать.
  6. Есть смысл переходить с 10.2.2 на 10.2.3? Народ тут писал, что студия вылетать стала на ровном месте. А судя по чейнж логу ни одного серьёзного бага поправлено не было. Во-первых интервал в 1мс для таймера не достижим без специальной настройки ОС. Реально события будут приходить 10-23мс. И это при условии, что программа больше ничего не делает. Это не зависит от дельфи, а зависит от винды. Во-вторых "накладные расходы" таймера при таком обновлении - это основная статья расходов процессора. И вообще так писать - это просто жесть. Любая анимация - это 1000/60мс т.е. частота обновления среднестатистического монитора. И то лучше 1000/30 или 1000/25. Меньше плавности на чуть, зато будет реально работать. Если нужна не анимация, а рассчёт чего-то - это надо выносить в отдельный поток. Если речь идёт про андроид/яось, то кроме нескольких деталей в целом ситуация не меняется. Писать так нельзя.
  7. Парсинг XML файла

    Сохранил все (с). Не соберётся с ходу, так как тянет LACore.Log. Можно убрать полностью или заменить на своё. LACore.XML.pas.zip
  8. record можно сохранять в файл через blockwrite, если там только атомарные элементы. String имеет сложную структуру, и этот фокус не прокатит. Так что либо сериализовать/десериализовать структуру через RTTI и потом сохранить в бинарный/XML... файл, или ручками в базу/ini/StringList... в общем в более высокоуровневую запись.
  9. THTTPClient асинхронность

    Можно по подробнее, что за проблемы? В руках 2 телефона на 6 и 1 на 7.1 - ни где у меня с клиентом проблем нет.
  10. Парсинг XML файла

    Если использовать структурированный xml, то да, проблем не будет. Но если на каждом уровне вложений вообще не знаешь что там есть, но надо пробежаться по всем нодам, и собрать определённую информацию, то начинается просто АД. У меня парсер, позаимствованный и чуть допиленный у Light Alloy - вот это вещь. Всё быстро, чётко, не единого эксепшена, поиск через SameText, и прочие вкусняшки. На вкус и цвет фломастеры разные.
  11. THTTPClient асинхронность

    Ээээ...Что бы избавиться - должна быть альтернатива. Для сети в дельфи есть только комплект инди компонент. Они нормально работают с шифрованием и парой десятков протоколов. Альтернатив им нет ни стандартных, ни альтернативных. Или я что-то пропустил? THTTPClient/THTTPServer - это даже не смешно. Особенно последний - который половину соединений пропускает при хоть какой-то нагрузке. Клиенту после этих фокусов сервера доверия нет. И смысл только его использовать, даже если он работает болемешно, если есть инди с единой архитектурой и базовыми структурами данных? Где тебе сразу и tcp и udp и smtp и так далее? И всё в едином стиле Ни кого не хотел обидеть. Я тоже процентов на 40 дельфи программист. Последний мой проект (пока) на дельфи целиком. А это сервер и клиенты под разными ОС. Но достаточно зайти на любой ресурс где "тусят крутые, всезнающие хомячки" типа хабра, и послушать их мнение про Delphi в целом, и программистов, которые пишут на этом языке в частности. При всём идиотизме их заявлений, рациональное зерно там можно проследить. И если весь мир делает в архитектуре приложений определённые паттерны, то наверно не спроста, и незачем делать по другому.
  12. THTTPClient асинхронность

    TIdHTTP - попробуйте асинхронно что-то сделать. Только в потоке. Все другие indy - тоже самое. Остаются всякие страшные TcpClient1 которые из версии в версию то работаю то не работаю. Причём http - ручками. Ещё то удавольствие. Сейчас под всеми платформами, что мне известны продвигается синхронный метод+callback. Что диез под виндой, что RxJava/Retrofit под андроид и т.д. Если используете что-то не традиционное - ни каких проблем. Но зачем это советовать другим? Поддерживать стереотип, что программист дельфи - быдлокодер-неформал?
  13. Что невозможно сделать на Delphi для Android?

    Ждём лета(?) и закрытого тестирования. И потом будем посмотреть. Сейчас как я понял говорить о чём-то совсем рано.
  14. Парсинг XML файла

    Стандартные парсеры что xml, что json от эмбы абсурдно усложнены, не стабильны и постоянно плюются эксепшенами. Лучше использовать что-то стороннее, нормальное. На гитхабе полно реализаций.
  15. THTTPClient асинхронность

    С асинхронностью все печально. Ну то есть использовать можно, но отгрести всевозможных проблем на машинах пользователей тоже... Поэтому лучше отдельный поток и callback. Причём эта практика самая распространённая на всех платформах и api. Synchronize, а дальше делай что хочешь. В XE 10.x.x будут проблемы в некоторых случаях, но на более ранних всё работало отлично.
  16. THTTPClient асинхронность

    Вы реально используете такой код? Небось на 3G соединениях ещё не тестировали... Жуть. (почти) все обращения к api потоко-независимы. А вот если одновременно из двух потоков сделать memo1.lines.add(..) то будет в лучшем случае бред в результате, в худшем - AV.
  17. Кроме TMS - всё мимо. devart - это работа с бд напрямую, что само посебе является шизофренией. HTML - это ну очень узкая область применения. А альфаконтроллс - единственная нормальная возможность скины натягивать бесплатно. Причём отлично работающая. Да и пара компонент там удобных есть. По остальным - как допилят - можно будет что-то говорить. Сейчас этого нет. Чушь, что есть wine, под которым даже некоторые игры требующие DX11 идут без проблем, а уж поделка на win api из 90-х и подавно? Ну-ну.
  18. Где? Есть только куча однотипной дряни, типа расширенного 10 разными людьми ListView, глючащих по разному у разных авторов. Где девэкспресс или альфаконтроллс, где хотя бы простейший ричедит? Пока только 1 серьёзный производитель выпустил что-то под fmx, на сколько мне известно. P.S. Смысл crossvcl без мобильных платформ не понятен. На линуксе и маке есть вайн. Точка.
  19. 1. Тормоза. Старт до логина, т.е. до первого практически пустого экрана от 3 сек. на телефоне типа S8 до 10-12...сек на менее "крутых". На вёдрах с 512 оперативки и параллельным существованием какого-нибудь монстра типа whatsapp программу можно даже не пытаться запускать. Там каждое действие обрабатывается секунд по 3-5. 2. Бесконечные глюки UI. Даже на тестовом асусе периодически ловлю просто белый экран, который не оживает. А уж на китайцах курьеров ТАКОЕ происходит, что вообще... 3. ОЧЕНЬ странная работа сервиса, который банально отсылает на сервер текущее местоположение курьера. Даже переписав его почти полностью на яве - работает через пень-колоду. Ну и стандартные глюки: не работа некоторых компонент, которые приходится заменять другими, глюки событий тача и т.д. Я тоже пока не начал внедрение, думал что как всё круто сейчас на базе существующего кода для win клиента заделаю приложение для курьеров. Писал я его действительно дня 2-3. А потом началась отладка.... Потеряв недели 3+ я понял, что быстрее с нуля написать на чём-то нативном, чем заставить работать ЭТО. Следующем, судя по всему, будет замена FMX на VCL в win клиенте. Причём на что-то стабильное типа XE2-XE4. Но это пока обсуждается. Поэтому конечно FGX Native интересен, но я как-то скептично настроен. Надеюсь, что я ошибаюсь, и продукт выйдет классный.
  20. Во-первых это очень важно людям с 4Гб флешкой на борту. А во-вторых не может 50Мб программа быстро стартонуть. Физически не может. Вебинар интересен только в случае, если FGX Native позволит продукт в продакшен пускать. Я вчера начал своё курьерское приложение на котлине переписывать, так как FMX мобильный - это просто ужас, который Эмба в какое-то адекватное состояние выводить не собирается, судя по последним 5 версиям студии. Так что хочется понимания, что это за продукт, а не очередную презенташку, в которой всё шикарно. Понятно, что на вебенаре будут обсуждаться только плюсы. Так что он не интересен по определению.
  21. А есть какие-нибудь демки? Главное, что бы хеловорд apk не весил 5-10Мб и не тормозил на старых аппаратах безбожно, как FMX. И что с сервисами под андроид?
  22. WebBrowser Печать

    В HTML надо добавить что-то типа <script type="text/javascript"> function Printt(){ window.print(); }; </script> И потом просто вызвать этот ява код. TMSFMXWebBrowser1.ExecuteJavascript('Printt();'); Если страница грузится с интернета полностью, то естественно надо отредактировать её с учётом html синтаксиса. Так же стоит убрать весь мусор со страниц и повысить версию браузеру для лучшей совместимости: a := TRegistry.Create; a.RootKey := HKEY_CURRENT_USER; a.OpenKey('Software\Microsoft\Internet Explorer\PageSetup',true); a.WriteString('footer',''); a.WriteString('header',''); a.CloseKey; a.OpenKey('Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION',true); a.WriteInteger('Client1.exe',$2af9); a.CloseKey; a.Free; Где Client1,exe - имя вашего exe. P.S. И лучше использовать браузер от TMS, проблем под 10.2.х на порядок будет меньше.
  23. WebBrowser Печать

    Самое простое - вызвать ява скрипт с window.print();
  24. Это примерно как забыть о том, как работает функция, что где править. Естественно забудет, а потом вспомнит, когда менять что-то будет в этом месте. Вдеть в начале процедуры прямо сразу cooltimer.Enabled := false; наведёт на мысли. Всегда много путей. Какой-то определённо проще. Но я не пишу приложения, которые лагают, которые нажал на кнопку рутинного действия и сидишь, ждёшь результат. Более того моё текущее приложение (клиент-серверное, с огромными объёмами данных от БД) ввобще не лагает, даже на 3G модеме, на котором параллельно ещё качается торрент. То есть для меня важно, что бы пользователь мог работать нормально. Единственное о чём я сожалею, что всё завязано на FMX. От него "прилетает" безумное количество мелких и не очень глюков, отсутствие работающих скинов и так далее. Но это уже к теме не относится... Я в текущий момент из интерфейса по скорости и удобству выжал уже почти максимум в том числе и из-за Application.ProcessMessages.
  25. Так же плохой для многих стиль - goto, break и continue. А многим коллегам ума не хватает даже использовать free /release и глобальные переменные, для них созданы всякие диезы с явами. И дальше что? Подстраиваться под всех, не используя возможности полноценного языка? Application.ProcessMessages надо просто использовать с осторожностью. Таймеры отключать, за нажатиями на закрытие форм и пр. следить. Если есть какое-то долгое вычисление, которое не предсказуемо через какое время закончится, а таблицу уже начали обновлять, то милое дело запустить его в другом потоке, параллельно в GUI проигрывая анимашку. Другие варианты реализаций - это очень сложно, и интерфейс получится не отзывчивым. Splash с прогрессом надо делать только так, если максимальной скорости загрузки хотим. Вообще много областей применений есть у Application.ProcessMessages. Надо помнить об основных нюансах, иначе будут проблемы.