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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2012, 03:40   #1
Mrsqler
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 146
Вопрос Работа с выделенным текстом

Есть программа которая переводит текст из en раскладки в ru .Но для этого нужно вводить текст в окно edit.А можно ли сделать так,чтобы юзер выделял текст написанный в раскладке en(текст может находится где угодно,например при переписке в ICQ),жал на определенную кнопку, и текст переводился в ru раскладку?
Возможно ли такое реализовать на Delphi? У меня текст переводится,но только если вводить его в поле edit.Программа прилагается.
Вложения
Тип файла: zip Translit.zip (748.5 Кб, 16 просмотров)
Mrsqler вне форума Ответить с цитированием
Старый 05.05.2012, 10:24   #2
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Код:
Edit1.Text := Translit(Edit1.SelText);
Shouldercannon вне форума Ответить с цитированием
Старый 05.05.2012, 10:35   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Shouldercannon, это не то
Нужно менять в других приложениях, а не в своей программе.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 05.05.2012, 10:44   #4
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Ну, внедряться во все мыслимые чужие приложения наверно не стоит, а вот всплывающее окошко по принципу tooltip'a зыбацать можно.
Если текст выделяется, значит его можно программно скопировать, проделать транслитерацию и отобразить в тултипе. Вообще автору +1 за идею!
PS. А если все-таки надо в чужое, также программно: копировать-изменить-вставить.

Последний раз редактировалось EUGY; 05.05.2012 в 10:48.
EUGY вне форума Ответить с цитированием
Старый 06.05.2012, 12:07   #5
Mrsqler
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 146
По умолчанию

Ну,я нашел компонент AdvAlert с ним можно сделать всплывающее окно)
А чтобы я текст где-нибудь выделил,нажал на кнопку,и текст перевелся.Это можно реализовать?
Mrsqler вне форума Ответить с цитированием
Старый 06.05.2012, 13:09   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Вот примерчик.
Правда сработал только в блокноте и в самом дельфи (в аське не сработал, в адресной строке Хрома заменяет, но Хром тут же меняет обратно).
Да, перейдите в Дельфи новых версий (я компилировал в дельфи 2010).
Для работы выделяете текст и нажимаете ctrl+F1.
Вложения
Тип файла: zip pr.zip (388.3 Кб, 17 просмотров)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 06.05.2012, 13:27   #7
Mrsqler
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 146
По умолчанию

Спасибо огромное!!Правда функции вообще понять не могу)
Mrsqler вне форума Ответить с цитированием
Старый 06.05.2012, 13:31   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Пожалуйста) С пониманием не помогу, так как просто нашел функцию GetSysFocus, и убедился, что она иногда работает
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 06.05.2012, 13:55   #9
Mrsqler
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 146
По умолчанию

Код:
procedure TForm1.WMHotKey(var Mess: TWMHotKey);
var
  ACtrl: HWND;
begin
  ACtrl := GetSysFocus();
  sendmessage(ACtrl, WM_COPY, 0, 0);
  Clipboard.AsText := Translit(Clipboard.AsText);
  sendmessage(ACtrl, WM_PASTE, 0, 0);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  RegisterHotKey(Handle, 1, MOD_CONTROL, vk_f1);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  UnregisterHotKey(Handle, 1);
end;

Это создание горячих клавиш? Ctrl+F1 ?
Mrsqler вне форума Ответить с цитированием
Старый 06.05.2012, 14:02   #10
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Да. Создание и удаление перед закрытием программы.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с текстом. Marcus75 Паскаль, Turbo Pascal, PascalABC.NET 4 20.12.2011 00:35
Работа с текстом на с++ mary++ Помощь студентам 0 19.12.2011 21:55
работа с текстом Determinant666 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 07.03.2011 11:07
работа с текстом nejimakc Помощь студентам 6 09.11.2010 17:37
работа с выделенным диапазоном nastya007 Microsoft Office Excel 5 13.03.2009 08:33