2011-02-25 4 views
2

DDE를 서버로 사용하는 약간의 코드 예를 얻을 수 있습니까? 클라이언트 파트를 사용하는 방법을 알고 있지만 서버로 작동하고 데이터를 수신하도록 설정하는 것은 불가능합니다.DDE 서버 사용 방법

답변

2

Delphi 설치에서 DDEDemo라는 폴더를 찾아보십시오. Delphi에서 제공하는 DDE 프로젝트입니다 (아직 포함되어 있지만 100 % 확실하지는 않습니다.). 데모에는 DDE 클라이언트와 서버가 포함되어 있습니다.

편집 - 일부 예제 코드는 link을 사용해보십시오.

+0

더 이상 포함되지 않음, XE와 함께 표시되지 않음 – hikari

+0

와우 .. 그게 D1입니다! (D2도 가능하지만 D3은 아님). 당신은 꽤 많은 기억을 가지고 있습니다. D2007로 컴파일합니다, 의도대로 작동하는지 확실하지 않습니다. –

+0

은 데모가 클라이언트 부분 만 다루고 있습니다. – hikari

2

샘플 코드가 필요없는 DDE 서버를 사용하는 것이 매우 쉽습니다. 당신은 델파이의 폼 디자이너 내부 디자인 타임에서 그것을 할 수 있습니다 :

는 데이터를 전송하는 서버를 만들려면 :

  1. & 드롭 TDDEServerConv 및 양식 또는 데이터 모듈 TDDEServerItem.
  2. 이 에 서버 대화를 서버 항목을 연결합니다 (A 드롭 다운 목록이, 객체의 속성을 사용하여 DDEServerItem1.ServerConv = DdeServerConv1 설정할 수 있지만 더블 충분 을 클릭).
  3. 어떤 유효한 텍스트 값 (예 : 'A')

당신은 서버에 데이터를 전달하는 DDE 클라이언트에서 실행되는 매크로를 할 수 있습니다, 데이터를 수신하기를 DDEServerItem.Text 값을 설정합니다. 이를 위해 DdeServerConv.OnExecuteMacro 이벤트를 사용합니다. 다음과 같이 메모에 매개 변수 Msg : TStrings를 덤프 해보십시오.

Memo1.Lines.Assign(Msg); 

이제 프로젝트를 저장하고 실행하십시오.

는 엑셀 타입을 테스트하려면 :

=Project1|DdeServerConv1!DdeServerItem1 

엑셀 구문 부분은 다음 느낌표, 항목 이름 다음에 수직 막대, 대화 이름, 다음에 응용 프로그램 이름입니다 DDE 클라이언트.

그리고 값 (A 또는 항목의 Text 속성에 넣은 값)이 Excel에 표시됩니다.

당신이 작성한 코드가 없어도 작동하는 단일 항목 DDE 서버입니다.

나는 대화와 항목을 디자인 타임 대신 런타임에 생성하는 것이 일반적으로 더 유용하다고 생각합니다.

이전 버전 (유니 코드가 아닌)의 Delphi 버전에는 DDE 작업에 많은 도움이되는 Django라고하는 완전한 기능을 갖춘 상용 제품이 있습니다.

델파이 쪽에서 "DDE 포크"명령 처리기를 작성하는 방법에 대한 정보를 찾고있을 수도 있습니다. 나는 그것을위한 데모가 없다. 나는 그것을 시도하고 분명한 것들이 나를 위해 올바르게 작동하지 않았다. (서버의 항목에 OnPoke 이벤트가있다. PokeData라는 단순한 클라이언트를 작성했는데 작동하지 않았다.)

+0

안녕하세요. 작동하지 않아도됩니다. 내가 Excel에서 DDE를 사용하는 방법을 몰라,하지만 난 작은 클라이언트 테스터 애플 리케이션을 만들었습니다. 예를 들어, 이것은 mIRC와 함께 작동합니다 : http://pastebin.com/pqhLuZWN mIRC에서 닉네임 등의 데이터를 성공적으로 검색 할 수 있습니다. 서버 테스트 응용 프로그램에서이 정보를 사용하려고했으나 아무 것도 표시하지 않았습니다. 메모. 또한 서버에서 DDE 서비스 이름을 어떻게 지정합니까? – hikari

+0

시도했지만 작동하지 않는 경우 잘못된 서버 이름, 항목 이름 또는 항목 이름을 제공했습니다. 그것들은 유일한 세 가지 합리적인 가능성입니다. 당신이 생각하는 것만 큼 어렵지는 않습니다. 너 내가 위에서 말한 것을 본거야? 내 프로젝트의 서버 이름은 Project1입니다. 대화 이름은 DdeServerConv1이고 항목은 DDeServerItem1입니다. –

관련 문제