Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: 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 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.155 c
3-1287558732
Sergey2
2010-10-20 11:12
2013.03.22
LinkedServer на mssql 2008


1-1295123451
cr@nk
2011-01-15 23:30
2013.03.22
Шифрование алгоритмом RSA


15-1333730960
Дмитрий С
2012-04-06 20:49
2013.03.22
Очень сильно тупит delphiXE


15-1343939402
Юрий
2012-08-03 00:30
2013.03.22
С днем рождения ! 3 августа 2012 пятница


15-1329373822
Димка На
2012-02-16 10:30
2013.03.22
Как узнать кто "мучает" диск?