Я могу сделать TTreeNode невидимым?

В портах AVR имеются специальные регистры ввода-вывода, доступ к которым осуществляется с помощью инструкций IN и OUT. Не как память с использованием LDR и т. Д.

Из определения порта вы можете видеть, что вам нужно сделать указатель порта энергозависимым. что компилятор также сказал бы вам как предупреждение, когда вы попытались бы передать PORT в функцию.

#define PORTB _SFR_IO8(0x05)

, который отображается на

#define _SFR_IO8(io_addr) _MMIO_BYTE((io_addr) + __SFR_OFFSET)
#define _MMIO_BYTE(mem_addr) (*(volatile uint8_t *)(mem_addr))
6
задан dummzeuch 6 May 2009 в 08:51
поделиться

4 ответа

Рекомендуется отделить данные от пользовательского интерфейса , и эта проблема с древовидными представлениями является хорошим примером - не храните данные в дереве вид . У меня часто бывает невизуальный блок, содержащий структурированный класс, в котором хранятся данные. Блок пользовательского интерфейса может иметь древовидное представление, которое может отображать (настраиваемое подмножество) данные из этого класса. Существует множество способов перемещения данных между ними. Этот тип изоляции требует некоторого планирования, но обеспечивает гораздо большую гибкость и стабильность.

7
ответ дан 8 December 2019 в 05:57
поделиться

Если вы хотите использовать более качественный компонент дерева, почему бы не использовать Virtualtreeview. Это один из лучших компонентов, когда-либо разработанных для Delphi, и его можно бесплатно использовать с исходным кодом! Но, возможно, есть логическая проблема с скрытием ttreenode! Следует ли отображать на дереве знак +, когда никакие узлы не видны?

http://wiki.lazarus.freepascal.org/VirtualTreeview

5
ответ дан 8 December 2019 в 05:57
поделиться

TTreeView является оболочка для стандартного древовидного представления Windows, которое (судя по документации на MSDN ) не позволяет скрывать узлы дерева. Это тоже имеет смысл, поскольку древовидное представление, как известно, не масштабируется на большое количество узлов, поэтому скрывать узлы дерева вместо удаления всего ненужного было бы плохой идеей.

Вы можете немного облегчить себе жизнь, если удалите и вставите только узел верхнего уровня (тот, который вы хотите скрыть), и создать все дочерние узлы в событии OnExpanding повторно добавленного узла. Для этого вам просто нужно задать для свойства HasChildren узла значение true.

4
ответ дан 8 December 2019 в 05:57
поделиться

The only way to "hide" a node in TTreeView is to actually remove it. Then, to "show" the node, you simply re-insert it again.

3
ответ дан 8 December 2019 в 05:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: