程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> GdiPlus[44]: IGPGraphics (三) 關於文本繪制續 - IGPStringFor

GdiPlus[44]: IGPGraphics (三) 關於文本繪制續 - IGPStringFor

編輯:Delphi

  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 測試:

GdiPlus[44]: IGPGraphics (三) 關於文本繪制續 - IGPStringFormat

uses GdiPlus; 
 
procedure TForm1.FormPaint(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 測試:

GdiPlus[44]: IGPGraphics (三) 關於文本繪制續 - IGPStringFormat

uses GdiPlus; 
 
procedure TForm1.FormPaint(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 測試:

GdiPlus[44]: IGPGraphics (三) 關於文本繪制續 - IGPStringFormat

uses GdiPlus; 
 
procedure TForm1.FormPaint(Sender: TObject); 
const 
 Tabs: array [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 測試:

GdiPlus[44]: IGPGraphics (三) 關於文本繪制續 - IGPStringFormat

uses GdiPlus; 
 
procedure TForm1.FormPaint(Sender: TObject); 
var 
 Graphics: IGPGraphics; 
 Font: IGPFont; 
 Pt: TGPPointF; 
 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 測試:

GdiPlus[44]: IGPGraphics (三) 關於文本繪制續 - IGPStringFormat

uses GdiPlus; 
 
procedure TForm1.FormPaint(Sender: TObject); 
var 
 Graphics: IGPGraphics; 
 Font: IGPFont; 
 Rect: TGPRectF; 
 Brush: IGPSolidBrush; 
 StringFormat: IGPStringFormat; 
 str: string; 
 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.stringformatflags(VS.80).ASPx






  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved