zoukankan      html  css  js  c++  java
  • Direct2D (10) : 文本输出初步


    uses Direct2D, TypInfo;
    
    procedure TForm1.FormCreate(Sender: TObject);
    var
      f: TTextFormats;
    begin
      for f := Low(TTextFormats) to High(TTextFormats) do
        CheckListBox1.Items.Add(GetEnumName(TypeInfo(TTextFormats), Ord(f)));
    
      CheckListBox1.Align := alRight;
      Edit1.Align := alBottom;
      Edit1.OnChange := CheckListBox1.OnClick;
    end;
    
    procedure TForm1.CheckListBox1Click(Sender: TObject);
    begin
      Repaint;
    end;
    
    procedure TForm1.FormPaint(Sender: TObject);
    var
      cvs: TDirect2DCanvas;
      fmt: TTextFormat;
      i: Integer;
      R: TRect;
      txt: string;
    begin
      for i := 0 to CheckListBox1.Count - 1 do
        if CheckListBox1.Checked[i] then Include(fmt, TTextFormats(i));
    
      txt := Edit1.Text;
    
      cvs := TDirect2DCanvas.Create(Canvas, ClientRect);
      cvs.BeginDraw;
    
      cvs.TextOut(20, 20, txt); //普通文本
    
      cvs.Pen.Color := clGray;
      cvs.Brush.Color := clYellow;
      cvs.Font.Size := 24;
      cvs.Font.Color := clRed;
      cvs.Font.Style := [fsBold, fsItalic];
      R := Rect(20, 40, 256, 200);
      cvs.Rectangle(R);
      cvs.TextRect(R, txt, fmt); //矩形范围中的文本
    
      cvs.EndDraw;
      cvs.Free;
    end;
    


    效果图:



  • 相关阅读:
    感悟贴2016-05-13
    操作系统原理部分
    java-NIO
    centos7下环境配置
    mysql 链接驱动问题
    ComboPooledDataSource 连接池耗完
    mvn使用问题
    js button onclick动作赋值操作
    git操作之git clean删除一些没有git add的文件
    VMware虚拟机网络设置
  • 原文地址:https://www.cnblogs.com/del/p/2002663.html
Copyright © 2011-2022 走看看