給我哥寫的一個字體選擇軟體 就幾行代碼
為什么 顯示中文 大部分都跟宋體一樣 洋文就沒事
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Align := alBottom;
Fonts := TStringList(Screen.Fonts);
if Fonts.Count = 0 then begin
ShowMessage('獲取系統字體失敗');
Halt(1);
end;
end;
procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
index : Integer;
TextSize : TSize;
begin
index := ARow * DrawGrid1.ColCount + ACol;
DrawGrid1.Canvas.Brush.Color := ColorBox2.Selected;
DrawGrid1.Canvas.FillRect(Rect);
if index <= Fonts.Count then begin
DrawGrid1.Canvas.Font.Name := (Fonts[index]);
DrawGrid1.Canvas.Font.Size := FontSize;
DrawGrid1.Canvas.Font.Color := ColorBox1.Selected;
TextSize := DrawGrid1.Canvas.TextExtent(Edit1.Text);
DrawGrid1.Canvas.TextOut(Rect.Left + ((DrawGrid1.DefaultColWidth div 2) - TextSize.cx div 2),Rect.Top + ((DrawGrid1.DefaultRowHeight div 2)) - (TextSize.cy div 2),Edit1.Text);
end;
end;
uj5u.com熱心網友回復:
什么 意思,什么跟宋體一樣,你獲得的是什么字體uj5u.com熱心網友回復:
哎 CSDN 不能上圖獲得的是 Screen.Fonts
你說什么字體.
uj5u.com熱心網友回復:
就是說啊DrawGrid1.Canvas.Font.Name := (Fonts[index]);
設定了很多字體。
可顯示出來都好象是宋體啊
很難理解嗎?
uj5u.com熱心網友回復:
可能是[識別]的問題吧>>>>>>uj5u.com熱心網友回復:
請教樓上具體怎么處理?
uj5u.com熱心網友回復:
DrawGrid1.Canvas.Font.Name := (Fonts[index]);為什么啊
uj5u.com熱心網友回復:
關注。uj5u.com熱心網友回復:
自己 UPuj5u.com熱心網友回復:
是不是你電腦的問題呢?我用combobox加載所有字體,combobox1.items:=screen.fonts然后在combobox1的change時間中Memo1.Font.Name:=ComboBox1.Items[ComboBox1.ItemIndex];
然后改變字體,沒有問題的。
uj5u.com熱心網友回復:
字體分為中文字體與英文字體。如果是輸入的中文字,那只有宋體、仿宋、黑體等中文字體,字的樣子才會變化,如果選擇的是英文字體,那中文字就是類似宋體的樣子。
而如果輸入的是英文字,那選擇中文字體,字的樣子也會變化,而選擇的是英文字體,更是會變化了。
因為中文字庫中含有英文字體,而英文字庫只有英文字體,沒有中文字體的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/133608.html
標籤:VCL組件開發及應用
