Главная страница
    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.46 MB
Время: 0.037 c
15-1186166402
ya00011
2007-08-03 22:40
2007.09.02
HTTP: как сказать качалке о том что докачка не поддерживается?


2-1186654674
fisherman
2007-08-09 14:17
2007.09.02
Уникальный код


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


15-1185972624
Elen
2007-08-01 16:50
2007.09.02
Работа с палитрой Корела


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