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

Вниз

Номер EM_GETSELTEXT   Найти похожие ветки 

 
ANB ©   (2005-04-21 13:55) [0]

Подскажите, какой номер у сообщения EM_GETSELTEXT, а то у меня в Windows.pas его нету. Или какой модуль заюзать по такому случаю.


 
ANB ©   (2005-04-21 14:04) [1]

И в Messages тоже. :(


 
Юрий Зотов ©   (2005-04-21 14:19) [2]

В RichEdit.pas:
EM_GETSELTEXT = WM_USER + 62;

На будущее - в Delphi есть поиск строки в файлах.


 
ANB ©   (2005-04-21 14:45) [3]

Спасибо. Я, правда, уже сам нашел. Только вопрос - а почему он для эдитов не отрабатывает ? EM_REPLACESEL работает же.


 
mgcr ©   (2005-04-21 14:54) [4]

"The EM_GETSELTEXT message retrieves the currently selected text in a rich edit control."

Наверное, поэтому ? Я угадал ?


 
ANB ©   (2005-04-21 15:04) [5]


> mgcr ©   (21.04.05 14:54) [4]
да читал я это. Хотелось попробовать. А что взамен ?
Пытаюсь заюзать EM_GETLINE, но у него хитрое описание буфера :
lpch -
Value of lParam. Points to the buffer that receives a copy of the line. The first word of the buffer specifies the maximum number of characters that can be copied to the buffer.
Пробую подсунуть адрес String, он примерно так и устроен, но ни фига не работает.

Size := SendMessage(hControl, EM_LINELENGTH, 0, 0);
SetLength(sText, Size);
Size := SendMessage(hControl, EM_GETLINE, 0, LongWord(@sText));


 
ANB ©   (2005-04-21 15:23) [6]

Уфф, уж мне эти мелкософтовые. Вот так работает :

var sText : String;
. . .
Size := SendMessage(hControl, EM_LINELENGTH, 0, 0);
SetLength(sText, Size);
TextLen := @sText[1];
TextLen^ := Size;
Size := SendMessage(hControl, EM_GETLINE, 0, LongWord(PChar(sText)));
SetLength(sText, Size);


 
mgcr ©   (2005-04-21 15:30) [7]


> А что взамен ?


А это смотря чего ты хочешь получить.


 
ANB ©   (2005-04-21 15:35) [8]


> А это смотря чего ты хочешь получить.
- читай внимательно :


> Вот так работает :

Получить нужно было текст эдита. Интересно, как народ только выделенный текст получает ? Мне то это не нужно, а все таки ?


 
mgcr ©   (2005-04-21 17:31) [9]


> Интересно, как народ только выделенный текст получает ?
>


Наверное по-простому - WM_COPY и из Clipboard :)


 
ANB ©   (2005-04-21 17:53) [10]

Не оригинально. А если буфер чем то полезным для юзера заполнен ? Вообще то можно вытащить параметры выделения и самому разобрать строку . . .


 
alpet ©   (2005-04-21 18:17) [11]

>Интересно, как народ только выделенный текст получает ?
EM_GETSELTEXT ??


 
ANB ©   (2005-04-22 09:21) [12]


> alpet ©   (21.04.05 18:17) [11]
см. историю вопроса - не работает.


 
mgcr ©   (2005-04-22 10:24) [13]

ANB ©   (21.04.05 17:53) [10]


> Не оригинально


Я в очереди в патентное бюро не стою.


> А если буфер чем то полезным для юзера заполнен ?


Тогда твою программу не надо запускать.


> Вообще то можно вытащить параметры выделения и самому разобрать
> строку . . .


Можно. Только кода писать надо побольше.


 
alpet ©   (2005-04-22 10:25) [14]

ANB ©   (22.04.05 09:21) [12]
>см. историю вопроса - не работает.

Мда. Понятно - WM_USER + ххх обычным контролам such as Edit должны быть по барабану. Для multiline Edit контрола могу также предложить EM_GETHANDLE, правда она дает лищь дескриптор блока памяти и в другом процессе извлекать его содержимое будет сложнее.


 
ANB ©   (2005-04-22 10:59) [15]


> Можно. Только кода писать надо побольше.
ну, строк на 5-10. Зато универсально и никому не мешает.
У буфера есть еще минус. Моя прога может работать в фоновом режиме, и, пока она какое нибудь приложение тестит, тестер может пока в ворде чего нибудь писать и буфер юзать. И тут либо мы ему буфер за...гадим, либо он нам может умудриться.



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

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

Наверх





Память: 0.48 MB
Время: 0.044 c
4-1114245891
dron-s
2005-04-23 12:44
2005.06.14
Куда установлена система


1-1117120799
CRACKISH
2005-05-26 19:19
2005.06.14
БЛокирование программы!


3-1114784643
slaga
2005-04-29 18:24
2005.06.14
Ожидание подключения к удаленой БД


1-1117000756
Cash
2005-05-25 09:59
2005.06.14
Как правильно создать контрол из DLL


4-1113990260
Grief
2005-04-20 13:44
2005.06.14
Скоростная работа с битмапами





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