我想问一下关于创建字体的情况:
function CreateFontIndirect(var LogFont: TLogFont): HFont;
举例:
写字串:ss, 宽:ww, 高:hh, 角度:dd, 坐标
![Frown :( :(](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f641.png)
xt, yt)
var lfont: TLogFont;
ang := dd * PI / 1800;
with lfont do begin
lfHeight := hh;
lfWidth := ww;
lfEscapement := dd;
lfWeight := pFont.FontWeight;
lfItalic := 0;
lfUnderline := 0;
lfStrikeOut := 0;
lfCharSet := 1;
lfOutPrecision := OUT_TT_PRECIS;
lfClipPrecision:= CLIP_DEFAULT_PRECIS;
lfQuality := PROOF_QUALITY;
lfPitchAndFamily := DEFAULT_PITCH;
StrPCopy(lfFaceName, pFont.FontName);
end;
ft:=Font.handle;
deleteobject(ft);///不用删除,为什么????/
Font.handle := CreateFontIndirect(lFont);
oldFont1 := SelectObject(Canvas.Handle, Font.handle);
TextOut(Canvas.Handle, xt, yt, ss, length(str));
DeleteObject(SelectObject(Canvas.Handle, oldFont1));
为什么不用删除Font.handle的老字体