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
[4386] [답변] 이병덕/ AsyncPro..COM4는 이상없습니다.
ghrbs [ ] 1108 읽음    1998-09-04 18:15
ServMain.pas가 TMimain.pas을 참조하고 있네요.

프로그램의 순서가
ServMain.Create : 코딩이 없군요
TMimain.Crwate : ini파일을 생성하구
ServMain.Show : TMimain 위치잡아주구
ServMain.Show : ComPort의 초기화를 했군요.

제가 소스를 좀 고쳐 봤습니다.

저는 델파이 2.0을 쓰고 있어서 컴퍼넌트가 많이 없습니다.
실행을 시켜도 어떻게 작동이 좀 힘드네요.

얼렁 이 프로젝트 끝나고 업그레이드를 해야 할텐데...

글쎄.. 음..
TIniFile을 쓰셨더군요.
TIniFile.Create하면 없던 ini파일이 생기는 것 같지는 않던데요.
그리고 ini파일을 미리 만들어 놓으셨는지 모르겠지만, 바로 IniFile.ReadInteger
를 하셨더라구요. 없는데 읽을수 있는지..
제가 테스트가 모라랐는지도 모르겠네요..

전 ini파일을 다루는데 WritePrivateProfileString과 GetPrivateProfileString을 써ㅅ습니다.
두개다 API함수로 WritePrivateProfileString은 ini가 존재하지 않으면 새로 만들어서
Setting을 해주고, GetPrivateProfileString은 값을 읽어오는 역할을 합니다.


procedure TFrmTMIMain.FormCreate(Sender: TObject);
var
WritePrivateProfileString('TMI Modem Setting', 'COM', Pchar('5'), 'c:\test.ini');
end;


procedure TFrmTMIMain.FormShow(Sender: TObject);
var
Port_Buf : array[0..10] of Char;
begin

   GetPrivateProfileString('TMI Modem Setting', 'COM', '5', Port_Buf, Sizeof(Port_Buf), 'c:\test.ini'); //읽어온다.
   Com := StrToInt(Port_Buf) ;
   ComPort.ComNumber:=Com;
   try
      ComPort.InitPort ;
   except
      ShowMessage('열기가 실패했습니다.');
   end;
end;

이렇게 했습니다.
ComPort.AutoOpen은 False/True 포트를 여는데는 모두 아무 상관없었습니다.

Tapi를 쓰실려고 하는거 같은데..
혹시 TApi때문에 그러는게 아닐까..

Tapi를 쓸려면 ComPort.Open와 ComPort.AutoOpen은 False로 놓고 TApiMode는 tmOn이면
그다지 문제가 생기진 않던데...

ComPort.InitPort는 물리적으로 포트를 여는 방법입니다.
Tapi를 쓰실려면 포트의 Open작업은 TapiDevice.ConfigAndOpen
가 있어서 별로 신경쓰지 않아도 되던데..


짧은 지식으로 도움이 되었나 모르겠네요.

소스를 받아보니 상대적으로 제 소스가 너무 너저분해서 좀 충격이었습니다.
저도 소스를 깔끔하게 정리좀 해야 겠습니다.


제 답변이 어긋났다면

한번 Tracing해서 차례로 소스를 따라가 보세요.
많이 복잡하긴 하지만..
그럼이만.





+ -

관련 글 리스트
4386 [답변] 이병덕/ AsyncPro..COM4는 이상없습니다. ghrbs 1108 1998/09/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.