Вопросы по LCL

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Вопросы по LCL

Сообщение zub » 10.06.2010 14:57:21

То на что должен ссылаться data лежит в другой части программы и не является class`ом, заворачивать всё в классы?
и искать мне нужно не по названию узла, а по свойствам data^ штатного способа для этого нет?
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: Вопросы по LCL

Сообщение Odyssey » 10.06.2010 17:02:43

zub писал(а):То на что должен ссылаться data лежит в другой части программы и не является class`ом, заворачивать всё в классы?

Не обязательно, просто классы дают удобный способ проверки типа. Если есть другие варианты такой проверки -- можно и без классов.
zub писал(а):и искать мне нужно не по названию узла, а по свойствам data^ штатного способа для этого нет?

ЕМНИП -- нет, только перебирать ручками.
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Вопросы по LCL

Сообщение zub » 10.06.2010 21:05:07

>>Не обязательно, просто классы дают удобный способ проверки типа.
Данный подход требует наличия в классах Data^ методов для идентификации в дереве либо громоздкой конструкции из if TObject(Node.Data) is TMyClass then ... разве это удобно?

Вот например ситуация:
узлу дерева у меня сопоставлено 2 объекта, причем объекты друг о дружке не знают. В идеале мне бы в одном ноде иметь Data и Data2
а в реале либо придется в data^ хранить структуру из 2х указателей (которую надо инициализировать и уничтожать),
либо хранить указатель на один объект и по кликам пользователя вычислять второй, это не очень накладно, но зачем - я эту информацию знал на этапе построения дерева.

чтото LCL не хочет переезжать в мой мозг. требует там перестановку
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: Вопросы по LCL

Сообщение Odyssey » 11.06.2010 01:13:49

Это я понимаю, но если завтра кому-то понадобится сопоставлять узлам не по два, а по 20 объектов, с таким идеальным подходом придётся заводить для каждого узла по двадцать свойств..
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Вопросы по LCL

Сообщение zub » 11.06.2010 01:16:54

Odyssey
>>В Lazarus IDE есть куча полезных фич, облегчающих чтение.
почемуто на моих определениях эти фичи работают выборочно. иногда вообще не срабатывают, иногда прыгают неизвестно куда... реже работают как надо. На стандартных LCLных определениях тоже не всегда правильно работают.
В лазаре нет автодополнения после точки? типа self.[тут среда подсовывает возможные варианты]
delphi2006 тоже частенько ошибался, но редактор лазаря оставляет неприятное впечатление

Добавлено спустя 5 минут:
>>Это я понимаю, но если завтра кому-то понадобится сопоставлять узлам не по два, а по 20 объектов
я тоже это понимаю)), но по мне всетаки проще пихануть в tree своего наследника TTreeNode. где нужно 20 - пихать наследника с 20 свойствами, где не нужно - просто TTreeNode

Добавлено спустя 1 час 1 минуту 45 секунд:
как быть с отладчиком? хочется видеть русские буквы, а не #208#145#208#187#208#190#208#186#208#184
причем в интерфейсной части соответственно чтоб нерегонял UTF->CPwin, а в логике программы оставлял CPwin - это фантастика?
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: Вопросы по LCL

Сообщение Brainenjii » 11.06.2010 08:14:22

>> почемуто на моих определениях эти фичи работают выборочно
Ни разу не было ложных срабатываний ^_^ Фичи с Alt+Up/Ctrl+Click и Ctrk+h - дико удобны и всё-всё облегчают ^_^
>> но по мне всетаки проще пихануть в tree своего наследника TTreeNode
попробуйте TVirtualTreeView.
>>как быть с отладчиком?
Я - отключил ^_^ Логирование рулит ^_^
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Вопросы по LCL

Сообщение zub » 11.06.2010 09:34:05

>>Ни разу не было ложных срабатываний
завидую. а "автодополнение" работает?
что с фичами может быть у меня не так? пробовал разные версии лазаря - везде одинаково.

>>попробуйте TVirtualTreeView.
спасибо. запомню, но сначала разберусь со стандартными.
получилось добавлять свои ноды переотределив CreateNode. - некрасиво, много лишних приведений типов. и наверно ненадежно?

>>Я - отключил ^_^ Логирование рулит ^_^
лог есть. но всё в него не запихнешь. без отладчика никак
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: Вопросы по LCL

Сообщение скалогрыз » 11.06.2010 11:30:38

zub писал(а):лог есть. но всё в него не запихнешь

что "всё"? :)
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Вопросы по LCL

Сообщение zub » 11.06.2010 11:37:56

>>что "всё"?
все параметры нужные для отладки
я имею ввиду чтото типа:
Код: Выделить всё
{$IFDEF TOTALYLOG}programlog.logoutstr('Это='+inttostr(eto),0); {$ENDIF}

или под "логирование" понимается чтото другое?
Последний раз редактировалось zub 11.06.2010 12:00:41, всего редактировалось 1 раз.
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: Вопросы по LCL

Сообщение Mr.Smart » 11.06.2010 11:53:52

zub
Используйте латиницу для отладки
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Вопросы по LCL

Сообщение Odyssey » 11.06.2010 22:00:44

zub писал(а):почемуто на моих определениях эти фичи работают выборочно. иногда вообще не срабатывают, иногда прыгают неизвестно куда... реже работают как надо. На стандартных LCLных определениях тоже не всегда правильно работают.
В лазаре нет автодополнения после точки? типа self.[тут среда подсовывает возможные варианты]
delphi2006 тоже частенько ошибался, но редактор лазаря оставляет неприятное впечатление

Очень странно, у меня ни разу не возникало нареканий. Может быть потому, что пользуюсь в основном классами и почти не пользуюсь структурами/указателями на них. Автодополнение тоже есть, по "." и по Ctrl+Space. Тоже восхитительно работает. Периодически там возникают нежелательные косметические улучшения, но это решается с помощью багтрекера :) Своей текущей svn-ревизией 25873 я более чем доволен.

Кстати, а какую версию вы пробовали? Если только релизы, то возможны нарекания. С момента последнего релиза Lazarus улучшился несоизмеримо больше чем за все предыдущие релизы. Поэтому сам осторожно сижу на svn версии, ещё как вариант можно качать снапшоты. Но релизы уже довольно сильно устарели, я бы сидел на них только в крайнем случае.

zub писал(а):как быть с отладчиком? хочется видеть русские буквы, а не #208#145#208#187#208#190#208#186#208#184
причем в интерфейсной части соответственно чтоб нерегонял UTF->CPwin, а в логике программы оставлял CPwin - это фантастика?

Тут я пас, у меня отладчик не дружит с антивирусом :) Поэтому тоже использую лог. Но около месяца назад когда проверял отладчик и отключал антивирь, вроде бы даже кириллица в utf-8 во всплывающих подсказках работала. Хотя могу и ошибаться.
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Вопросы по LCL

Сообщение zub » 11.06.2010 23:12:37

>>Очень странно, у меня ни разу не возникало нареканий.
У меня - в основном object`ы, $INCLUDE в начале каждого файла, иногда $IFNDEF в секции uses. Поэкспериментирую что портит картину
до вчера пользовался 0.9.29-25243, сегодня откатился на 0.9.28.2. разницы в редакторе не заметил. обновлюсь.

>>вроде бы даже кириллица в utf-8 во всплывающих подсказках работала
всплывающие подсказки не обратил вниманья, в watches - кирилицы нет
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: Вопросы по LCL

Сообщение zub » 15.06.2010 11:19:24

Видимо навигационные "фичи" не работают иззи сообщения об ошибке:
Код: Выделить всё
gui\projecttreewnd.pas(17,52) Error: не найден исходный код: модуль C:\lazarus\fpc\2.4.0\units\i386-win32\rtl\sysutils.ppu

появляющегося при выборе "найти объявление" в контекстном меню редактора. sysutils.ppu по указанному пути присутствует. почему не видит?
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: Вопросы по LCL

Сообщение Brainenjii » 15.06.2010 11:47:57

Не найден каталог исходных кодов FPC, причём Lazarus должен при каждом запуска расстраиваться по этому поводу. Правится через меню: Окружение->Параметры->Каталог исходного кода FPC. Версия исходников должна совпадать с версией компилятора.
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Вопросы по LCL

Сообщение zub » 15.06.2010 12:02:28

Извиняюсь, протупил)) смутило что ругается на ppu ане на рр, хотя русскими быувами написано)). Всё заработало. спасибо Brainenjii

Добавлено спустя 4 часа 29 минут 22 секунды:
А как у LCL с совместимостью с VCL? переделал несколько простейших форм, попробовал компилировать на delphi - doВсякаяХрень в VCL отсутствует, некоторые декларации отличаются. реально делать чтоб работало и там и там или не стоит заморачиваться?
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Пред.След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 244

Рейтинг@Mail.ru