2016-06-29 5 views
1

캔버스에 직사각형을 그리고 텍스트로 채우고 싶습니다. 아래 코드로 시도했지만 올바른 정렬로만 성공했습니다.왼쪽 맞춤을 사용하여 캔버스에 텍스트를 그리는 방법은 무엇입니까?

아무도 도와 줄 수 있습니까? 왼쪽 맞춤으로 캔버스에 텍스트를 그리려면 어떻게해야합니까?

{Header Table} 
SetStyleHuruf(FCanvas, fsBold, 12, clWhite, 'Maiandra GD'); 
Brush.Color := color; 
Rectangle(cx+50, cy-50, cx+370, cy - 30); 
TextOut(round(cx + 215), cy-50, Name);` 
+3

을하시기 바랍니다하지 사용할 필요가없는 이미지로 게시물 코드. 질문에 코드를 붙여넣고 코드를 표시하고 ctrl-k를 누릅니다. –

+0

cx에 215를 더하는 것을 중지하십시오 (오른쪽으로 밀어 넣음). 또한 cy에서 50을 빼십시오. 또한 함수 나 메소드의 사용법을 이해하는 첫 번째 단계에서 문서를 읽는 것이므로 매개 변수가 무엇인지 알 수 있습니다. –

+0

캔버스에 테이블을 만드는 데 문제가 있습니다 –

답변

1

대신 textout의 I는 Microsoft 사이트 here

DrawText에 함수는 지정된 구형 형식의 텍스트를 그립니다에 설명 DrawText에 기능을 사용할 수 있습니다. 지정된 방법 (탭 확장, 문자 양쪽 정렬, 줄 바꿈 등)에 따라 텍스트 서식을 지정합니다. 추가 서식 옵션을 지정하려면 DrawTextEx 기능을 사용하십시오. 여기

당신이 찾을 수있는 좋은 example

+1

최근 버전의 Delphi에서 VCL의 'TCanvas'는 오버로드 된 ['TextRect()'] (http://docwiki.embarcadero.com/Libraries/en/Vcl. Graphics.TCanvas.TextRect) 메서드를 사용하여'DrawText()'를 래핑하고 그 플래그를'TextFormat' 매개 변수로 노출합니다. –

2

TextOut의 정의를 사용하는 방법 :

procedure TextOut(X, Y: Integer; const Text: string); override; 

도움말의 설명은 말한다 :

가 문자열을 기록합니다 캔버스, 부터 시작 (X, Y), ...

그래서 오른쪽 오른쪽 대신 사각형의 왼쪽 테두리에 가까운 X 좌표에 텍스트를 그리도록 코드를 수정하십시오. 예를 들어 : cx 가정

TextOut(round(cx + 215), cy-50, Name); 

출력 5 개 픽셀

TextOut(round(cx + 55), cy-50, Name); 

BTW 사각형의 왼쪽 테두리에서 텍스트, 정수

, 당신은 Round()

+2

아, 내가 그랬다고 생각 했어. 문제를 자세히 설명해주십시오. –