procedure TForm1.FormPaint(Sender: TObject);
var
R: TRect;
Msg: AnsiString;
CharPlaceInfo: TGCPResults;
Glyphs: array of WideChar;
begin
R.Left := 12;
R.Top := 12;
R.Width := 400;
R.Bottom := 100;
Msg := ' <!-- tag html -->';
ZeroMemory(@CharPlaceInfo, SizeOf(CharPlaceInfo));
CharPlaceInfo.lStructSize := SizeOf(CharPlaceInfo);
SetLength(Glyphs, Length(Msg));
CharPlaceInfo.lpGlyphs := @Glyphs[0];
CharPlaceInfo.nGlyphs := Length(Glyphs);
if GetCharacterPlacement(Canvas.Handle, PChar(Msg), Length(Msg), 0, @CharPlaceInfo, GCP_LIGATE) <> 0 then
begin
ExtTextOut(Canvas.Handle, R.Left, R.Top, ETO_CLIPPED or ETO_OPAQUE or ETO_GLYPH_INDEX, @R, Pointer(Glyphs), Length(Glyphs), nil);
end;
R.Top := 42;
DrawText(Canvas.Handle, PChar(Msg), Length(Msg), R, DT_NOCLIP);
end;