Q&A

  • (질문)activex와 IE 전쟁중...
activex ocx를 만들어 ie에 올리면

잘되다가 ie오류메세지와 함께

기계가 종종 죽어버립니다..

왜그런지..

몇일간 기계를 새로 포멧을 하고 난리가 아닙니다..

그래도 되질 않는군요..

도데체 뭐가 문젠지 알아야 죽이건 밥이건 만들텐데...

무식한게 죕니다..

한수 지도 바랍니다

3  COMMENTS
  • Profile
    임정영 2001.04.03 19:58
    흐흠.....

    아마도 맞는지는 몰라도 메모리 에러인듯!

    혹시 activex ocx 에서 여러 창을 여신다면 종료시에 반드시 메모리를

    free 시켜줘야 하는 것 같습니다.



    초보 wrote:

    > activex ocx를 만들어 ie에 올리면

    > 잘되다가 ie오류메세지와 함께

    > 기계가 종종 죽어버립니다..

    > 왜그런지..

    > 몇일간 기계를 새로 포멧을 하고 난리가 아닙니다..

    > 그래도 되질 않는군요..

    > 도데체 뭐가 문젠지 알아야 죽이건 밥이건 만들텐데...

    > 무식한게 죕니다..

    > 한수 지도 바랍니다

  • Profile
    초보 2001.04.04 02:47
    임정영님!!

    그럼 메모리를 free 시키는 방법도 갈켜주셔야죵~~~

    부탁합니다..



    임정영 wrote:

    > 흐흠.....

    > 아마도 맞는지는 몰라도 메모리 에러인듯!

    > 혹시 activex ocx 에서 여러 창을 여신다면 종료시에 반드시 메모리를

    > free 시켜줘야 하는 것 같습니다.

    >

    > 초보 wrote:

    > > activex ocx를 만들어 ie에 올리면

    > > 잘되다가 ie오류메세지와 함께

    > > 기계가 종종 죽어버립니다..

    > > 왜그런지..

    > > 몇일간 기계를 새로 포멧을 하고 난리가 아닙니다..

    > > 그래도 되질 않는군요..

    > > 도데체 뭐가 문젠지 알아야 죽이건 밥이건 만들텐데...

    > > 무식한게 죕니다..

    > > 한수 지도 바랍니다

  • Profile
    임정영 2001.07.05 16:55
    잘 알지도 못하는데 제 경험을 토대로 몇자 적어 보겠습니다.



    먼저 ActiveX에서는 Tform을 Auto Create하지 못하기 때문에 수동으로 Create 하는데요

    ActiveX form 에서 일단 Create 를 해주면 ( ex-> frmMain := TfrmMain.Create(nil); )

    종료시에 생성되었던 frmMain을 풀어줘야 한다는 것입니다.

    즉 frmMain.Free(); 이렇게요....

    그런데 여기서 문제는 끝나지 않더라고요 ActiveX form에서 어떤 이벤트에 의해서

    생성된 frmMain 같은 form같은 것이 떠 있는 상태에서 브라우져를 죽이게 되면

    에러가 생길 겁니다.

    정말 미치는 경우죠.

    하지만 저도 1년여 정도를 헤메다가 방법을 찾았습니다.

    혹시 IE에서 OCX에 파라메타를 전송하는 방법을 아시는지요.

    하여간 html에는 onload 와 onunload가 있는데 이놈들을 이용하는 거죠.

    onload에서 값을 ocx에 넘겨서 어떤 처리를 할 수도 있고(인증같은거) onunload는 IE를 죽일때

    OCX에 값을 넘기거나 어떤 이벤트를 발생시킬수 있습니다.

    즉 이 onunload란놈을 이용하여 ocx이벤트에서 frmMain.free(); frmMain.close(); 를 처리하시면

    브라우져를 죽일때 에러가 안납니다.

    예제는 아래와 같습니다.



    //// HTML부분












    classid="clsid:C76BD1C3-6EB9-11D5-AE20-1111177D5086"

    codebase="http://URL을 적고/TestOcx.cab"

    width=120

    height=30

    align=center

    hspace=0

    vspace=0

    >







    OCX 부분

    1 . TypeLibrary를 열어서 Property를 추가하세요..(sessionid, logout )

    2. 추가후 Refresh를 누르면 아래와 같이 두개가 생깁니다.



    function TfrmActiveXMain.Get_sessionid: OleVariant;

    begin

    여기는 값을 HTML로 넘기는 곳입니다.(ActiveX Form 생성될때)

    end;



    procedure TfrmActiveXMain.Set_sessionid(Value: OleVariant);

    Var

    sID : String;

    begin

    sID := Value;

    ActiveX Form이 생성될때 HTML에서 값을 받아서 어떤 작업을 원하시면 여기서 코딩처리 하시고요..

    end;





    function TfrmActiveXMain.Get_logout: OleVariant;

    begin

    여기는 값을 HTML로 넘기는 곳입니다.

    end;



    procedure TfrmActiveXMain.Set_logout(Value: OleVariant);

    var

    Logout : String;

    begin

    Logout := Value; // 여기서는 종료하는 마당이니 뭐 꼭 써야 할 필요는 없습니다.

    frmMain.free();

    frmMain.close();

    end;



    # 위의 예에서 frmMain는 ActiveX Form에서 수동으로 Create된 창입니다.





    초보 wrote:

    > 임정영님!!

    > 그럼 메모리를 free 시키는 방법도 갈켜주셔야죵~~~

    > 부탁합니다..

    >

    > 임정영 wrote:

    > > 흐흠.....

    > > 아마도 맞는지는 몰라도 메모리 에러인듯!

    > > 혹시 activex ocx 에서 여러 창을 여신다면 종료시에 반드시 메모리를

    > > free 시켜줘야 하는 것 같습니다.

    > >

    > > 초보 wrote:

    > > > activex ocx를 만들어 ie에 올리면

    > > > 잘되다가 ie오류메세지와 함께

    > > > 기계가 종종 죽어버립니다..

    > > > 왜그런지..

    > > > 몇일간 기계를 새로 포멧을 하고 난리가 아닙니다..

    > > > 그래도 되질 않는군요..

    > > > 도데체 뭐가 문젠지 알아야 죽이건 밥이건 만들텐데...

    > > > 무식한게 죕니다..

    > > > 한수 지도 바랍니다

      • 류종택
        2001.04.03 04:49
        Frame은 같은 부모에서 생성되는 콤포넌트 이기 때문에 동적 생성시 Name 프로퍼티를 바꿔주는 것이 당연...
      • 쭉쭉빵빵
        2001.04.03 05:10
        적어도 리소스 적게 먹는것은 맘에 드네요. 98에서 리소스와 한판 전쟁을 하고 있거든요. 류종택 wro...
      • 최용일
        2001.04.03 22:25
      • 이석현
        2001.04.04 00:57
      • 최용일
        2001.04.04 01:54
      • 이석현
        2001.04.04 04:31
      • 최용일
        2001.04.04 21:02
      • 초보
      • 2001.04.03 03:47
      • 3 COMMENTS
      • /
      • 0 LIKES
      • 임정영
        2001.04.03 19:58
        흐흠..... 아마도 맞는지는 몰라도 메모리 에러인듯! 혹시 activex ocx 에서 여러 창을 여신다면 종료시...
      • 초보
        2001.04.04 02:47
        임정영님!! 그럼 메모리를 free 시키는 방법도 갈켜주셔야죵~~~ 부탁합니다.. 임정영 wrote: > 흐흠....
      • 임정영
        2001.07.05 16:55
        잘 알지도 못하는데 제 경험을 토대로 몇자 적어 보겠습니다. 먼저 ActiveX에서는 Tform을 Auto Create...
      • 준초보
      • 2001.04.03 03:10
      • 1 COMMENTS
      • /
      • 0 LIKES
      • 쭉쭉빵빵
        2001.04.03 03:38
        procedure Tform1.TreeView1Click(Sender: TObject); begin TreeView1.Selected
      • 조복기
        2001.04.03 13:04
        문법에러이니만큼 어떤 RDB를 사용하며 어떤 SQL문인지 같이 올려주셨음 하네여.. 이윤선 wrote: > ...
      • 이윤선
        2001.04.03 13:05
        소스이구여...DB는 ADO객체를 사용했거든여... unit Unit1; interface uses Windows, Messages...
      • 조복기
        2001.04.03 13:05
        제가 보기엔 SQL문 대입시(add) 앞줄과 뒷줄의 띄워쓰기 문제같거든여.. insert문을 예로 들때 이름과 ...
      • 김명찬
      • 2001.04.03 03:06
      • 1 COMMENTS
      • /
      • 0 LIKES
      • 류종택
        2001.04.03 04:40
        Main Menu --> Tools --> Invironment Options 화면에서 Autosave Options 에서 Editor Files를 선택...
      • 호야
      • 2001.04.03 02:26
      • 3 COMMENTS
      • /
      • 0 LIKES
      • 좋은날
        2001.04.04 21:02
        호야 wrote: > * 사용환경 : 델파이5 / Windows 98 > > 궁금한게 모냐면여... > > DB Grid 더블클릭...
      • 바버
        2001.04.03 03:18
        procedure TForm1.DBGrid1DblClick(Sender: TObject); begin Edit1.Text := Table1.FieldByName('COL_1...
      • 호야
        2001.04.03 03:37
        먼저 님의 답변 무지 감사드립니다... 근데 님의 대답은 저두 알고 있는 사실인데여.. 제가 알고자 ...
      • 이창완
      • 2001.04.03 13:08
      • 2 COMMENTS
      • /
      • 0 LIKES
      • 홍세비
        2001.04.03 13:08
        안냐세요. 홍세빕니다. hello.exe 파일이 있는 폴더의 권한이 '실행'으로 되어있는지 확인해 보세요. ...
      • 이창완
        2001.04.03 02:39
        홍세비 wrote: > 안냐세요. 홍세빕니다. > > hello.exe 파일이 있는 폴더의 권한이 '실행'으로 되어있...
      • 류종택
        2001.04.03 13:17
        MIDAS를 사용하세요!! 감사혀 wrote: > Database를 한번 Connect해놓고 여러 실행파일에서 접속하여 사...
      • 감초
        2001.04.03 03:41
        저는 전에 게임방 프로그램에서 접속된 Client들의 IP를 알아낼때 서버에서 Edit1.text := Socket.Remote...
      • 임정영
        2001.04.03 20:01
        저도 미들웨어(Remote Data Module)에서 아래와 같이 어떤 클라이언트가 붙어 있는지 확인하고 제어 했는...
      • 강동희
      • 2001.04.03 00:15
      • 5 COMMENTS
      • /
      • 0 LIKES
      • hobakpa
        2001.04.03 01:05
        강동희 wrote: > 사용할 db는 파라독스 타입의 trans.db입니다. > > trans.DB는 Query1컴포넌트에 연...
      • 강동희
        2001.04.03 03:30
        hobakpa wrote: > 강동희 wrote: > > 사용할 db는 파라독스 타입의 trans.db입니다. > > > > trans.D...
      • hobakpa
        2001.04.03 04:05
        > 질문한 '강동희' 인데요... > Price필드의 검색은===> 범위(Range)를 주었거던요.... > 그래서,,, 다...
      • 쭉쭉빵빵
        2001.04.03 03:55
        price 가 numeric이라고 가정합니다. var s : string; with query1 do begin close; Sql.clea...
      • 강동희
        2001.04.03 08:23
        진지하고, 성의 있는 답변... 감사합니다.
      • 이한
      • 2001.04.03 00:14
      • 1 COMMENTS
      • /
      • 0 LIKES
      • Gromit
        2001.05.16 12:48
        이한 wrote: > for tx := 0 to ImageRotated.Width - 1 do > for ty := 0 to ImageRotated.Height -...
      • ㅋㅋㅋ
        2001.04.03 13:10
        속성에 InitialDir 이 있군여.. 여기서 디폴터 디렉토리를 작성하면... 권혁주 wrote: > 안녕 하세...
      • 김일영
        2001.04.03 13:16
        만들고자 하시는 패키지 즉 Package1이라는 패키지가 dclhrp40이라는 패키지를 암시적으로 사용하고 있어...
      • hobakpa
        2001.04.02 23:34
        저도 허접입니다.... 40439번에 관련되어 고수들이 리플을 달았놓았어요... 아마도 60페이지에 있을겁...
      • 칠라기
        2001.04.03 00:45
        델파이 팁에 가면 있어용... 그정도의 노력을 해야죵...^^:
      • 칠라기
        2001.04.02 23:23
        모달 폼으로 띄어 봤어요..?? 쩝..
      • 바버
        2001.04.02 21:40
        델파이초보 wrote: > 안녕하세요 델파이 초보잡니다.. > 프로그램을 하나 만드는데.. > > MDI폼 1개 ...