Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

Знатокам 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.076 c
15-1341300187
brother
2012-07-03 11:23
2013.03.22
Амуниция Первой Мировой Войны


15-1331894772
Palladin
2012-03-16 14:46
2013.03.22
msscript control


15-1352647406
Аббат Пиккола
2012-11-11 19:23
2013.03.22
Вот кто решает, что вкус ароматизатора идентичен натуральному


15-1350333002
Юрий
2012-10-16 00:30
2013.03.22
С днем рождения ! 16 октября 2012 вторник


15-1352990265
0xDEADBEEF
2012-11-15 18:37
2013.03.22
троеточие в элементах интерфейса





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский