Перейти к содержанию
  • Регистрация

krapotkin

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

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

  • Посещение

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

    86

krapotkin стал победителем дня 14 мая

krapotkin имел наиболее популярный контент!

5 Подписчиков

Информация о krapotkin

  • Звание
    Продвинутый пользователь
  • День рождения 17.10.1970

Контакты

  • ICQ
    125417612

Информация

  • Пол
    Мужчина
  • Город
    Екатеринбург

Посетители профиля

1 828 просмотров профиля
  1. не надо вы должны передать в поток ссылки на то, что ДЕЙСТВИТЕЛЬНО нужно. Мемо, лейбл, прогрессбар. А форму - не нужно.
  2. TForm1 это чертежи автомобиля form1 это сделанный по этим чертежам экземпляр не странно, если в чертежах будет упоминаться не колесо автомобиля вообще, а колесо конкретного авто А666ААА77РУ ?
  3. "не надо никаких доп классов" и пошел спагетти-код) если задача не в три строки, то доп. класс - это отличный выбор в сторону ремонтопригодности. тем более под капотом происходит ровно то же самое @gonzales главное в классе потока это procedure Execute; override; вот ее то и нет... и вынос класса потока в отдельный модуль не даст вам ходить в form1, что несомненно, благо. глобальная переменная Client - зло Обращение к переменной Form1 в методе класса Tform1 - не меньшее зло procedure TForm1.ThreadTermProc(Sender:TObject); begin showmessage('ой всё'); end; procedure TForm1.Button1Click(...); var th:TClient; begin th := TClient.Create(true); th.pbar := ProgressBar1; th.OnTerminate:=TreadTermProc; th.Start; end; TClient=class(TThread) public pbar: TProgressBar; procedure Execute; override; end; procedure TClient.Execute; begin for i:=0 to xxxxxx do begin if i mod 1000 = 0 then begin Synchronize(procedure begin pbar.position := i; end); end; end; писал на коленке. не проверял
  4. для того, чтобы попробовать все опции, которые содержат слово Center, у вас ушло бы около 5 минут
  5. возможно потому что это слишком быстро, или нужно просто видеть код целиком. потому что в начале все висит при создании form1 а потом запускается поток. без полного кода и отладки тут нечего сказать, кроме упрощения вот это точно бессмысленно полностью SplashForm.StartUpLabel.text := 'Старт программы'; ... SplashForm.Close;
  6. зачем тут utf8tostring оно и так Unicode чарсет нужно указывать в запросе. в заголовках. тут никаких свойств запроса не заполнено кроме того, зачем вам TNetHttpClient. Это компонент - обертка класса THttpClient. Им проще и пользоваться.
  7. Upd. При Form1Close видимо нужно делать Application.terminate
  8. а зачем тогда создавать form1? может, дать потоку отработать, а на выходе он ее и создаст? кроме того, я не уверен, что application.MainForm := Form1; уже в процессе работы что-то там изменит. да еще и в андроиде. раньше это точно не работало... вообще понятие главной формы на андроид нафиг не сдалось. мое видение - 1. создать обычным образом SplashForm. Она пусть и будет главной. неважно 2. запустить поток, 3. на выходе поток создает и показывает следующую форму. (при этом все равно будет тормозок на время создания формы)
  9. интересно, а какая форма у вас получается главной? и где расположен код SplashForm.LoadProgramm;
  10. вы просто без разделителей склеиваете три разных JSON-массива вам бы каждый из них описать отдельно. да и вообще принято логически законченные участки кода выделять в отдельные функции function GetValuesAsJson($query) { ..... } тогда будет например '{"Arr1":'. GetValuesAsJson($query1). ', "Arr2":'.GetValuesAsJson($query2).', "Arr3":'.GetValuesAsJson($query3).'}' ну и разбор полученного объекта например с помощью XSuperObject. Примеры есть на офсайте https://github.com/onryldz/x-superobject
  11. предположу что ][ - это точно не JSON
  12. для рисования на VCL я использовал библиотеку Asphyre, которая задействовала DirectX. Никаких проблем со скроллом/масштабированием не было. На FMX такой же DirectX и рисование карты будет абсолютно таким же шустрым. Я все равно не понимаю суть проблемы. Там главная проблема рисование карты подложки. Она обычно существует в виде тайлов. Эти тайлы фиксированного масштаба. Выбираем их и копируем на битмап, потом поверх прорисовываем все собственные слои данных. Я делал битмап в 4 раза больше окна. Это позволяло не перерисовывать всё, а только динамические слои. И к скроллингу никаких абсолютно претензий не было. Наоборот, это работало в разы быстрее чем в браузере...
  13. и тогда никто ничего не сдвигал. просто говорил, какой символ где на экран вывести картинки были из аппаратного знакогенератора 80*40*16 цветов невелика мудрость ))) я так и не пойму, чем отличатеся копирование битмапа на пиксел вверх от скроллинга...
  14. хм я прямо хочу посмотреть, как можно нарисовать линию в пиксель "хоть чем", учитывая, тут должны быть и надписи и иконки едущего транспорта и отображение линий маршрута а вот кусок картинки (карты) шириной в пиксель (и в 1000 пикселей тоже) видеокарта копирует со скоростью света))
×
×
  • Создать...