powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Lazarus. EReadError с сообщением Invalid value for property
13 сообщений из 13, страница 1 из 1
Lazarus. EReadError с сообщением Invalid value for property
    #39913775
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прикрутил к своему контролу коллекцию (потомок TCollection), у итемов сделал событие OnClick (TButtonClickNotifyEvent = procedure(Sender: TObject; var AHandled: Boolean) of object)

проблема в том, что если удалить код внутри процедуры OnClick (пример:)
Код: pascal
1.
2.
3.
4.
procedure TForm1.MyControl1ButtonsItem6Click(Sender: TObject; var AHandled: Boolean); 
begin

end;


затем нажать компилировать или сохранить, то пустые процедуры из юнита удаляются, а из .LFM нет.
В инспекторе объектов остается ссылка на MyControl1ButtonsItem6Click и проект не компилируется с ошибкой. Приходится удалять в инспекторе руками.
Почему может так происходить ?
...
Рейтинг: 0 / 0
Lazarus. EReadError с сообщением Invalid value for property
    #39913788
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бета, транк?

В 1.9 на моем wcthread у итемов нормально подчищается.
...
Рейтинг: 0 / 0
Lazarus. EReadError с сообщением Invalid value for property
    #39913791
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

1.8.4
...
Рейтинг: 0 / 0
Lazarus. EReadError с сообщением Invalid value for property
    #39914070
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

в твоём wcthread (версия от 10.07.2017) - TOwnedList = class(TList) + TTask = class(TComponent)
у TCollectionItem, в отличии от TComponent, нет свойства Name. Я думаю, проблема связана с этим.
...
Рейтинг: 0 / 0
Lazarus. EReadError с сообщением Invalid value for property
    #39914181
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghost Writer
нет свойства Name. Я думаю, проблема связана с этим
похоже, это тут ни при чем.

Нашел компоненты с точно такой проблемой. TECGrid (Eye Candy Controls), у него колонки тоже от TCollectionItem и имеют событие OnGetDataCellText, которое точно также не удаляется.

Но нашел и другой компонент - TChart. У него тоже TChartAxis от TCollectionItem , имеют событие OnMarkToText.
НО! при сохранении или компиляции лазарус предлагает их удалить (см. скриншот)

Как добиться того же для моего компонента ?
...
Рейтинг: 0 / 0
Lazarus. EReadError с сообщением Invalid value for property
    #39914244
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghost Writer
Как добиться того же для моего компонента ?


Подозреваю, что у них свой проперти редактор, который может уведомлять среду об изменениях.
...
Рейтинг: 0 / 0
Lazarus. EReadError с сообщением Invalid value for property
    #39914287
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну не знаю. в исходниках не вижу ничего подозрительного.

обратил внимание, что свойство сделано вот так:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
    property OnMarkToText: TChartAxisMarkToTextEvent
      read FOnMarkToText write SetOnMarkToText; 

procedure TChartAxis.SetOnMarkToText(AValue: TChartAxisMarkToTextEvent);
begin
  if TMethod(FOnMarkToText) = TMethod(AValue) then exit;
  FOnMarkToText := AValue;
  StyleChanged(Self);
end;  



может тут вся собака зарыта ?

Если делаю также у себя, то получаю Error: Operator is not overloaded: "TMethod" = "TMethod"
...
Рейтинг: 0 / 0
Lazarus. EReadError с сообщением Invalid value for property
    #39914321
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghost Writer
может тут вся собака зарыта ?

Это ты в рантайм полез, а мы про дизайнтайм.

Смотри в исходниках чарта в папке editors. Там нечто подобное моим редакторам свойств. Уведомления, глобальные хуки дизайна и т.п.

В общем, не всё так просто. :)
...
Рейтинг: 0 / 0
Lazarus. EReadError с сообщением Invalid value for property
    #39914331
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman
Смотри в исходниках чарта в папке editors
там и смотрел
...
Рейтинг: 0 / 0
Lazarus. EReadError с сообщением Invalid value for property
    #39914343
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghost Writer
wadman
Смотри в исходниках чарта в папке editors
там и смотрел

У меня поиск по строке "TMethod(FOnMarkToText) = TMethod(AValue)" приводит к рантайму.
Редакторы в папке editors. У меня можешь посмотреть, чуть допотопнее и проще.
...
Рейтинг: 0 / 0
Lazarus. EReadError с сообщением Invalid value for property
    #39914358
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

я уже всё посмотрел. и у тебя еще вчера посмотрел ))
говорю, не вижу там ничего интересного и сверхъестественного.

но нашел вот что:

Код: plaintext
1.
2.
3.
#: lazarusidestrconsts.lismissingevents
msgid "Missing Events"
msgstr "Отсутствующие события"

Это в папке lazarus\languages\lazaruside.ru.po , далее поиск вывел на lazarus\ide\ checklfmdlg.pas
а значит это часть IDE, а не доп. редакторы с хуками.

Смотрю на function RemoveDanglingEvents но пока не понятно, по какому принципу TChartAxis в ListOfPInstancePropInfo, а другие нет
...
Рейтинг: 0 / 0
Lazarus. EReadError с сообщением Invalid value for property
    #39914371
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghost Writer
Смотрю на function RemoveDanglingEvents но пока не понятно, по какому принципу TChartAxis в ListOfPInstancePropInfo, а другие нет

Может не хватает RegisterClass и RegisterNoIcon?
...
Рейтинг: 0 / 0
Lazarus. EReadError с сообщением Invalid value for property
    #39914383
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

у TChart для TChartAxis тоже нет.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Lazarus. EReadError с сообщением Invalid value for property
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]