안녕하세요?
취미로 조금씩 델파이를 배우면서 사용하고 있습니다.
TPrinter.Canvas로 글자 출력할 때 글자의 배경색을 지정하고 싶거든요.
먼저 다음과 같은 코드가 있습니다.
//Silver 색상으로 영역을 칠한다.
Printer.Canvas.Brush.Style := bsSolid;
Printer.Canvas.Brush.Color := clSilver;
for i := 0 to 2 do begin
Printer.Canvas.FillRect(Rect(x + OffsetX * 2+3 ,
y + CenterY + OffsetY * i * 2+3,
x + OffsetX * 33-3,
y + CenterY + OffsetY * i * 2+OffsetY-3));
end;
//위에 칠해진 영역에 글자를 찍는다.
Printer.Canvas.TextOut(x + DiffX * 2 + OffsetX * 2 + OffsetX * i,
y + ColY * 2 + OffsetY * j, SData[DateSchedule[j + 1]]);
이때 문제가 발생합니다.
기존 Siver 색상으로 칠해진 영역에 TextOut으로 글자를 찍으면 글자가 찍혀지는 영역의 기존 칠해진 색상은 무시하고 배경이 하얗게 되면서 글자가 찍히거든요.
제가 원하는 것은 배경색은 그대로 유지하면서 글자를 찍는 건데 말입니다.
혹시라도 TPen에 Background를 지정할 수 있나 도움말을 뒤져봐도 나오질 않네요.
도움을 기다립니다.
즐거운 시간들 되세요.
SetBkMode로 TRANSPARENT로 지정하면, 배경색을 투명하게 글자를 출력할 수 있습니다. 참고로, 배경색 지정은 SetBkColor API를 이용하면 됩니다.
그럼, 즐프~