안녕하세요!
아래와 같이 선문자를 사용하여 출력을 하려는데 printer.Canvas.TextOut 에서
255이상 필요한데 255이상일경우 error 가 됩니다. 처리한계는 어느정도 인가요!
procedure TForm1.Button1Click(Sender: TObject);
VAR
X,Y:INTEGER;
begin
X:=PRINTER.PAGEWIDTH;
Y:=PRINTER.PAGEHEIGHT;
PRINTERSETUPDIALOG1.EXECUTE;
PRINTer.Orientation:=poLandscape;
printer.BeginDoc ;
printer.Canvas.TextOut((X DIV 20),20,'┌───┬────────────────────────────────────────────────────────────────────────────────── ');
printer.Canvas.TextOut((X DIV 20),50,'│부 서 : ');
printer.Canvas.TextOut((X DIV 20),80,'│사 번 : ');
printer.Canvas.TextOut((X DIV 20),110,'│성 명 : ');
printer.Canvas.TextOut((X DIV 20),140,'│월급/시급 : ');
printer.Canvas.TextOut((X DIV 20),170,'│출근 일수 : ');
printer.Canvas.TextOut((X DIV 20),200,'│출근 시간 : ');
printer.Canvas.TextOut((X DIV 20),230,'│월 급 여 : ');
printer.Canvas.TextOut((X DIV 20),270,'│주,정휴시간:');
printer.Canvas.TextOut((X DIV 20),300,'│주,정휴수당:');
printer.Canvas.TextOut((X DIV 20),330,'│월차 수당 : ');
printer.EndDoc ;
end;
기본적으로 델파이 32비트에서는 String형의 길이는 제한이 없습니다.
하지만 컴파일을 하실때 Huge String옵션을 꺼버리셨으면 255자로 제한이 됩니다. String형이 ShortString형으로 컴파일이 되어버리게 되죠.
Uses 문 앞에 {H+} 라고 하는 컴파일러 지시자를 넣고 해보세요.
이헌 wrote:
> 안녕하세요!
> 아래와 같이 선문자를 사용하여 출력을 하려는데 printer.Canvas.TextOut 에서
> 255이상 필요한데 255이상일경우 error 가 됩니다. 처리한계는 어느정도 인가요!
>
> procedure TForm1.Button1Click(Sender: TObject);
> VAR
> X,Y:INTEGER;
> begin
> X:=PRINTER.PAGEWIDTH;
> Y:=PRINTER.PAGEHEIGHT;
> PRINTERSETUPDIALOG1.EXECUTE;
> PRINTer.Orientation:=poLandscape;
> printer.BeginDoc ;
> printer.Canvas.TextOut((X DIV 20),20,'┌───┬────────────────────────────────────────────────────────────────────────────────── ');
> printer.Canvas.TextOut((X DIV 20),50,'│부 서 : ');
> printer.Canvas.TextOut((X DIV 20),80,'│사 번 : ');
> printer.Canvas.TextOut((X DIV 20),110,'│성 명 : ');
> printer.Canvas.TextOut((X DIV 20),140,'│월급/시급 : ');
> printer.Canvas.TextOut((X DIV 20),170,'│출근 일수 : ');
> printer.Canvas.TextOut((X DIV 20),200,'│출근 시간 : ');
> printer.Canvas.TextOut((X DIV 20),230,'│월 급 여 : ');
> printer.Canvas.TextOut((X DIV 20),270,'│주,정휴시간:');
> printer.Canvas.TextOut((X DIV 20),300,'│주,정휴수당:');
> printer.Canvas.TextOut((X DIV 20),330,'│월차 수당 : ');
> printer.EndDoc ;
>
> end;
>