专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »PHP教程 » GdiPlus[44]: IGPGraphics ( 3) 有关文本绘制续 - IGPStringFormat »正文

GdiPlus[44]: IGPGraphics ( 3) 有关文本绘制续 - IGPStringFormat

来源: 发布时间:星期六, 2009年12月26日 浏览:0次 评论:0
  IGPStringFormat 思路方法和属性:

//思路方法:  
IGPStringFormat.GetTabStops;         { 获取制表位 }  
IGPStringFormat.SetTabStops;         { 设置制表位 }  
IGPStringFormat.SetDigitSubstitution;     { 指定用本地数字替换西方数字时使用语言和思路方法 }  
IGPStringFormat.SetMeasurableCharacterRanges; { 指定 IGPCharacterRanges 结构 }  
 
//属性:  
IGPStringFormat.FormatFlags;          { 获取或设置 TGPStringFormatFlags 集合 } 
IGPStringFormat.Alignment;           { 获取或设置水平对齐 } 
IGPStringFormat.LineAlignment;         { 获取或设置垂直对齐 } 
IGPStringFormat.HotkeyPrefix;          { 获取或设置 TGPHotkeyPrefix 枚举 } 
IGPStringFormat.DigitSubstitutionLanguage;   { 获取或设置用本地数字替换西方数字时使用语言 } 
IGPStringFormat.DigitSubstitutionMethod;    { 获取或设置要用于数字替换思路方法 } 
IGPStringFormat.Trimming;            { 获取或设置 TGPStringTrimming 枚举 } 
IGPStringFormat.MeasurableCharacterRangeCount  { 指定 IGPCharacterRanges 结构中总数 } 
 
//类: 
TGPStringFormat.GenericDefault;   { 默认 TGPStringFormat 对象 } 
TGPStringFormat.GenericTypographic; { 版式 TGPStringFormat 对象 } 


  IGPStringFormat.Alignment 测试:



uses GdiPlus; 
 
procedure TForm1.FormPa(Sender: TObject); 
const 
 str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; 
var 
 Graphics: IGPGraphics; 
 Brush: IGPSolidBrush; 
 Pen: IGPPen; 
 Font: IGPFont; 
 StringFormat: IGPStringFormat; 
 Rect: TGPRectF; 
begin 
 Graphics := TGPGraphics.Create(Handle); 
 Brush := TGPSolidBrush.Create(TGPColor.Red); 
 Pen := TGPPen.Create(TGPColor.Black); 
 Font := TGPFont.Create('Arial', 16, [FontStyleBold]); 
 StringFormat := TGPStringFormat.Create; 
 
 Rect.Initialize(10, 10, 180, 60); 
 Graphics.DrawString(str, Font, Rect, nil, Brush); 
 Graphics.DrawRectangle(Pen, Rect); 
 
 Rect.Y := Rect.Y + 60 + 20; 
 StringFormat.Alignment := StringAlignmentCenter; 
 Graphics.DrawString(str, Font, Rect, StringFormat, Brush); 
 Graphics.DrawRectangle(Pen, Rect); 
 
 Rect.Y := Rect.Y + 60 + 20; 
 StringFormat.Alignment := StringAlignmentFar; 
 Graphics.DrawString(str, Font, Rect, StringFormat, Brush); 
 Graphics.DrawRectangle(Pen, Rect); 
end; 


  IGPStringFormat.LineAlignment 测试:



uses GdiPlus; 
 
procedure TForm1.FormPa(Sender: TObject); 
const 
 str = 'ABCDEFG'; 
var 
 Graphics: IGPGraphics; 
 Brush: IGPSolidBrush; 
 Pen: IGPPen; 
 Font: IGPFont; 
 StringFormat: IGPStringFormat; 
 Rect: TGPRectF; 
begin 
 Graphics := TGPGraphics.Create(Handle); 
 Brush := TGPSolidBrush.Create(TGPColor.Red); 
 Pen := TGPPen.Create(TGPColor.Black); 
 Font := TGPFont.Create('Arial', 16, [FontStyleBold]); 
 StringFormat := TGPStringFormat.Create; 
 
 Rect.Initialize(10, 10, 180, 60); 
 Graphics.DrawString(str, Font, Rect, nil, Brush); 
 Graphics.DrawRectangle(Pen, Rect); 
 
 Rect.Y := Rect.Y + 60 + 20; 
 StringFormat.LineAlignment := StringAlignmentCenter; 
 Graphics.DrawString(str, Font, Rect, StringFormat, Brush); 
 Graphics.DrawRectangle(Pen, Rect); 
 
 Rect.Y := Rect.Y + 60 + 20; 
 StringFormat.LineAlignment := StringAlignmentFar; 
 Graphics.DrawString(str, Font, Rect, StringFormat, Brush); 
 Graphics.DrawRectangle(Pen, Rect); 
end; 


  IGPStringFormat.SetTabStops 测试:



uses GdiPlus; 
 
procedure TForm1.FormPa(Sender: TObject); 
const 
 Tabs: .gif' /> [0..2] of Single = (150, 100, 100); 
 Str = 'Name'#9'Test 1'#9'Test 2'#9'Test 3'#13#10 + 
    'Joe'#9'95'#9'88'#9'91'#13#10 + 
    'Mary'#9'98'#9'84'#9'90'#13#10 + 
    'Sam'#9'42'#9'76'#9'98'#13#10 + 
    'Jane'#9'65'#9'73'#9'92'; 
var 
 Graphics: IGPGraphics; 
 Brush: IGPSolidBrush; 
 Pen: IGPPen; 
 Font: IGPFont; 
 StringFormat: IGPStringFormat; 
 Rect: TGPRectF; 
begin 
 Graphics := TGPGraphics.Create(Handle); 
 Brush := TGPSolidBrush.Create($FF000000); 
 Pen := TGPPen.Create($FFFF0000); 
 Font := TGPFont.Create('Courier New', 12); 
 
 StringFormat := TGPStringFormat.Create; 
 StringFormat.SetTabStops(0, [150, 100, 100]); 
// StringFormat.SetTabStops(50, [100, 100, 100]); //同上 
 
 Rect.Initialize(10, 10, 420, 100); 
 Graphics.DrawString(str, Font, Rect, StringFormat, Brush); 
 Graphics.DrawRectangle(Pen, Rect); 
end; 


  IGPStringFormat.HotkeyPrefix 测试:



uses GdiPlus; 
 
procedure TForm1.FormPa(Sender: TObject); 
var 
 Graphics: IGPGraphics; 
 Font: IGPFont; 
 Pt: TGPPoF; 
 Brush: IGPSolidBrush; 
 StringFormat: IGPStringFormat; 
begin 
 Graphics := TGPGraphics.Create(Handle); 
 Font := TGPFont.Create(Canvas.Font.Name, 12); 
 Pt.Initialize(10, 10); 
 Brush := TGPSolidBrush.Create($FF000000); 
 
 StringFormat := TGPStringFormat.Create; 
 StringFormat.HotkeyPrefix := HotkeyPrefixShow; 
 
 Graphics.DrawString('&Button', Font, Pt, StringFormat, Brush); 
 
 Pt.Y := Pt.Y * 2 + Font.GetHeight(Graphics); 
 Graphics.DrawString('Butt&on', Font, Pt, StringFormat, Brush); 
end; 


  IGPStringFormat.Trimming 测试:



uses GdiPlus; 
 
procedure TForm1.FormPa(Sender: TObject); 
var 
 Graphics: IGPGraphics; 
 Font: IGPFont; 
 Rect: TGPRectF; 
 Brush: IGPSolidBrush; 
 StringFormat: IGPStringFormat; 
 str: ; 
 i: Integer; 
begin 
 Graphics := TGPGraphics.Create(Handle); 
 Graphics.Clear($FFFFFFFF); 
 Brush := TGPSolidBrush.Create($FF000000); 
 Font := TGPFont.Create(Canvas.Font.Name, 10); 
 
 Rect.Initialize(20, 20, ClientWidth - 40, Font.GetHeight(Graphics)); 
 
 StringFormat := TGPStringFormat.Create; 
 str := Application.ExeName; 
 for i := 0 to 5 do 
 begin 
  StringFormat.Trimming := TGPStringTrimming(i); 
  Graphics.DrawString(str, Font, Rect, StringFormat, Brush); 
  Graphics.TranslateTransform(0, Rect.Y + Rect.Height); 
 end; 
end; 




  另, 有关 TGPStringFormatFlags (对应 FormatFlags 属性或用于建立参数):

  http://msdn.microsoft.com/zh-cn/library/system.drawing.formatflags(VS.80).aspx



标签:
0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: