-------------------------------------------------------------
필드 1 필드 2 필드 3 필드 4 필드 5
-------------------------------------------------------------
XXXXXX XXXXXX XXXXXX XXXXXX XXXXXX
XXXXXX XXXXXX XXXXXX XXXXXX XXXXXX
XXXXXX XXXXXX XXXXXX XXXXXX XXXXXX
XXXXXX XXXXXX XXXXXX XXXXXX XXXXXX
XXXXXX XXXXXX XXXXXX XXXXXX XXXXXX
-------------------------------------------------------------
상위 구조의 레포트 출력시
각필드의 길이가 보정되어있구요 ==> 리포트 출력물에서요
실제 필드의 길이가 출력범위를 벗어날때
폰트를 크기도 보정된 경우 폰트의 폭을 줄여서 출력하고 싶은데요
하이퍼의 BeforePrint에 그런 기능이 있는지 고수님들의 충고를 듣고싶네요
일반 메모 또는 퀵에서는 API로 폰트 설정을 통해서 테스트 해봤는데
이상없이 잘돌아 가던데 유독 하이퍼만 안되네요...
저도 되는걸로 사용하고 싶은데 전 개발자가 하이퍼로 만들어 놓은 루틴이다
보니 다른 레포트로 고치는것도 시간이 걸리고 다된것에 점만 찍으면 되는데
방법있으면 좀 갈키도요 고수님덜 참고로 폰트 변경 평션을 올립니다...
아래 평션으로 구현하면 되던데...
// 사용예
컴포넌트.폰트.Handle := ApiMakeFont2(컴포넌트.폰트.Handle, 10);
이런식으로 폭을 변경하여 대입하면 끝인데....
Function ApiMakeFont2(DcFont: HFont; iWidth: Integer) : HFONT;
var
vLogFont: TLogFont;
begin
// vLogFont의 내용을 지운다.
FillChar(vLogFont, sizeof(TLogFont), 0);
GetObject(DcFont, sizeof(vLogFont), @vLogFont);
// TLOGFONT의 필드들을 설정한다.
with vLogFont do
begin
lfWidth := iWidth;
end;
Result := CreateFontIndirect(vLogFont);
DeleteObject(SelectObject(DcFont, Result));
End;