Форум: "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.055 c