Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[4773] [질문] AsyncPro에서 이런 에러보신분 꼭 보세요
찌께다시 [ ] 1074 읽음    1998-10-01 14:15
안녕하십니까      어린프로그램머 찌께다시입니다.

아래의 내용이 좀 부실한 것같아서 보충해서 올립니다.

제 프로그램은 데이타맨 프로처럼 텔넷, 모뎀모드가 별도 있지 않고

모든 아이탬의 연결정보를 포함하고 있는 클래스가 있고 이 아이탬들을 클래스가 리스트로

관리를 하는 형태로 연결 텔넷이냐 모뎀연결이냐 하는 연결 정보는 아이탬 각각이

가지고 있기때문에 프로그램이 시작할때 모뎀을 초기화 하질 않습니다.

그리고 어떤 아이탬이 선택이 되었을 경우에 내부적으로 접속 모드를 가지고 있는

LinkItem변수를 조사해서 텔넷이냐 모뎀이냐를 구분한다음 다른 루프로 분기시켜

그에 맞는 행동을 하겠끔 되어 있습니다.

프로그램이 시작되고 연결버튼을 누르게 되면 전화접속 연결창이 뜨면서 LinkType에 따라

처리 루틴이 분기 하게 되는 것이지요...

그 부분이 전에 올렸던 소스 입니다.


{ ApplyDoc ------------------------------------------------------------------- }
procedure TTPowerEMU.ApplyDoc;
var
  Sess: Integer;
  PhoneNumber: String;
begin
  MainTerm.Active := False;
  MainTerm.Font           := ConnItem.DeskTop.FontName;
  MainTerm.DisplayRows    := ConnItem.DeskTop.DisplayRows;
  MainTerm.DisplayColumns := ConnItem.DeskTop.DisplayCols;
  MainTerm.Color          := ConnItem.DeskTop.BackColor;
  Emulator1.EmulatorType := ConnItem.Emulator;
  MainTerm.Active := True;
  MainTerm.Scrollback := ConnItem.DeskTop.ShowScroll;
  SizeToFont;
  Sess := ConnItem.Session;
  Caption := ConnItem.HostName +  SessName[Sess];
  Tag := Sess;
  LinkType := ConnItem.LinkType;
  ComPort1.Open := False;
  TelnetPort1.Open := False;
  NullPort1.Open := False;
  if ConnItem.LinkType = ltTelnet then begin  {현재 접속 아이탬이 텔넷일때}
    MainTerm.ComPort := TelnetPort1;
    TelnetPort1.DeviceLayer := dlWinsock;
    TelnetPort1.wsAddress := ConnItem.IpName;
    TelnetPort1.ComNumber := 0;
    TelnetPort1.Open := True;
    DefHost := ConnItem.HostName;
  end
  else if ConnItem.LinkType = ltModem then begin  {현재 접속 아이탬이 모뎀일때}
  if ComPort1.Open = True then
  begin
    MainTerm.BPlusTriggers := False;
    MainTerm.Active := False;
    Modem.Started := False;
    ComPort1.Open := False;
    if (AutoTrig <> 0) then
      ComPort1.RemoveTrigger(AutoTrig);
  end;
    MainTerm.ComPort := ComPort1;
    ComPort1.ComNumber := ConnItem.Modem.ComNum;
    ComPort1.Baud := ConnItem.Modem.Baud;
    {IFNDEF Win32}
    ComPort1.DeviceLayer := dlComm;  {16bit Setting}
    {ELSE
    ComPort1.DeviceLayer := dlWin32;} {32bit Settiong}
    {ENDIF}
    ComPort1.Open := True;
    ComPort1.TapiMode  := tmOff; {32bit부터 지원을 하기때문이다. 고려}
    {pConnSet.Caption := 'COM' + IntToStr(ComPort1.ComNumber) + ' ' + ConnItem.Modem.Baud;}
    ZmodemAutoSt := True;
    EnableZmodemAutoStart;    {사용자가 원한 다면 자동적으로 Z모뎀을  가동한다.}
    PhoneNumber := ConnItem.IpName;
    {Modem.Initialize;}
    {initialize the modem}
    if (ComPort1.TapiMode = tmOff) then
      if ComPort1.DCD then
      begin
        if (MessageDlg('Carrier detected.  Send modem initialization?',
                      mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
        begin
          Initializing := True;
          Modem.Initialize;
          Modem.Started := True;
        end;
      end
      else
      begin
        Initializing := True;
        Modem.Initialize;
      end;
    ConnectPhone(PhoneNumber);     {에러 발생지점}

    DefHost := ConnItem.HostName;
  end
  else if ConnItem.LinkType = ltRS232 then begin
    MainTerm.ComPort := NullPort1;
    NullPort1.ComNumber := ConnItem.Modem.ComNum;
    NullPort1.Baud := ConnItem.Modem.Baud;
   {$IFNDEF Win32}
    NullPort1.DeviceLayer := dlComm;
   {$ELSE}
    NullPort1.DeviceLayer := dlWin32;
   {$ENDIF}
    NullPort1.Open := True;
   {pConnSet.Caption := 'COM' + IntToStr(ComPort1.ComNumber) + ' ' + ConnItem.Modem.Baud;}
    DefHost := ConnItem.HostName;
  end;
  bConnect := True;  
end;

그런데 문제는 이상한것이 이게 실행 모드로 그냥 실행을 하게 되면 일단은 전화접속상태창이 열리고

(DialerDialog.Execute를 실행함)나서 (버튼이 눌려지는 소리도 안들림) ModemBusy에러가 나지만

디버깅 모드로 실행을 하게 되면 전화접속상태창이 열리고(DialerDialog.Execute을 실행)나서 천리안

으로 전화를 걸었으면 천리안에 전화가 걸리고 나서 메뉴가 떳을때 비로서 에러가 난다는 것입니다.

뭐 가 문제 일까요.... 모뎀 초기화 부분이 잘못이 되었는 것인가..

또 전화를 끊을 때도 badhandle에러가 납니다. 이런 에러들을 접해보신분 연락을 바랍니다.

이 찌께다시가 급합니다.  급해용 !!!!!!

                                       어린 프로그래머  ----찌께다시-------


+ -

관련 글 리스트
4773 [질문] AsyncPro에서 이런 에러보신분 꼭 보세요 찌께다시 1074 1998/10/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.