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

Вниз

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 вся ветка

Форум: "KOL";
Текущий архив: 2007.09.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.039 c
2-1186654390
gentos
2007-08-09 14:13
2007.09.02
передача с одной форму в другую TMemoryStream


2-1186485158
Надежда
2007-08-07 15:12
2007.09.02
Проверка не запущена ли уже эта программа


1-1182748075
Romka123
2007-06-25 09:07
2007.09.02
dde


2-1186544981
Alex_Y
2007-08-08 07:49
2007.09.02
как запретить нажатие кнопки свернуть в окно


2-1186583246
dhteghjg
2007-08-08 18:27
2007.09.02
Координаты символа





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский