DDE (syntalk)

0

Witam!
Chcialbym napisac aplikacje ktora komunikuje sie z programem syntalk za pomoca kanalu DDE, niestety z tego co wyczytalem w pomocy w Delphim nie radze sobie. Mogl by ktos zarzucic najprostrzym kodem ktory to robi?
Oto to co napisali w tym programie (syntalk) z ktorym mam sie komunikowac :

SynTalk jest serwerem DDE, co umożliwia integrowanie go z innymi aplikacjami. Serwer syntezy mowy zarejestrowany jest w systemie pod nazwą: service name = "Syntalk". Obsługa syntezy jest operacją z grupy o nazwie topic name = "System". Tekst przesyłany przez kanał DDE powinien być skierowany do jednostki danych o nazwie item name ="text".
Współpraca z SynTalkiem - serwerem DDE rozpoczyna się od nawiązania połączenia między aplikacjami. Następnie aplikacja klienta wysyła tekst, który ma być poddany syntezie, po czym wydaje komendy sterujące procesem syntezy. Dostępne są komendy:

read - do rozpoczęcia wypowiadania tekstu,
pause - do zatrzymania procesu syntezy,

break - do przerwania wypowiedzi.

Gdy aplikacja klienta nie potrzebuje dłużej korzystać z usług SynTalka, kończy konwersację z serwerem DDE.
Poniżej podany został przykład makrokomendy dla edytora tekstu MS Word wykorzystującej syntezer do wypowiedzenia tekstu zawartego w bieżącym dokumencie. Komunikacja między aplikacjami odbywa się przez kanał DDE.

Sub MAIN
channel = DDEInitiate("Syntalk", "System")
DDEPoke channel, "text", GetBookmark$("\Doc")
DDEExecute channel, "[read]"
DDETerminate channel

End Sub

Pozdrawiam,
TrumpeT

0

NIeiwem o co ci chodzi... Przeciez w artykulach jest juz opisane jak zrobic taki program... a jesli nie ma to zglos sie domnie. Ale powinien byc :) Nawet w gotowacach albo w download poszukaj.

0

Niestety w artykulach o Delphi nic nie znalazlem, jedynie w FAQ cos o komunikacji z mIRCem poprzez DDE, ale nie udaje mi sie przerobic kodu, moj wyglada tak:

procedure syntalk(Service, Topic, Cmd: string);
var
  DDE: TDDEClientConv;
begin
  try
    DDE := TDDEClientConv.Create(nil);
    DDE.SetLink(Service, Topic);
    DDE.OpenLink;
    DDE.PokeData(Topic, PChar(Cmd));
  finally
    DDE.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  syntalk('Syntalk', 'System', 'read');
end;

Oczywiscie brakuje

tekst przesyłany przez kanał DDE powinien być skierowany do jednostki danych o nazwie item name ="text".

Nie wiem jak przeslac ten tekst poprzez item??

0

Ja próbuję ten kod i mówi że nie wie co to jest DDE. Mam pytanie jaki to trzeba dodac moduł aby to działało a może jakiś komponent?

0

Jest napisane - potrzeba komponentów DDEClientItem i DDEClientConv

1 użytkowników online, w tym zalogowanych: 0, gości: 1