Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как встроить в свою програму переводчик Pragma [D7, Win2k, WinXP]


Страницы:   1 2

integeri ©   (2006-11-10 10:31:00) 

Есть хороший переводчик Pragma , но нужно перевод делать через свою програму, тоесть єсть база даних, пользователь вносить текст, и моя програма в одну ячейку вставляеть текст как есть и сразу делает перевод во вторую ячейку. Может ктото  сталкивался с такой задачкой!!!


Наиль   (2006-11-13 16:10:00) [1]

> Значит возможно и здесь сильно пахнет СОМ.

Судя по Notepad, COM'ом здесь и не пахнет.
Просто программа избирательно втыкает свой пункт в чужое меню.
А вот для получения текста из IE и Word, Pragma вполне может воспользоваться предоставленым COM'ом.


Anatoly Podgoretsky   (2006-11-13 10:35:00) [2]

> integeri  (13.11.2006 10:25:23)  [23]

Если у него массовое распространение, то вряд ли свыше 200 зеленых, или может зависить от количество экземпляров программы.


integeri   (2006-11-13 10:25:00) [3]

Автор сказал што ито будет стоить, но несказал сколько , жду ответ на сколько потянит???


Орион   (2006-11-10 14:26:00) [4]

> [19] Anatoly Podgoretsky ©   (10.11.06 13:11)

Все прямые пути прорверены. Дальше - извращения :)


Anatoly Podgoretsky   (2006-11-10 13:13:00) [5]

> integeri  (10.11.2006 10:50:08)  [8]

Вот это видишь

> Copyright (C) 1998 Netscape Communications Corporation. All Rights Reserved.


Anatoly Podgoretsky   (2006-11-10 13:12:00) [6]

> integeri  (10.11.2006 10:45:05)  [5]

Значит возможно и здесь сильно пахнет СОМ.
Надо обращаться к авторам.


Anatoly Podgoretsky   (2006-11-10 13:11:00) [7]

> Орион  (10.11.2006 10:44:03)  [3]

Почему, что все пути проверены, включая покупку фирты изготовителя?


Anatoly Podgoretsky   (2006-11-10 13:10:00) [8]

> integeri  (10.11.2006 10:31:00)  [0]

К авторам обращались (обращался)?


Elen   (2006-11-10 12:46:00) [9]


> integeri

Тем примером Я тебе наводку даю как можно сделать.
w:=strtoint(ListBox1.Items[2]);
 SendMessage(w, WM_LBUTTONDOWN,MK_LBUTTON,5);
 SendMessage(w, WM_LBUTTONUP,MK_LBUTTON,5);

Цыферки те - хендели. второй хендель это копка нотепада, а этот код должен ей послать клик


integeri   (2006-11-10 12:41:00) [10]

я запустил но чото мне в ListBox1 загнало какието циферки, чо с ними то делать


Elen   (2006-11-10 12:19:00) [11]


> integeri

Дальше на твое усмотрение открывать файл или вставлять из клипбоарда


Elen   (2006-11-10 12:17:00) [12]


> integeri

Можна : Запуск блокнота с прагмой в миню :
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   ListBox1: TListBox;
   procedure Button1Click(Sender: TObject);
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public  ChildElements:string;
   { Public declarations }
 end;
  function enumChildWindow_Crtfox_Enum(h:THandle;l:integer):boolean; stdcall;

var         win:hwnd;
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin

end;

//********** FUNCTION **********
function enumChildWindow_Crtfox_Enum;
begin
form1.ChildElements:=form1.ChildElements+inttostr(h)+' ';
result:=true;
end;
//********** END FUNCTION ******

procedure TForm1.FormCreate(Sender: TObject);
var w:hwnd; s:string;
begin
w:=FindWindow('PragmaBarClass','');
EnumchildWindows(w,@enumChildWindow_Crtfox_Enum,0);
ListBox1.Items.CommaText :=ChildElements;

w:=strtoint(ListBox1.Items[2]);
  SendMessage(w, WM_LBUTTONDOWN,MK_LBUTTON,5);
  SendMessage(w, WM_LBUTTONUP,MK_LBUTTON,5);
  {}
w:=FindWindow('Notepad','Áåçûìÿííû& #233; - Áëîêíîò');
w:=FindWindowEx(w,0,'Edit','');

end;

end.


integeri   (2006-11-10 11:53:00) [13]


> Elen ©   (10.11.06 11:35) [11]

можна кусочек кода


Ketmar   (2006-11-10 11:45:00) [14]

>[11] Elen(c) 10-Nov-2006, 11:35
>Так, Пардон, Немного не так было 8)
понял. вопрос снят. %-)


Elen   (2006-11-10 11:35:00) [15]


> Ketmar

Так, Пардон, Немного не так было 8)
Запускался PragmaBar и висел на экране. Далее EnumchildWindow в этом баре находилась кнопка от блокнота. по ней давался клик WM_LBUTTONDOWN, далее запускался блокнот и там уже манипуляциями с менюшкой проводился перевод. Знаю это не совсем правильно так делать, но нужно было чето быстро решать - решили так...


integeri   (2006-11-10 11:10:00) [16]

код вище для интеграции в мозилу


Ketmar   (2006-11-10 11:00:00) [17]

>[7] Elen(c) 10-Nov-2006, 10:49
>Трудность только в определении закончила
>ли прагма переводить, это сами...
да? только в этом? поделись эксклюзивным универсальным методом определения координат любой иконки в области уведомлений, а? можешь даже статью написать. прославишься. без дураков прославишься.


integeri   (2006-11-10 10:50:00) [18]

От нашол код
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
*   Trident Software, trident@kagi.com, original author
*/

var pragmgr = Components.classes["@trident.com.ua/pragma;1"].getService();
pragmgr = pragmgr.QueryInterface(Components.interfaces.ipPragma);

function toTranslate()
{
   var doc = document.commandDispatcher.focusedWindow.content.document;
   var pframes = document.commandDispatcher.focusedWindow.content.frames;

//    alert ('this object is:   ' + pframes);
   var count = pframes.length;
//    alert ('frames count =   ' + count);

   if ( count > 0 ) {
       for (var i=0; i<count; i++) {
//            alert (pframes.frames[i].document);
//            alert (pframes.frames[i].document.body.innerHTML);

           pragmgr.TranWindow(pframes.frames[i].document.body.innerHTML);
           pframes.frames[i].document.body.innerHTML = pragmgr.TranHtml;
       }
   } else {
       pragmgr.TranWindow(doc.body.innerHTML);
       doc.body.innerHTML = pragmgr.TranHtml;
   }
}

function toOptions()
{
   pragmgr.Options();
}

function toAbout()
{
   pragmgr.About();
}


Elen   (2006-11-10 10:49:00) [19]


> integeri

Я делаю так : У меня Прагма 4 - Программно запускаю pragma.exe он свою иконку запуздыриват в часики. Далее в своей проге выделяю нужный для перевода текст и программно кликаю по запуздыренной иконке (можно и по другому конечно). В прагме предварительно выставляю настройки - сразу брать выделенный текст, сразу переводить и сразу копировать в буфер обмена. Далее закрываю прагму и беру текст из буфера. Трудность только в определении закончила ли прагма переводить, это сами...


integeri   (2006-11-10 10:46:00) [20]


> ЮЮ ©   (10.11.06 10:44) [4]
например какие
> профессиональные переводчики


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо