наследование форм (требуется програмист поправить IDE)
Модератор: Модераторы
- Attid
- долгожитель
- Сообщения: 2588
- Зарегистрирован: 27.10.2006 17:29:15
- Откуда: 44°32′23.63″N 41°2′25.2″E
- Контактная информация:
наследование форм (требуется програмист поправить IDE)
наследование форм в лазаре было давно, но только ручками =)
в 9,26 вроде как оно есть в меню и вроде даже работает, за исключением пары моментов
1, при наследовании непонятки с файлом формы {$i unit1.lrs} он его не создает , но если сохранить юнит на жеский диск, нужно просто переименовать ручками {$i unit1.lrs} {$i новое_имя_pas_файла.lrs} и вроде работает =)
2, при дабле клике на кнопку у которой определено действие в родителе, попадаешь на это самое действие в родителе, что конечно лучше чем раньше просто было ошибка, но все же хотелось бы "как в дельфе" чтобы создовалось событие с наследованием.
собственно вопрос к лазареписателям кто что в курсе этого, или надо идти с буржуями общаться ?
в 9,26 вроде как оно есть в меню и вроде даже работает, за исключением пары моментов
1, при наследовании непонятки с файлом формы {$i unit1.lrs} он его не создает , но если сохранить юнит на жеский диск, нужно просто переименовать ручками {$i unit1.lrs} {$i новое_имя_pas_файла.lrs} и вроде работает =)
2, при дабле клике на кнопку у которой определено действие в родителе, попадаешь на это самое действие в родителе, что конечно лучше чем раньше просто было ошибка, но все же хотелось бы "как в дельфе" чтобы создовалось событие с наследованием.
собственно вопрос к лазареписателям кто что в курсе этого, или надо идти с буржуями общаться ?
почему не кодим в MSE???
-
Павел Ишенин
- постоялец
- Сообщения: 475
- Зарегистрирован: 24.03.2007 09:16:52
Ответственный за разработку этого дела Mattias. Я передам ему конечно. Мне бы пошаговая инструкция как и что воспроизвести. Может и сам поправлю.
- Attid
- долгожитель
- Сообщения: 2588
- Зарегистрирован: 27.10.2006 17:29:15
- Откуда: 44°32′23.63″N 41°2′25.2″E
- Контактная информация:
Sawer писал(а):почему не кодим в MSE???
кодим но другое приложение. и только из-за печати. пока там не будет человеческого автодополнения проекты туда переводить не буду. ибо время разработки для меня там в несколько раз дольше чем в лазаре.
Павел Ишенин писал(а):Мне бы пошаговая инструкция как и что воспроизвести. Может и сам поправлю.
в треке 12739 воспроизводится на последней бете и свн версии. в конфу у меня писать не получается, а сам посмотрел код и решил что будет слишком долго мне разбираться.
-
Павел Ишенин
- постоялец
- Сообщения: 475
- Зарегистрирован: 24.03.2007 09:16:52
Mattias чего-то поправил - лучше стало?
- Attid
- долгожитель
- Сообщения: 2588
- Зарегистрирован: 27.10.2006 17:29:15
- Откуда: 44°32′23.63″N 41°2′25.2″E
- Контактная информация:
частично, первая ошибка исправлена,
вторая исправленна, но появился более напряжный баг.
и так.
создаем проект, в нем форма1 на нее кидаем кнопку1 в онклик делаем сообщение , сохроняем.
создаем форму с наследием от формы1 появляется форма2, пробуем её сохранить, лазарь предлогает удалить "неиспользуемые методы" и соответсвено выдает это сообщение на каждое сохранения =/
потом кликаем на кнопку и создается новый метод, без приписки Inherited.
обобщаем :
1, лазарус не должен пытаться удалить наследуемые методы
2, при пересоздании метода метод должен обьвлятся с Inherited
в implementation
procedure TForm2.Button1Click(Sender: TObject);
begin
Inherited Button1Click(sender);
end;
или хотя бы
procedure TForm2.Button1Click(Sender: TObject);
begin
Inherited;
end;
вторая исправленна, но появился более напряжный баг.
и так.
создаем проект, в нем форма1 на нее кидаем кнопку1 в онклик делаем сообщение , сохроняем.
создаем форму с наследием от формы1 появляется форма2, пробуем её сохранить, лазарь предлогает удалить "неиспользуемые методы" и соответсвено выдает это сообщение на каждое сохранения =/
потом кликаем на кнопку и создается новый метод, без приписки Inherited.
обобщаем :
1, лазарус не должен пытаться удалить наследуемые методы
2, при пересоздании метода метод должен обьвлятся с Inherited
в implementation
procedure TForm2.Button1Click(Sender: TObject);
begin
Inherited Button1Click(sender);
end;
или хотя бы
procedure TForm2.Button1Click(Sender: TObject);
begin
Inherited;
end;
-
Павел Ишенин
- постоялец
- Сообщения: 475
- Зарегистрирован: 24.03.2007 09:16:52
Lazarus пытается удалить неиспользуемые методы только если включена соответствующая галочка в опциях среды. Она выключена по умолчанию.
- Attid
- долгожитель
- Сообщения: 2588
- Зарегистрирован: 27.10.2006 17:29:15
- Откуда: 44°32′23.63″N 41°2′25.2″E
- Контактная информация:
Павел Ишенин писал(а):Lazarus пытается удалить неиспользуемые методы только если включена соответствующая галочка в опциях среды. Она выключена по умолчанию.
2 года использую лазарус не знал про эту галку и всегда он об этом предлагает. так что про умолчания это не есть правда.
ну и до исправления он это не предлагал. но попробуем привыкнуть. хотя это логичное поведение ИДЕ реализованное в любых других =)
а по поводу добавления Inherited что ответили ?
ЗЫ иде из свн с лсл от 0,9,26 не вызовет проблем, а то обновление lcl для меня это перетест всех функций всех проектов. =(
-
Павел Ишенин
- постоялец
- Сообщения: 475
- Зарегистрирован: 24.03.2007 09:16:52
По поводу inherited - не знаю. Mattias вообще ничего не говорил по поводу ошибки - просто взял да исправил некоторые проблемы. Я полагаю что добавить руками не настолько большая проблема по сравнению с теми, что были исправлены.
Использование старого LCL может вызвать проблемы, так как IDE знает о том LCL с которым оно собиралось, а значит будет создавать/показывать новые свойства компонент, которых не было в 0.9.26 (я правда не скажу сходу где что добавлялось).
Использование старого LCL может вызвать проблемы, так как IDE знает о том LCL с которым оно собиралось, а значит будет создавать/показывать новые свойства компонент, которых не было в 0.9.26 (я правда не скажу сходу где что добавлялось).
