Q&A

  • 컴포트 Open 및 프린터 오류 잡기
날이 더운데 고생하십시다.
이런저런 문제가 생겨서 만들고 있는 프로그램을 마무리를 못짓구 있어서 이렇게 문을 두드립니다.
자세하게는 아니여도 시도라도 해보게 알려주시면 감사하겠습니다.^^

첫번째....
CPort를 이용해서 데이터를 받아오는데..
포트를 미리 설정해놓고 사용을 하는데 만약에 통신선이 빠져버렸을 경우..
에러가 나고 실행이 안되더라구요..
에러가 나더라도 포트연결이 안되어있다는 메세지를 뿌리고 우선 실행은 되게 하고 싶은데..
예외처리를 해도 안되더라구요.
좀 알려주셨음 해요..
try
  cport.open;
except
  showmessage('포트설정이 안되어있습니다.확인하세요');
  exit;
end;

이렇게 해봤는데..메시지는 나오지도 않고 에러만 나더라구요..^^;;;;

두번째...
LPT포트를 직접 건드려서 도드프린트로 데이터를 출력을 합니다.

procedure TfrmMain.Print(str: String);
var
  lpt    : TextFile;         // LPT 포트
begin
    {$I-}
    // 출력을 위해 LPT1 Port를 연다.
    AssignFile( lpt, 'LPT1');
    // LPT1 Port를 초기화 한다.
    Rewrite(lpt);
    Write(lpt, str);
    CloseFile(lpt);

    {$I+}
end;

구문을 이용해서 말이지요..
그런데 도트프린터에서 종이가 걸려있지 않거나 온라인에 불이 들어오지 않으면 출력이 안되더라구요..
(당연한거지만..ㅋ)
종이가 안걸려있거나 온라인에 불이 들어오지 않았을때..
print(print_str);을 실행시키면 다른건 실행되지 않고 계속 기다리고 있는거 같더라구요..
프로그램을 처음 실행시켰을때 프린터가 출력 가능한 상태인지 아닌지를 알고 싶거든요..
만약에 위와 같이 용지가 안걸렸거나 온라인에 불이 들어오지 않았을때 메세지를 보여주고 싶은데..
어떻게 해야 하나요??


세번째...
프린터할때 프린터 영역이 넘어가면 새페이지로 넘어가게 되는데..
새 페이지 마다 오늘 날짜를 찍고 데이터를 계속 출력하게 하고 싶은데..
새 페이지가 넘어가도 데이터만 찍고 날짜를 못찍더라구요..
새 페이지가 넘어가는걸 알아낼수는 없나요??


너무 많이 물어본거 같은데..
완벽한 답이 아니더라도 알려주셨음해요..
이것저것 시도라도 해보게..
부탁 드리겠습니다.
0  COMMENTS