Вниз
Скачать: CL | DM;

Знатокам TVirtualStringTree   Найти похожие ветки 

← →
Ega23 ©   (2012-03-21 11:47) [0]

Есть Node. Его текст - редактируемый. Вот мы вошли по F2 в редактор, что-то набрали. Enter.
Вопрос: как мне в событии OnNewText если этот NewText невалиден по каким-то моим критериям запретить выход из редактора?
Либо принудительно ввести данную ячейку в режим редактирования?
Либо какое-то событие, типа OnBeforeNewText?
OnChanging не хочется задействовать, ибо проверка валидности может занимать десятые доли секунды, пока оно до базы продолбится.
Можно даже потомка написать с каким-нибудь перекрытым виртуальным методом, не вопрос.

Чую, что всё как-то очень просто должно быть, но потерялся в многообразии свойств TVST.


← →
Ega23 ©   (2012-03-21 12:25) [1]

Нашёл.

Проверяем в OnEdited:


procedure TUpdateCreateMasterForm.vstGroupsEdited(
 Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex);
begin
 if Column = 1 then
   if vstGroups.Text[Node, Column] = "aaa" then
     vstGroups.EditNode(Node, Column);
end;


Если решение ректальное - поправьте.


← →
han_malign   (2012-03-22 12:40) [2]


> потерялся в многообразии свойств TVST.

- дык, надо сначал в MSDN смотреть, что TreeView позволяет...
А TVN_ENDLABELEDIT позволяет только отменить редактирование - edit один фиг прибивается...
Обвязка edit-а - еще ректальнее, т.к. засада с потерей фокуса только усугубится...


← →
CRLF   (2012-03-22 12:52) [3]


> han_malign   (22.03.12 12:40) [2]
VirtualStringTree -- это слегка из другой оперы.


← →
Ega23 ©   (2012-03-22 13:04) [4]


> т.к. засада с потерей фокуса только усугубится...


Да вроде нормально всё.
А где в MSDN VST описано? Они же Code Gear продались, не?


← →
han_malign   (2012-03-22 14:03) [5]

а - фиг... - думал нормальная обвязка стандартного контрола, посмотрел - все с нуля рисуют...
то есть там все ректальное...

тогда можно посмотреть в сторону    
TBaseVirtualTree
     function DoEndEdit: Boolean; virtual;
- но осторожно...
(у меня на руках древняя Version 4.0.17)


← →
CRLF   (2012-03-22 14:17) [6]

Кстати, из своего опыта общения с данным компонентом помню, что были нюансы при использовании скролбаров во время редактирования. Проверь сразу, так ли он себя ведёт, как тебе нужно.

P.S. А ещё это чудо все редакторы создаёт как многострочный edit, даже если у TVST многострочность отключена.


← →
Ega23 ©   (2012-03-22 19:17) [7]


> тогда можно посмотреть в сторону    
> TBaseVirtualTree
>      function DoEndEdit: Boolean; virtual;


Ага, спасибо, посмотрю.


>  были нюансы при использовании скролбаров во время редактирования.


ОК, спасибо, завтра гляну обязательно.


← →
DVM ©   (2012-03-22 23:06) [8]


> han_malign   (22.03.12 14:03) [5]
> а - фиг... - думал нормальная обвязка стандартного контрола,
>  посмотрел - все с нуля рисуют...
> то есть там все ректальное...

ничего там не ректальное, ректальное - это в SysListView32, что даже в виртуальном режиме ему до VitrualListView как до луны пешком.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.055 c
2-1331584288
advise
2012-03-13 00:31
2013.03.22
Посоветуйте плз как разбить AVI файл на кадры?


15-1350484358
xayam
2012-10-17 18:32
2013.03.22
Наиболее эффективный алгоритм сжатия


15-1339674715
ProgRAMmer Dimonych
2012-06-14 15:51
2013.03.22
Часто используемые программы в "Пуске" Windows 7


15-1350304912
8903765 0706
2012-10-15 16:41
2013.03.22
Внимание! Ищут машину, которая сбила 15.09 ребенка на стоянке


2-1341931500
Сергей
2012-07-10 18:45
2013.03.22
Как узнать что окно на заднем плане?




   Наверх