krapotkin
Пользователи-
Постов
2 187 -
Зарегистрирован
-
Посещение
-
Победитель дней
209
Весь контент krapotkin
-
возможно потому что это слишком быстро, или нужно просто видеть код целиком. потому что в начале все висит при создании form1 а потом запускается поток. без полного кода и отладки тут нечего сказать, кроме упрощения вот это точно бессмысленно полностью SplashForm.StartUpLabel.text := 'Старт программы'; ... SplashForm.Close;
-
зачем тут utf8tostring оно и так Unicode чарсет нужно указывать в запросе. в заголовках. тут никаких свойств запроса не заполнено кроме того, зачем вам TNetHttpClient. Это компонент - обертка класса THttpClient. Им проще и пользоваться.
- 2 ответа
-
- русские буквы
- thttpclient
-
(и ещё 1 )
C тегом:
-
Upd. При Form1Close видимо нужно делать Application.terminate
-
а зачем тогда создавать form1? может, дать потоку отработать, а на выходе он ее и создаст? кроме того, я не уверен, что application.MainForm := Form1; уже в процессе работы что-то там изменит. да еще и в андроиде. раньше это точно не работало... вообще понятие главной формы на андроид нафиг не сдалось. мое видение - 1. создать обычным образом SplashForm. Она пусть и будет главной. неважно 2. запустить поток, 3. на выходе поток создает и показывает следующую форму. (при этом все равно будет тормозок на время создания формы)
-
интересно, а какая форма у вас получается главной? и где расположен код SplashForm.LoadProgramm;
-
вы просто без разделителей склеиваете три разных JSON-массива вам бы каждый из них описать отдельно. да и вообще принято логически законченные участки кода выделять в отдельные функции function GetValuesAsJson($query) { ..... } тогда будет например '{"Arr1":'. GetValuesAsJson($query1). ', "Arr2":'.GetValuesAsJson($query2).', "Arr3":'.GetValuesAsJson($query3).'}' ну и разбор полученного объекта например с помощью XSuperObject. Примеры есть на офсайте https://github.com/onryldz/x-superobject
-
предположу что ][ - это точно не JSON
-
для рисования на VCL я использовал библиотеку Asphyre, которая задействовала DirectX. Никаких проблем со скроллом/масштабированием не было. На FMX такой же DirectX и рисование карты будет абсолютно таким же шустрым. Я все равно не понимаю суть проблемы. Там главная проблема рисование карты подложки. Она обычно существует в виде тайлов. Эти тайлы фиксированного масштаба. Выбираем их и копируем на битмап, потом поверх прорисовываем все собственные слои данных. Я делал битмап в 4 раза больше окна. Это позволяло не перерисовывать всё, а только динамические слои. И к скроллингу никаких абсолютно претензий не было. Наоборот, это работало в разы быстрее чем в браузере...
-
и тогда никто ничего не сдвигал. просто говорил, какой символ где на экран вывести картинки были из аппаратного знакогенератора 80*40*16 цветов невелика мудрость ))) я так и не пойму, чем отличатеся копирование битмапа на пиксел вверх от скроллинга...
-
хм я прямо хочу посмотреть, как можно нарисовать линию в пиксель "хоть чем", учитывая, тут должны быть и надписи и иконки едущего транспорта и отображение линий маршрута а вот кусок картинки (карты) шириной в пиксель (и в 1000 пикселей тоже) видеокарта копирует со скоростью света))
-
функция скроллинга чего ? видеокарта постоянно отрисовывает свой буфер и даже если она сдвинет его на 1 пиксель какой-то магией, то недостающий пиксел с другой стороны кто нарисует?? вы рисуете все на битмап, который чуть больше окна просмотра. окно сдвигается. битмап не меняется. потом, когда мы подошли к границам битмапа, отрисовываем новое поле карты а поверх все равно НЕПРЕРЫВНО перерисовываются новые положения транспорта
-
TIdTime is a client implementation of the Time Protocol as described in the Internet Standards document:RFC 868 - Time Protocol (http://www.rfc-editor.org/rfc/rfc868.txt)Time is a simple protocol for synchronizing time on a local network. For a time protocol with higher accuracy over several networks, use TIdSNTP. To retrieve the current date and time in human-readable form, use TIdDayTime.Please note that the Time Protocol in its current form cannot handle most dates after the year 2035. This limitation is stated in RFC 868.
-
если даже не использовать NTP При каждом HTTP запросе в ответе приходят заголовки. Например Connection: keep-alive Strict-Transport-Security: max-age=0 Content-Encoding: Content-Type: text/html; charset=utf-8 Date: Fri, 05 Apr 2019 07:02:28 GMT Server: nginx
-
Я десять лет занимался такой диспетчерской в Екатеринбурге. На js карты не вся функциональность удобно влазит. И производительности не хватает для больших объемов. Хотя если просто показать кто где едет, конечно норм. Есть на сайте ettu.ru
-
Раньше, когда телевизоры были ламповыми, многие "чинили" их, долбая по корпусу до тех пор, пока немного окислившиеся ножки лампы чуть смещались в цоколе, контакт на недолгое время восстанавливался, и телек опять показывал. Но даже они не долбают севременные плоские панели. сама задача видеть "пробегание" в label даже в Windows решается не процессингом всех сообщений, а простым Form.Update. Или Label.Update. Правило никто не отменял - если вы делаете что-то у чего есть "срок выполнения", ваша задача должна решаться потоками. что еще-то непонятно? ProcessMessages это только и исключительно костыль для ленивого программиста. Плохая практика рано или поздно всегда приводит к выстрелу в ногу. Подробнее я писал об этом тут. http://www.cyberforum.ru/blogs/469693/blog4909.html Могу привести пример очень большой программы, которая используется в одной федеральной сети, и сейчас там идет авральная работа - вдруг появились ошибки и зависания. А вызваны они таким же отношением к архитектуре. Там тоже наваяли ProcessMessages и других "быстрых решений" и сейчас расплакиваются по полной. А это правда ОЧЕНЬ большая программа... Возвращаясь к началу моего пламенного спича - в Андроид-программе после совмещения главного потока с потоком JVM просто нет нужного вам механизма обработки сообщений, так что долбать кулаком бесполезно.
-
колом - это значит выполнение долгой операции в том же потоке. например sleep(1000) вы вернитесь в начало. там Processmessages стоит. оно знаете ли тоже отдельных потоков не запускает/ вопрос был чем заменить ProcessMessages а не как использовать потоки ответов на второй вопрос полно. и на этом форуме в том числе совсем недавно писал очередной тред
-
я искренне недоумеваю, почему у меня не "встает колом" ))) возраст видимо? public ind:integer; end; var fMainForm: TfMainForm; implementation {$R *.dfm} procedure TfMainForm.b1Click(Sender: TObject); begin ind := 0; tmr1.enabled := true; end; procedure TfMainForm.tmr1Timer(Sender: TObject); begin if ind=100 then tmr1.enabled := false else begin inc(ind); pb1.Position := ind; end; end;
-
неважно как работает таймер и мультимедийный он или нет ) главный поток рисовать все равно будет только в свободное время. если он у вас чем-то занят, то что хошь делай, будет тормозить имхо идея иметь функцию от времени все равно более здравая, чем приращение например...
-
сделали бы проект минимальный, выложили сюда, мы бы открыли на 10.3 и решили бы...