Ответы пользователя по тегу Синхронизация данных
  • Как пофиксить ошибку Delphi "Access viilation at adress 004190B8"?

    @evvcom
    Виктор Кольцов, конечно, прав, но скорее не это является причиной указанной ошибки. Судя по "Write of address 0000000E" идет запись в поле объекта, которого не существует, т.е. ссылка MyObject = nil. Надо закрыть окно об ошибке, потом в меню Search - Find Error... Спозиционируется на строку вида MyObject.prop := value; или MyObject.SomeMethod(); внимательно изучить последовательность действий, понять почему к этому моменту еще не было выполнено присвоение MyObject := TMyObject.Create(); (вызов конструктора), ну и исправить.
    В дополнение добавлю для новичка неочевидное: третий поток, который пишет в Edit, на самом деле первый (или даже нулевой, если с нуля считать), т.е. это основной поток, UI-поток, т.к. с VCL надо работать только из основного потока, но быть аккуратным, чтобы при синхронизации его чтения из 2-го буфера с тем потоком, который пишет в этот 2-й буфер, не повесить основной UI-поток.
    Ответ написан
    1 комментарий