Maximus
-
Постов
84 -
Зарегистрирован
-
Посещение
-
Победитель дней
9
Сообщения, опубликованные Maximus
-
-
-
Сломали они вторым патчем ограничения с записями. Либо откатывать его, либо убирать ограничения https://quality.embarcadero.com/browse/RSP-30073
Видимо хотели починить это https://quality.embarcadero.com/browse/RSP-28761
-
-
-
15 минут назад, Sergionn сказал:
это видимо из той же серии, что и хелперные функции к строкам (и не только) подчеркивает, эх...((
Это что-то ещё хуже. При первом запуске студия даже скомпилить не дала, ссылаясь на эти ошибки. После перезапуска студии - скомпилилось, но ошибки остались.
-
-
-
-
-
Да, прямоугольника, а вам что нужно, полигон? http://docwiki.embarcadero.com/Libraries/Tokyo/en/FMX.Graphics.TCanvas.FillPolygon
-
-
Сделайте тестовое приложение, без функционала, только подключение к базе с одной таблицей и выводом данных из неё. Если она у ваших тестеров заработает, значит косяк в вашем приложении. Если не заработает, то скините проект сюда.
-
1 час назад, wamaco сказал:
она есть, просто лежит видимо у вас в system32....
Чистая ХР, откуда там взяться этой библиотеке? Она не поставлялась вместе с виндой.
Проверил, её там действительно нет.
-
31 минуту назад, Вадим Смоленский сказал:
куда приложил sqlite3.dll
А откуда вообще взялась информация о том, что для работы приложения необходимо с ним таскать библиотеку sqlite? Беру чистый образ Win XP, на нём не должно быть этой библиотеки, кидаю туда своё приложение, работающее с sqlite через FireDAC, и всё работает. Что я делаю не так?
-
http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.Classes.TThread.Synchronize
Судя по документации, если передать первым параметром поток, то в дальнейшем в основном потоке можно будет определить какой из дополнительных потоков вызвал метод. Если это не требуется, то можно ничего не передавать.
-
Активно использую Post с двумя параметрами: адрес и список параметров. На стороне скрипта специально useragent не проверял, но по логам он всегда присутствует и никаких проблем с ним нет.
-
7 часов назад, gonzales сказал:
Не очень понял, чем это может помочь! В общем процедуру, которая в потоке запрашивает у сервера информацию и обновляет состояние компонента я написал, но теперь есть другая засада. Эта процедура срабатывает по таймеру в 1 сек, соответственно работает в своем потоке. Но иногда проявляется следующий баг, пользователь принудительно меняет состояние объекта (при этом он перерисовывается), и тут же перерисовывается обратно по таймеру (так как информация о смене состояния на сервер еще не попала) и только на следующем такте (обращении по таймеру к серверу) объект перерисуется в правильное состояние. Вопрос, могу ли я каким-то образом в момент нажатия пользователем на объект остановить выполнение задачи в потоке?
Прям немедленно остановить нельзя, но можно вызвать метод Cancel
var Task : ITask; ... Task := TTask.Run(...); ... Task.Cancel; //когда нужно остановить
А внутри таска сделать проверки, что если выполняется
Task.Status = TTaskStatus.Canceled
то не нужно обновлять данные, там где вы их обновляете и досрочно закончить работу кода таска.
-
1 час назад, gonzales сказал:
1. Любое обращение к форме нужно проводить с синхронизацией? Я думал это только визуальных компонентов касается, которые должны в главном потоке отрисовываться.
Смотря к каким данным вы обращаетесь. На самом деле синхронизировать нужно любые обращения к разделяемым ресурсам. Если теми данными, что на форме или где-то ещё, пользуется другой поток, то доступ к ним должен быть синхронизирован. Если вы их только читаете, измениться они не могут и делаете это только в показанном потоке, то можно не синхронизировать
Но вот это же точно визуальный элемент?
Form1.ConnectImage.Bitmap := Form1.IconList.Bitmap(Size, localicon);
1 час назад, gonzales сказал:3. Объектов до 10 и по каждому запрос, только запрос не HTTP, так как у меня не web-сервер, а это просто пакет байт, на который сервер отвечает таким же пакетом. Я уже думаю над тем, чтобы передавать всю информацию в одном пакете, но для этого придется полностью переколбасить сервер, а сейчас пока на это нет времени. А нельзя TCPClient заставить работать в асинхронном режиме?
Тогда это уже менее страшно, я почему-то подумал, что обращение идёт через HTTP. TCPClient не имеет такой возможности, только самостоятельно потоки делать.
-
На первый взгляд можно заметить следующее:
1. Обращение к форме из потока без синхронизации
l := Length(Form1.RoomElements); E := Form1.RoomElements[j];
Так делать нельзя. SendHTTPMessage - тоже самое.
2. Таймер не останавливается на время работы потока, судя по всему. Если поток не успеет отработать за секунду, как вы написали, может запуститься второй и третий. Возможно так и задумано, но если учесть, что все они обращаются к форме без синхронизации всё это печально кончится.
3. У вас сколько объектов по которому цикл проходит каждую секунду? И для каждого объекта вызывается Get запрос на веб сервер? Бедный сервер. Данные нужно получать сразу для всех объектов, и уже в клиенте разбирать, что вам нужно, а что нет. А иначе ваши клиенты положат вам ваш же сервер рано или поздно.
4. Уже несколько версий существует TNetHttpClient и THTTPClient, которые могут асинхронно отправлять запросы на веб сервер, а значит поток вообще создавать не нужно.
-
На самом деле это поведение можно достаточно просто отключить
var Connect : TFDConnection; Query : TFDQuery; ... Connect.ResourceOptions.SilentMode := true; Query.ResourceOptions.SilentMode := true; ...
-
12 часа назад, Menkos1 сказал:
Это нужно обновиться или как ? Сможете поделится Fmx.Form.pas от Tokyo?
зашел на оф сайт нефигасе 100.000р за лицензию, это что еще такое -
Да, нужно либо обновиться на Токио, либо применить фикс, который есть в комментариях на первой странице.
На торрентах бесплатно продают, скачайте и вынимайте оттуда любые модули, которые нужны.
-
-
Есть вот такой вот комментарий принципиально поводу создания FMX внутри библиотеки http://forum.vingrad.ru/index.php?showtopic=380246&view=findpost&p=2626848
-
В 28.05.2017 в 14:59, b_vlad25 сказал:
Скажите две наклонные черты // перед текстом в результатах выполнения скрипта - это по умолчанию или можно убрать?
Нет, не по умолчанию, это косяк в скрипте. Я так понимаю запрос заработал, в чём же была проблема?
Как спрятать главную форму в FMX?
в Прочие вопросы
Опубликовано