Q&A

  • 워드 띄우기 완성.. 의견 주세요... (소스포함)
그동안 귀찮게해드려 죄송하고여.. 완성했습니다..

여기저기 다니면서 껴마추기 하면서 많이 배웠습니다...(초보라)

제가 만든거는요 버튼 클릭하면 워드가 실행하고 두번이상 뜨지 않는거고여..

종료하면 워드랑 원래 프로그램이 모두 닫히는 거에여...

근데... 제가 원하는게 되긴 하는데..좀더 간단한 방법이 있을것 같아 소스를 올립니다..

많은 의견 주세여~~

그럼 아래는 소스입니다..

unit word;



interface



uses

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

word2000, StdCtrls;



type

TForm1 = class(TForm)

Memo1: TMemo;

Button4: TButton;

Button3: TButton;

procedure FormDestroy(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

wordApp,Range : oleVariant ;

end;



var

Form1: TForm1;



implementation

uses

comobj, ActiveX;

{$R *.DFM}



procedure TForm1.FormDestroy(Sender: TObject);

{



begin

wordApp := FindWindow('opusapp', nil);

if wordApp > 0 then

SendMessage(Wnd, WM_CLOSE, 0, 0);

end;// 원하는 으로그램 종료 opusapp는 워드의 클래스명

}



var

VClose: OleVariant;

WordActivated: Boolean;

begin

WordActivated := False; // 왜 쓰는지 모름

VClose := findwindow('opusapp', nil);//워드의 클래스명이 opusapp이다

if VClose = 0 then

close

else begin

VClose := GetActiveOleObject('Word.Application');

VClose.Application.Quit;

WordActivated := True; // 왜 쓰는지 모름

end;

end;

procedure TForm1.Button4Click(Sender: TObject);

var

WinHandle : hwnd ;

Result : HResult;

Unknown: IUnknown;

begin

Result := GetActiveObject(CLASS_wordApplication, nil, Unknown);

if (Result = 0) then begin // 이미 워드가 실행중인지를 체크

WinHandle := findwindow('opusapp',nil);

if (WinHandle <> 0 ) then

begin

BringWindowToTop(WinHandle);

ShowWindow(WinHandle, SW_RESTORE);

end;

end //if문의 끝

else begin

try

WordApp := CreateOLEObject('Word.Application') ;

WordApp.Documents.Add ; //새문서 추가

Range := WordApp.Documents.Item(1).Range;

Range.Text := memo1.text;

except

Application.MessageBox ( 'MS Word를 열 수 없습니다' + chr(13) +

'MS Word가 설치되어있는지 확인하십시요' , '알림' , MB_OK ) ;

end; //try 문의 끝

WordApp.Visible := True ;

end; //esle문의 끝

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

WordApp := CreateOleObject('Word.Application');

WordApp.Visible := True;

WordApp.Documents.Add;

Range := WordApp.Documents.Item(1).Range;

Range.Text := memo1.text;

end;

end.





0  COMMENTS
    • 델초보
    • 2000.06.03 21:08
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2000.06.03 21:42
      델초보 wrote: > 안녕하세요... > 음...저는 ADO를 이용해서 클라이언트에서 DB에 접근할 수 있게 하는 ...
    • 델초보
      2000.06.03 22:13
      감사한데... 델코가 지금 안되네요.... 급한데 그냥 알려주시면 .... 무리인다요? 죄송합니다... 바쁘...
    • 혀기
    • 2000.06.03 21:07
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 왕초보
    • 2000.06.03 21:03
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 화랑
      2000.06.06 05:40
      델파이 5.0 부터는 Active Server Object를 만들수 있습니다.. 여기에서 Method로 리턴값을 받으면 되지...
    • 뎐세
    • 2000.06.03 20:50
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 타락천사
      2000.06.04 03:35
      안녕하세여.. 타락임다..^^ 우선 비동기 전송은 컴포넌트 팔래트의 소켓컴포넌트쓰면 문제가 없구여.. ...
    • 뎐세
      2000.06.05 03:16
      답변은 감사하지만, 제가 원하는 답이 아뉘네요~~ WSA_Select(?)인가 뭐 이런 API들은 윈도 handle을 가...
    • 구창민
      2000.06.03 21:39
      어린왕자 wrote: > 제목 그래로 입니다.. > 부모의 프로텍티드된 메소드를 사용하고 싶은데.. > 어떤 방...
    • 구창민
      2000.06.03 20:51
      사발우성 wrote: > StatusBar 에다 힌트가 나오게 하고 싶어업 어떤 속성에구현하면 좋을까엽... > > ...
    • 구창민
      2000.06.03 20:50
      델초보 wrote: > 안녕하세요. > > 엑셀처럼 메인폼안에서 자식폼이 영역을 벗어나지 못하게 하고 싶어...
    • 델초보
      2000.06.03 21:47
      창민님 답변 감사합니다. MDI 아닌 윈도우 API로는 안되는지요? 정말 감사합니다.. 그럼 즐거운 주...
    • 구창민
      2000.06.03 20:46
      미친척 wrote: > > 안뇽하시와엽 고수님들... 흠... > > 지가엽 데이터타임픽업 컨포넌트로엽.... ...
    • 미친척
      2000.06.03 20:50
      구창민 wrote: > 미친척 wrote: > > > > 안뇽하시와엽 고수님들... 흠... > > > > 지가엽 데이터...
    • 사발우성
      2000.06.03 20:04
      안뇽 하십니까 초보사발임당.....^^ 미천한 실력이지만 갈켜드리줘...... label1.caption:=formatdateti...
    • 문형록
      2000.06.05 05:40
      사발우성 wrote: > 안뇽 하십니까 초보사발임당.....^^ 미천한 실력이지만 갈켜드리줘...... > > label...
    • 강인규
      2000.06.03 19:54
      문형록 wrote: > 지금 프로그램을 실행하면서 컴의 날짜를 레이블에 출력을 하려고 합니다. > > 쉬울것...
    • 병규
    • 2000.06.03 19:41
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2000.06.03 19:38
      사발우성 wrote: > with query4 do > begin > close; > sql.Clear; > sql.Add('...
    • 유레카
      2000.06.03 19:26
      사발우성 wrote: > with query4 do > begin > close; > sql.Clear; > sql.Add('...
    • ...
      2000.06.03 19:22
      사발우성 wrote: > with query4 do > begin > close; > sql.Clear; > sql.Add('...
    • 사발우성
      2000.06.03 19:52
      ... wrote: > 사발우성 wrote: > > with query4 do > > begin > > close; > > sql.Cl...
    • 노상균
    • 2000.06.03 18:15
    • 1 COMMENTS
    • /
    • 0 LIKES
    • ...
      2000.06.03 18:22
      노상균 wrote: > 제가 너무 몰라서요.... > > Dbedit에 mask형식을 주어서 입력하는 방법을 여쭤보았는...
    • 하재춘
    • 2000.06.03 18:15
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 맹주형
      2000.06.04 21:21
      델파이와 AS/400의 DB2와 연결을 하시려면 다음과 같이 하시면 됩니다. (1)먼저 PC에 CA400을 설치하여 ...
    • 손규만
    • 2000.06.03 17:45
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2000.06.03 19:44
      손규만 wrote: > var > PUZ, YPW : ARRAY[0..100] OF DOUBLE; > > 위와 같이 puz, ypw에 들어있...
    • 이진수
    • 2000.06.03 09:31
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 알리바바
      2000.06.21 22:18
      안녕하셔여 원하시는 정보는 구하셨나여 만약 못구하셨다면 제홈페이지에 플러그인 구현 소스와 샘플이...
    • 알리바바
      2000.06.21 22:17
      안녕하셔여 원하시는 정보는 구하셨나여 만약 못구하셨다면 제홈페이지에 플러그인 구현 소스와 샘플이...
    • 알리바바
      2000.06.21 22:17
      안녕하셔여 원하시는 정보는 구하셨나여 만약 못구하셨다면 제홈페이지에 플러그인 구현 소스와 샘플이...