생각을 지금 해보니 직접적으로 TextOut 과 같은 방법으로는 불가능할것 같고요. 잔머리(?)를 굴려보자면^^...아래같이...
트레이에는 비트맵을 나타낼수 있죠. 그렇다면 메모리 비트맵을 하나 만들어서 그 비트맵에 각초마다 Bitmap.Canvas.TextOut.. 을 사용해서 시간을 써준뒤 이 비트맵을 트레이에 비트맵을 등록하는 쉘메세지를 이용해 등록하면 되지 않을까요?.(단 1번이론이 반드시 성립되어야 가능합니다^^;.)
1.트레이에 비트맵을 등록할때 비트맵의 크기는 제한이 없는가?
-시간을 나타낼려면 적어도 시간을 나타낼수 있을만큼 비트맵이 커야하는데
-일반적으로 16X16의 비트맵은 무리가 없다.
2.비트맵의 크기는 예를 들어 시간을 '오후 10:10' 으로 한다면 Bitmap.Canvas.TextWidth(.. 로 구해서 그 크기로 해주면 된다. 높이는 TextHeight 로~
QReport 로 출력할 sheet 를 열심히 그렸는데 이를 print 하려고 하니 심각한 문제에 부딧혔습니다.
저의 경우는 우선 form 이 2개이고 이 두개의 form 이 한 dll 을 이루고 있습니다.
그런데 호출하는 form 에서 다른 form 위에 올려져 있는 QuickRep 를 다음과 같이 생성 시키면
procedure Tdllform.PrinterbtnClick(Sender: TObject);
reportform := TReportform.Create(self);
reportform.sheetpreview; // 여기서 호츨 합니다.
reportform.Free;
Treportform 에 있는 sheetpreview 는 다음을 실행합니다.
procedure TReportform.sheetpreview;
begin
QuickRep1.Preview;
end;
그럼 form 은 정상적으로 실행이 되지만 preview 자체에서 제공하는 print button 을 누르면 아무 반응이 없습니다.
(다른 button 은 정상적으로 작동을 하는데 말이죠)
그런데 한 form 에 호출하는 code 와 QuickRep 를 동시에 놓으면 preview 상태에서의 print button 은 제대로 동작합니다.
왜이렇지요??
하루종일 해매고 있습니다.
고견 부탁드립니다.