Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Вставить и EditBox в TTreeNode


Автор: Ibragim 1.10.2004, 12:36
Всем день добрый. Не надоел со своими вопросами?
На сегодня вопросик такой: Есть
MyTTreeNode = class(TTreeNode)
Нужно добиться такого поведения: Оставить ее родной TTreeNode.Text где ему и полагается жить, а справа от этого текста в runtime (например, по нажатию кнопки) создать маленький EditBox и перевести этот EditBox в режим ввода - то есть чтобы пользователь сразу по созданию начинал туда вводить что-то.
Может ли посоветовать мне что-либо глубокоуважаемый All?
Спасибо за внимание.

Автор: Dynamic 1.10.2004, 16:51
Если необходимо в этом эдите редактировать текст узла, то может лучше переводить узел в стандартный режим редактирования (Node.EditText)??

Автор: Guest 1.10.2004, 17:05
лчно я просто размещал едит в нижней части формы и делеал его Enabled := false
как только юзер тыкает на caption узла делал его енайбл = труе

Автор: p0s0l 1.10.2004, 23:34
Можешь либо динамически создавать и уничтожать TEdit, либо держать один Edit, но делать его видимым/невидимым.
1. Отлавливаешь нажатие кнопки (напр., OnKeyPress или KeyPress)
2. Делаешь видимым / создаешь TEdit
3. Задаёшь у него координаты так как тебе надо
( Rect1 := TreeView1.Selected.DisplayRect(False) - получаешь прямоугольник, охватывающий выбранный итем, правее его ставишь Edit)
4. Устанавливаешь на него фокус ввода: Edit1.SetFocus
5. Тут юзер вводит данные
6. При выходе из Edit'а или по нажатию Enter (или еще какие события),прячешь / освобождаешь Edit

Про динамическое создание компонент - см. DRKB...

Автор: Ibragim 2.10.2004, 15:48
Как всегда спасибо to pOsOl - так и сделал. Динамически создаю edit, b Edit1.SetFocus. Все и работает.
Пасиба за помощь

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)