Q&A

  • 인디쓰레드가 동적으로 생성한 브라우저가 그냥 닫혀버립니다 -.-
인디tcp 서버를 열어놓구요
사용자가 접속해서 url을 날리면 그 url을 임베디드웹으로 여는건데..

AThread.Connection.Disconnect; 이 줄을 안넣으면 프로그램이 다운되는 것처럼 가만히 있구요. 모래시계만 -_-;
이 줄을 넣으면 브라우저가 생성됐다가 바로 사라져 버립니다.

하고싶은건 원격에서 URL을 요청하면 그 페이지를 다 연후에 다시 브라우저가 free 되는건데요.. 답변 부탁드립니다..

procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
  WB: TEmbeddedWB;
  url: string;
begin
  CoInitialize(nil);
  url:=AThread.Connection.ReadLn(); //URL을 소켓으로 전달 받은 후
  WB := TEmbeddedWB.Create(nil);   //embeddedWB 브라우저를 생성하구요
  TControl(WB).Parent := Form1;
  Wb.Align:=alClient;
  WB.Loaded;
  WB.Visible := True;
  WB.Go(url);
  //특히 이 아래 문법이 맞는지 모르겠습니다. 원형은 아래에..
  WB.OnDocumentComplete:=EmbeddedWB1DocumentComplete;
  AThread.Connection.Disconnect;  //이 줄을 넣지 않으면 프로그램이 다운된것처럼 가만있습니다..
end;

procedure TForm1.EmbeddedWB1DocumentComplete(ASender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
begin
  form1.Caption:='run'; //테스트로 페이지 로딩이 끝나면 폼의 캡션을 run 으로 바꾸게 했습니다
end;

그럼.. 답변 부탁드립니다.
0  COMMENTS