Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2010, 22:39   #1
xalexo
 
Регистрация: 26.09.2010
Сообщений: 5
По умолчанию отрисовка hint-окошка в позиции курсора

Есть необходимость вывести окошко с подсказкой о выделенном в произвольном открытом редакторе windows, тексте. Т.е. по принципу работы многих переводчиков, с глоб. комбинацией клавиш для вызова..

Можно ли рассчитать координаты для отрисовки hint-a, не позиции курсора мыши(здесь все прозрачно), а именно каретки приложения активного окна?
Можно ли узнать программно, о активности выделения текста в этом окне для последующих действий?
Есть ли способ получить выделенный текст без привлечения clipboard& ?


Если здесь, или у кого-нибудь есть похожие исходники, пожалуйста подскажите ссылку...
Буду благодарен, если кто нить ответит .
xalexo вне форума Ответить с цитированием
Старый 26.09.2010, 23:53   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

1)GetCaretPos
2)всмысле? сам процесс выделения? не стоит, можно узнать выделен ли текст.
3)
Код:
GetSelText(H:THandle):string;
var  R:record
       begins:LongInt;
       ends:LongInt;
      end;
begin
 Result:='';
 SendMessage(H,EM_EXSETSEL,0,LongInt(@R));
 if R.begins=R.ends then Exit;
 SetLength(Result,GetWindowTextLength(H));
 GetWindowText(H,@Result[1],Length(Result));//тут может @ не надо.
 if (R.begins<>0)and(R.ends<>-1) then Result:=Copy(Result,R.begins+1,R.ends-R.begins);
end;
примерно так
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 27.09.2010, 14:31   #3
xalexo
 
Регистрация: 26.09.2010
Сообщений: 5
По умолчанию

Спасибо за 3 ответ, думаю, очень пригодится! Clipboard, почему-то работал сомнительно, хотя я и пробовал различные варианты, вплоть до ускорителя CTRL+C - SendMessage(EditHandle,WM_COMMAND, $00010043, $00000000);

Не совсем понял, как использовать функцию getcarrentpos(?), немного таинственный для меня параметр - tpoint ( я новичок ), ожидал там увидеть что то вроде указателя handle на окно активного уровня (getforegroundwindow)...

По 2-му пунктику именно - post factum, т.е получить однозначный ответ о наличии оного, либо отсутствии.
xalexo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
memo, позиции курсора на нем BloodMaX Общие вопросы Delphi 3 08.07.2010 15:59
Обрисовывани окошка рамкой Pirotexnik Общие вопросы C/C++ 0 12.06.2010 16:11
Определить размеры окошка Alex Cones Общие вопросы Delphi 7 06.11.2009 19:17
как в пустом textarea зафиксировать позицию курсора на первой позиции ? slips HTML и CSS 5 23.10.2009 19:47
C# - отображение курсора в заданной позиции RichTextBox-а ameli Помощь студентам 0 11.05.2009 16:30