Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Lazarus. EReadError с сообщением Invalid value for property / 13 сообщений из 13, страница 1 из 1
14.01.2020, 16:14
    #39913775
Ghost Writer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus. EReadError с сообщением Invalid value for property
прикрутил к своему контролу коллекцию (потомок 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
14.01.2020, 16:23
    #39913788
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus. EReadError с сообщением Invalid value for property
Бета, транк?

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

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

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

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

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

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


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

обратил внимание, что свойство сделано вот так:
Код: 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
15.01.2020, 14:09
    #39914321
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus. EReadError с сообщением Invalid value for property
Ghost Writer
может тут вся собака зарыта ?

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

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

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

У меня поиск по строке "TMethod(FOnMarkToText) = TMethod(AValue)" приводит к рантайму.
Редакторы в папке editors. У меня можешь посмотреть, чуть допотопнее и проще.
...
Рейтинг: 0 / 0
15.01.2020, 14:50
    #39914358
Ghost Writer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus. EReadError с сообщением Invalid value for property
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
15.01.2020, 15:08
    #39914371
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus. EReadError с сообщением Invalid value for property
Ghost Writer
Смотрю на function RemoveDanglingEvents но пока не понятно, по какому принципу TChartAxis в ListOfPInstancePropInfo, а другие нет

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

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


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