//在矩形范圍中顯示文本var
//設置對齊方式
g: TGPGraphics;
fontFamily: TGPFontFamily;
font: TGPFont;
rectF: TGPRectF;
p: TGPPen;
sb: TGPSolidBrush;
str: WideString;
begin
g := TGPGraphics.Create(Canvas.Handle);
fontFamily:= TGPFontFamily.Create('宋體');
font:= TGPFont.Create(fontFamily, 9, FontStyleRegular, UnitPoint);
p := TGPPen.Create(aclRed);
sb:= TGPSolidBrush.Create(MakeColor(255, 0, 0, 0));
rectF:= MakeRect(10.0, 10.0, 116.0, 100.0); {包含文本的矩形范圍}
str := '萬一萬一萬一萬一萬一萬一萬一萬一萬一萬一萬一萬一萬一萬一萬一';
g.DrawRectangle(p, rectF);
g.DrawString(str, -1, font, rectF, nil, sb);
{參數4不能用TGPRect,只能是TGPRectF; 參數5是文字格式對象,後面舉例}
fontFamily.Free;
font.Free;
p.Free;
sb.Free;
g.Free;
end;var
g: TGPGraphics;
str: String;
fontFamily: TGPFontFamily;
font: TGPFont;
rectF: TGPRectF;
strFormat: TGPStringFormat;
sb: TGPSolidBrush;
p: TGPPen;
begin
g := TGPGraphics.Create(Canvas.Handle);
fontFamily:= TGPFontFamily.Create('Arial');
font:= TGPFont.Create(fontFamily, 12, FontStyleBold, UnitPoint);
rectF:= MakeRect(30.0, 10.0, 120.0, 140.0);
sb:= TGPSolidBrush.Create(MakeColor(255, 0, 0, 255));
strFormat:= TGPStringFormat.Create;
strFormat.SetAlignment(StringAlignmentCenter); {設置左右對齊方式}
strFormat.SetLineAlignment(StringAlignmentCenter); {設置垂直對齊方式}
str := 'wy wy wy wy wy wy wy wy wy wy wy wy wy wy wy wy wy wy';
g.DrawString(str, -1, font, rectF, strFormat, sb);
p:= TGPPen.Create(MakeColor(255, 0, 0, 0));
g.DrawRectangle(p, rectF);
fontFamily.Free;
font.Free;
strFormat.Free;
sb.Free;
p.Free;
g.Free;
end;
//使用格式化標志創建文本格式化對象var
g: TGPGraphics;
str: String;
fontFamily: TGPFontFamily;
font: TGPFont;
rectF: TGPRectF;
strFormat: TGPStringFormat;
sb: TGPSolidBrush;
p: TGPPen;
begin
g := TGPGraphics.Create(Canvas.Handle);
fontFamily:= TGPFontFamily.Create('Arial');
font:= TGPFont.Create(fontFamily, 12, FontStyleBold, UnitPoint);
rectF:= MakeRect(30.0, 10.0, 120.0, 140.0);
sb:= TGPSolidBrush.Create(MakeColor(255, 0, 0, 255));
strFormat:= TGPStringFormat.Create(StringFormatFlagsDirectionRightToLeft);
{使用格式化標志創建文本格式化對象}
str := 'wy wy wy wy wy wy wy wy wy wy wy wy wy wy wy wy wy wy';
g.DrawString(str, -1, font, rectF, strFormat, sb);
p:= TGPPen.Create(MakeColor(255, 0, 0, 0));
g.DrawRectangle(p, rectF);
fontFamily.Free;
font.Free;
strFormat.Free;
sb.Free;
p.Free;
g.Free;
end;
文本對齊方式:
Delphi 微軟 說明 StringAlignmentCenter Center 指定文本在布局矩形中居中對齊。 StringAlignmentFar Far 指定文本遠離布局矩形的原點位置對齊。在左到右布局中,遠端位置是右。在右到左布局中,遠端位置是左。 StringAlignmentNear Near 指定文本靠近布局對齊。在左到右布局中,近端位置是左。在右到左布局中,近端位置是右。文本格式化標志:
Delphi 微軟 說明 StringFormatFlagsDirectionRightToLeft DirectionRightToLeft 按從右向左的順序顯示文本。 StringFormatFlagsDirectionVertical DirectionVertical 文本垂直對齊。 StringFormatFlagsDisplayFormatControl DisplayFormatControl 控制字符(如從左到右標記)隨具有代表性的標志符號一起顯示在輸出中。 StringFormatFlagsFitBlackBox FitBlackBox 允許部分字符延伸該字符串的布局矩形。默認情況下,將重新定位字符以避免任何延伸。 StringFormatFlagsLineLimit LineLimit 在格式化的矩形中只布置整行。默認情況下,這種布置要繼續到文本的結尾為止,或者到由於剪輯而不再有可見的行為止,看哪一種情況先發生。注意,此默認設置允許不是行高整數倍的格式化矩形將最後一行部分地遮住。若要確保看到的都是整行,請指定此值,並仔細地提供格式化矩形,使其高度至少為一個行高。 StringFormatFlagsMeasureTrailingSpaces MeasureTrailingSpaces 包括每一行結尾處的尾隨空格。在默認情況下,MeasureString 方法返回的邊框都將排除每一行結尾處的空格。設置此標記以便在測定時將空格包括進去。 StringFormatFlagsNoClip NoClip 允許顯示標志符號的伸出部分和延伸到邊框外的未換行文本。在默認情況下,延伸到邊框外側的所有文本和標志符號部分都被剪裁。 StringFormatFlagsNoFontFallback NoFontFallback 對於請求的字體中不支持的字符,禁用回退到可選字體。缺失的任何字符都用缺失標志符號的字體顯示,通常是一個空的方塊。 StringFormatFlagsNoWrap NoWrap 在矩形內設置格式時,禁用文本換行功能。當傳遞的是點而不是矩形時,或者指定的矩形行長為零時,已隱含此標記。