[No.290] 홍승현 - 99/11/11
● [질문] 프로그램간 데이타 전달
델파이 3.0을 사용하고 있는 초보자입니다.
제가 궁금한 것은 두 프로그램상에서 데이타를 전달하고 전달할수 있는 방법이
있나 하는것입니다
a.exe(메인메뉴)에서 b.exe(서브메뉴) 파일을 실행시키기 전에 버젼 체크를 하는데,
버젼이 다르면 b.exe에 있는 특정 판넬(변경 내용이겠죠~ ^^;)을 visible = true 시키
고, 버젼이 같으면 visible = false를 시킬수 있는 방법을 알고 싶습니다.
(레리스터리 건드리는 방법 빼고..)
아시는분들의 도움 부탁드립니다.
좋은 하루들 되세요!!!
(예제도 부탁드려요..제가..초보라서...--ㆀ)
> [No.290] 홍승현 - 99/11/11
> ● [질문] 프로그램간 데이타 전달
>
> 델파이 3.0을 사용하고 있는 초보자입니다.
> 제가 궁금한 것은 두 프로그램상에서 데이타를 전달하고 전달할수 있는 방법이
> 있나 하는것입니다
> a.exe(메인메뉴)에서 b.exe(서브메뉴) 파일을 실행시키기 전에 버젼 체크를 하는데,
> 버젼이 다르면 b.exe에 있는 특정 판넬(변경 내용이겠죠~ ^^;)을 visible = true 시키
> 고, 버젼이 같으면 visible = false를 시킬수 있는 방법을 알고 싶습니다.
> (레리스터리 건드리는 방법 빼고..)
> 아시는분들의 도움 부탁드립니다.
> 좋은 하루들 되세요!!!
> (예제도 부탁드려요..제가..초보라서...--ㆀ)
>
두 프로그램이 모두 승현님이 만드신 프로그램들이라면,
프로그램간의 데이터 전송은 여러가지 방법이 있답니다.
위의 예처럼 visible을 바꾸는 정도라면 사용자 정의 메세지를 보내서
해결하루도 있을겁니다.
a에서
SendMessage(b의 핸들, WM_USER+1, 0, 0);
b에서
procedure WMUSER(var Message: TMessage);message WM_USER+1;
procedure TForm1.WMUSER(var Messae: TMessage);
begin
//하고자 하는 일...
end;
이렇게 간단하게 메세지 전송으로 이벤트를 발생시킬수 있습니다.
다른 방법으로는 DDE 라는 방법이 있습니다.
이방법은 제가 잘모르지만 두 프로그램간의 데이타 전송을 하는
아주 유용한 방법이라고만 알고 있습니다.
하지만 두 프로그램이 모두 승현님이 만드신것이 아니라면
WM_COPYDAT같은 메세지를 통한 윈도우 API 함수를
사용하셔야 할겁니다. 그리고 이런 데이터전송은 한계가 있습니다.