小编Ale*_*ndr的帖子

如何在没有白色背景的TCanvas上绘制文本?

我正在为我的项目编写简单的图像编辑器.

在那里你可以看到编辑器中的图像:

在此输入图像描述

在TImage之上,我放置了几个TLabel.

在预览中,您可以看到在图像上绘制TLabels的结果:

在此输入图像描述

为了绘制TLabels,我写了这段代码:

procedure TPrintForm.BuildPreview(aSsignTo: TImage);
    var
      Img: TBitmap;
      i: Integer;
    begin
      Img := TBitmap.Create;
      try
        Img.Assign(fSrcBitmap);
        for i := 0 to Count - 1 do
        begin
          Img.Canvas.Font := Items[i].Text.Font;
          Img.Canvas.TextOut(Items[i].Text.BoundsRect.TopLeft.X - Items[i].Text.Font.Size,
            Items[i].Text.BoundsRect.TopLeft.Y - Items[i].Text.Height -
            Items[i].Text.Font.Size, Items[i].Text.Caption);
        end;
        aSsignTo.Picture.Assign(Img);
      finally
        FreeAndNil(Img);
      end;
    end;
Run Code Online (Sandbox Code Playgroud)

结果我得到了图像,其中绘制的TLabel在文本下具有白色背景.没有它如何绘制TLabel?

delphi delphi-xe4

7
推荐指数
2
解决办法
7568
查看次数

VitrtualStringTree.如何Drag'n'Drop到ROOT水平?

有一棵树:ROOT - VirtualStringTree(你看不到它,TVirtualStringTree.RootNode)

  • 我的根节点1
  • 我的根节点2
    • 第二节点1
    • 第二节点2
    • 第二节点3
  • 我的根节点3

我可以Drag'n'Drop"我的根节点3"到任何可见节点,但我不能将它返回到defaut位置,到树的根级别.

我试着这样:

//Part of code from OnDragDrop Event of VirtualStringTree
    if (Sender.DropTargetNode = Sender.RootNode) then
    begin
      for i := 0 to high(Nodes) do
      begin
        LinksTree.MoveTo(Nodes[i], Sender.DropTargetNode, Attachmode, False);
      end;
    end;
Run Code Online (Sandbox Code Playgroud)

我把鼠标放到了无处,但没有任何反应.在DragOver中,如果DropTarget是VST.RootNode,则接受drop to root.

谁知道,如果我将鼠标拖动到组件的空白区域,如何将节点删除到VST.RootNode?

delphi virtualtreeview delphi-xe tvirtualstringtree delphi-xe4

4
推荐指数
1
解决办法
485
查看次数