Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.02;
Скачать: CL | DM;

Вниз

TVBeginEdit и TVEndEdit   Найти похожие ветки 

 
MTsv DN ©   (2007-01-15 11:00) [0]

Всем привет...

Для начала:
TOnTVEndEdit = function( Sender: PControl; Item: THandle; const NewTxt: String )
              : Boolean of object;
 {* Event type for TOnTVEndEdit event. }
...
function WndProcTreeView( Self_: PControl; var Msg: TMsg; var Rslt: Integer ): Boolean;
var NM: PNMTreeView;
   DI: PTVDispInfo;
   P: TPoint;
   S: String;

Здесь в двух местах надо заменить String на KOL_String.

И еще вопрос:
Как программно изменить текст который появляется для редактирования в двух функциях TVBeginEdit и TVEndEdit? Т.е. я попадаю в функцию TVBeginEdit и прежде чем отобразить текст для редактирования мне надо удалить из него первый символ... А когда после редактирования жму Enter, добавить первый символ...

Через TVItemText[TVSelected][1] не работает...уже пробывал :"(


 
Unknown Mystic ©   (2007-01-15 11:31) [1]

Я что-то не понял? У этих функций же параметр Item: THandle...


 
MTsv DN ©   (2007-01-15 11:48) [2]

> Item: THandle
Только в объявлении, см Выше.

А когда в MCK свойство добавляешь, получается:
function TForm1.TV_TVBeginEdit(Sender: PControl;
 Item: Cardinal): Boolean;

Вопрос-то не в этом...


 
MTsv DN ©   (2007-01-15 11:55) [3]

По большому счету, я уже решил проблему, в крайнем случае для OnTVEndEdit. Но вариант, кажется полный изврат. В OnMessage формы вставил:
var
NM: PNMTreeView;
DI: PTVDispInfo;
S: KOLString;
...
if Msg.message = WM_NOTIFY then
 begin
   NM := Pointer( Msg.lParam );
   if NM.hdr.code = TVN_ENDLABELEDIT then
    begin
     DI := Pointer( NM );
     S := DI.item.pszText;
     if S[1] <> "\" then
      DI.item.pszText := PKOLChar("\" + S);
    end;
 end;

А вот с OnTVBeginEdit так же не "прокатило"...


 
Sapersky   (2007-01-15 14:33) [4]

Для ListView делал так:

If (Msg = LVN_BEGINLABELEDIT) then begin
   EditHandle := SendMessage(FList.Handle, LVM_GETEDITCONTROL, 0, 0);
   SendMessage(EditHandle, WM_SETTEXT, 0, Integer(PChar(FFiles[Idx].Name))  end;

Для LVN_ENDLABELEDIT - брал строку из NewText (DI.item.pszText), модифицировал и писал в FList.LVItems[Idx, 0].


 
MTsv DN ©   (2007-01-15 14:53) [5]

Сенкс... Ща попробую...


 
MTsv DN ©   (2007-01-15 15:01) [6]

2 Sapersky
Огромный респект... Все работает...



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

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

Наверх




Память: 0.48 MB
Время: 0.024 c
15-1186237904
исследователь
2007-08-04 18:31
2007.09.02
Есть ли среди Мастеров пользователи PlanetSky?


2-1186495479
Pal
2007-08-07 18:04
2007.09.02
глюк с Oracle


15-1186484853
ooserg
2007-08-07 15:07
2007.09.02
перехват сообщений


2-1186384703
DmitryFox
2007-08-06 11:18
2007.09.02
Локализация приложения для Китая


3-1178696943
Мурзилка
2007-05-09 11:49
2007.09.02
QuantumGrid и картинка в ячейке