Q&A

  • 여러 DDE item 을 연결했을때...
밑에 질문을 드렸는데 아무도 대답을 안해 주어서리....

질문을 조금 바꾸었습니다.



3개의 DdeClientItem을 놓고 DdeClientItem의 DdeConv를 동일한 DdeClientConv와 연결하였습니다. 그리고 item은 다른것을 입력하였습니다.



실행결과 처음 SetLink를 할때는 각각 연결된 값을 잘 읽습니다만, DdeServer의

값이 변경될때 처음 연결된 item만 OnChange event가 발생하고 나머지는 발생하지 않습니다.



어떻게 하면 나머지 item도 server의 data가 바뀔때 OnChange event가 일어나겠습니까?

많은 도움 바랍니다.



첨부한 File은 Excel을 상대로 Test한 것입니다. 참고 바랍니다.

unit MultiDDE;



interface



uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, DdeMan, ExtCtrls;



type

TForm1 = class(TForm)

DdeClientConv1: TDdeClientConv;

DdeClientItem1: TDdeClientItem;

edtLink1_1: TEdit;

DdeClientItem2: TDdeClientItem;

edtTopic1: TEdit;

edtTopic2: TEdit;

edtItem1_1: TEdit;

edtLink1_2: TEdit;

edtItem1_2: TEdit;

edtLink1_3: TEdit;

edtItem1_3: TEdit;

edtLink2_2: TEdit;

edtItem2_2: TEdit;

edtLink2_3: TEdit;

edtItem2_3: TEdit;

edtLink2_1: TEdit;

edtItem2_1: TEdit;

DdeClientItem3: TDdeClientItem;

DdeClientItem4: TDdeClientItem;

DdeClientItem5: TDdeClientItem;

DdeClientItem6: TDdeClientItem;

setDDE: TButton;

Poke: TButton;

Request: TButton;

Bevel1: TBevel;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Bevel2: TBevel;

Label1: TLabel;

Label2: TLabel;

DdeClientConv4: TDdeClientConv;

Button4: TButton;

Button5: TButton;

Advise: TButton;

Button6: TButton;

procedure setDDEClick(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure DdeClientItem1Change(Sender: TObject);

procedure DdeClientItem2Change(Sender: TObject);

procedure DdeClientItem3Change(Sender: TObject);

procedure DdeClientItem4Change(Sender: TObject);

procedure DdeClientItem5Change(Sender: TObject);

procedure DdeClientItem6Change(Sender: TObject);

procedure RequestClick(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure AdviseClick(Sender: TObject);

private

{ Private declarations }

procedure proSetDDE1;

procedure proSetItem1;

procedure proSetDDE2;

procedure proSetItem2;

public

{ Public declarations }

end;



var

Form1: TForm1;



implementation



{$R *.DFM}



procedure TForm1.proSetDDE1;

begin

if not DdeClientConv1.SetLink('Excel',edtTopic1.Text+'.xls') then

begin

Label1.Caption := 'NG';

Exit;

end;

label1.Caption := 'OK';

{ if not DdeClientConv2.SetLink('Excel',edtTopic1.Text+'.xls') then

begin

Label1.Caption := 'NG';

Exit;

end;

{ if not DdeClientConv3.SetLink('Excel',edtTopic1.Text+'.xls') then

begin

Label1.Caption := 'NG';

Exit;

end;

}

end;



procedure TForm1.proSetItem1;

begin

DdeClientItem1.DdeItem := edtItem1_1.Text;

DdeClientItem2.DdeItem := edtItem1_2.Text;

DdeClientItem3.DdeItem := edtItem1_3.Text;

end;



procedure TForm1.proSetDDE2;

begin

if not DdeClientConv4.SetLink('Excel',edtTopic2.Text+'.xls') then

begin

Label2.Caption := 'NG';

Exit;

end;

label2.Caption := 'OK';

{ if not DdeClientConv5.SetLink('Excel',edtTopic2.Text+'.xls') then

begin

Label2.Caption := 'NG';

Exit;

end;

if not DdeClientConv6.SetLink('Excel',edtTopic2.Text+'.xls') then

begin

Label2.Caption := 'NG';

Exit;

end;

}

end;



procedure TForm1.proSetItem2;

begin

DdeClientItem4.DdeItem := edtItem2_1.Text;

DdeClientItem5.DdeItem := edtItem2_2.Text;

DdeClientItem6.DdeItem := edtItem2_3.Text;

end;



procedure TForm1.setDDEClick(Sender: TObject);

begin

proSetDDE1;

proSetItem1

end;



procedure TForm1.Button1Click(Sender: TObject);

begin

proSetDDE2;

proSetItem2;

end;



procedure TForm1.DdeClientItem1Change(Sender: TObject);

begin

edtLink1_1.Text := DdeClientItem1.Text;

// proSetDDE1;

end;



procedure TForm1.DdeClientItem2Change(Sender: TObject);

begin

edtLink1_2.Text := DdeClientItem2.Text;

// proSetDDE1;

end;



procedure TForm1.DdeClientItem3Change(Sender: TObject);

begin

edtLink1_3.Text := DdeClientItem3.Text;

// proSetDDE1;

end;



procedure TForm1.DdeClientItem4Change(Sender: TObject);

begin

edtLink2_1.Text := DdeClientItem4.Text;

// proSetDDE2;

end;



procedure TForm1.DdeClientItem5Change(Sender: TObject);

begin

edtLink2_2.Text := DdeClientItem5.Text;

// proSetDDE2;

end;



procedure TForm1.DdeClientItem6Change(Sender: TObject);

begin

edtLink2_3.Text := DdeClientItem6.Text;

// proSetDDE2;

end;



procedure TForm1.RequestClick(Sender: TObject);

begin

DdeClientConv1.RequestData(edtItem1_2.Text);

end;



procedure TForm1.Button4Click(Sender: TObject);

begin

DdeClientConv1.OpenLink;

end;



procedure TForm1.Button5Click(Sender: TObject);

begin

DdeClientConv1.CloseLink;

end;



procedure TForm1.AdviseClick(Sender: TObject);

begin

DdeClientConv1.StartAdvise;

end;



end.



0  COMMENTS
    • 김기영
    • 1999.04.27 22:13
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김동원
      1999.07.08 19:59
      정보처리기사 문제에 대해 예제를 찾아보려는데 비베로 짜여진것 밖에 없는것 같습니다.. 올해 실기시험...
    • 신인재
      1999.04.27 23:01
      아래의 내용은 델파이 코리아의 하영재님의 답변을 갈무리해온 것입니다. -------------------- 아래---...
    • 우중산보
      1999.04.29 21:47
      신인재님... 캄싸함다... 고수님의 말 한방에 걍 감동의 물결임다. 다시 한번 캄사... 꾸벅
    • 아리
    • 1999.04.27 20:03
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 오상석
      1999.07.08 19:44
      안녕하세요. 현재 학교 시스템이 셀러론366 소켓 방식과 펜티엄2 266인데, 델파이를 설치하면 셀러론 시스...
    • 신인재
      1999.04.27 22:05
      영대님의 홈에 가보세요 거기에 쿼리결과를 엑셀로 옮기는 게 있는데 아마도 도움이 될꺼 같습니다. ...
    • 이정욱
      1999.07.09 01:43
      글쎄요.. 제생각에는 CPU보다는 설치해놓은 Window에 문제가 있는듯 하네요. 윈도우를 다시 설치해보...
    • 최선기
    • 1999.07.08 19:30
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 정찬기
      1999.04.27 19:01
      안녕하세요? 델파이에서 쇽웨이브 파일을 실행시키는 방법이 있다는데요 OLE 개체로 삽입하면 된다는...
    • 철이
      1999.07.23 00:45
      최선기 께서 말씀하시기를... > sql문에서 인용부호의 의미좀 알려주세요.. 예를 들어 아래와 같은 문장. ...
    • 신인재
      1999.04.27 22:02
      Components 메뉴에 import ActiveX Control항목을 선택하면 ListBox에 인스톨이 가능한 ActiveX컨트롤들...
    • 데빠이
      1999.07.08 19:52
      최선기 께서 말씀하시기를... > sql문에서 인용부호의 의미좀 알려주세요.. 예를 들어 아래와 같은 문장. ...
    • 강동엽
    • 1999.04.27 22:01
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이명학
      1999.07.08 19:14
      어제 질문을 올렸었는데 답변을 해주셔서 감사합니다. 그런데.. 오늘 또 문제가 생겼네요. Unit DBCt...
    • 신인재
      1999.04.27 22:51
      음냐 teechart를 이용해 보세요. 정말 막강한 툴입니다. 아마 하시려고 하는 작업에 부족함이 없을 것입...
    • 정동만
      1999.04.27 21:50
      박선영 wrote: > 간단한 메세지를 보여주는 테스트 프로그램을 실행후 디자인 모드로 돌아와서 > 델파이...
    • 김동원
    • 1999.07.08 18:38
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최석기
      1999.07.08 20:29
      김동원 께서 말씀하시기를... > 전에 오라클에서는 sql에서 decode문과 subquery문을 사용했는데 > parad...
    • 박준영
      1999.07.08 18:35
      감사한 마음과 아울러 질문한가지... 엑셀을 사용하다보면 그리기 도구가 있습니다. 개체형태로 존재하...
    • 글쎄요.
      1999.04.27 23:18
      제가 알기로는 컴파일을 할 때는 예외처리를 하더라도 예외(디폴트,영어 메세지)가 발생합니다.그러나 실행...
    • 신인재
      1999.04.27 22:35
      아마두 아래의 exception 코드를 써주어야 하지 않을까 생각됩니다. try except on EInvalidGraphi...
    • 강두헌
    • 1999.04.27 21:12
    • 0 COMMENTS
    • /
    • 1 LIKES
    • 경희
      1999.04.27 20:53
      안녕하세요. 델파이 초보자입니다. 퀵레포트를 사용하다 보니 힘이 드네요. 저는 현재 당직관리라는 프...
    • 이정욱
      1999.07.09 01:58
      안녕하세요? 델파이는 이벤트 드리븐 형식의 프로그래밍을 사용하고 있습니다. 모든 윈도우 프로그래...
    • 하명훈
    • 1999.07.08 15:21
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 박선영
      1999.04.27 20:49
      간단한 메세지를 보여주는 테스트 프로그램을 실행후 디자인 모드로 돌아와서 델파이를 종료하려고 하니...
    • 정동만
      1999.04.27 21:50
      박선영 wrote: > 간단한 메세지를 보여주는 테스트 프로그램을 실행후 디자인 모드로 돌아와서 > 델파이...
    • qreport
    • 1999.04.27 20:26
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 황문영
      1999.07.08 11:31
      안녕하세요 델파이 갓입문한 초보입니다. TextDialog := 'You Open File ' + OpenDialog1.FileName; Mess...
    • 신인재
      1999.04.27 22:32
      qreport wrote: > 안녕하세요. > > ISAM 파일을 델파이에서 읽을 수 없는지요.. > > 아니면 델파이...
    • 이정욱
      1999.07.08 16:03
      음.. 왜 0, 에서는 에러가 안걸렸는지 모르겠네요.. 후.. 아래와 같이 해보세요. MessageBox(PChar(TextD...
    • 강경중
    • 1999.04.27 05:12
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 글쎄요.
      1999.04.27 20:09
      1.첫번째 질문 Edit1의 길이 제한을 두고 StrToIntDef함수를 사용해 체크하면 됩니다. 다음은 그 예(길이...
    • 박성훈
    • 1999.07.08 08:55
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 권경부
      1999.07.08 09:00
      제가 알기로는 그러한 특수한 프린터는 자기들만의 코드가 있는것으로 알고 있습니다. 터미널의 안시코드...
    • 한승현
    • 1999.04.27 20:04
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.04.27 22:44
      쩝.. 그런 컴포넌트를 처음 보는군요... 그 컴포넌트를 한번 이곳(한델) 자료실에 올려봐 주세요. 한...
    • 한승협
    • 1999.07.08 08:02
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.07.08 08:07
      Assigned tests for a nil (unassigned) pointer or procedural variable. Unit System Category ...
    • 아리
    • 1999.04.27 20:03
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.04.27 22:05
      영대님의 홈에 가보세요 거기에 쿼리결과를 엑셀로 옮기는 게 있는데 아마도 도움이 될꺼 같습니다. ...