小编S.M*_*HDI的帖子

如何在线程完成运行之前停止?

我有一个名为TMyThread的线程,我像这样覆盖Execute过程:

 procedure TMyThread.Execute;
 Begin
     repeat
     //Some Work 
     Sleep(5000);
     //Some Work 2;
     Sleep(5000); 
     until FActive=False
 End;
Run Code Online (Sandbox Code Playgroud)

在主窗体中,我有一个名为'Destroy My Thread'的按钮.我想破坏我的线程,但问题是我的线程只有在完成其工作时才会被销毁.我想破坏我的线程,即使它还没有完成它的工作.我该怎么做呢?

delphi multithreading

4
推荐指数
2
解决办法
6389
查看次数

绘画背景从TSeStyleFont

我正试图从TSeStyleFont中绘制vcl样式背景,就像在Bitmap样式设计器中一样..有没有办法绘制背景?

在此输入图像描述

我试了一下: - 使用DrawElement在位图中首先绘制对象. - 比使用'Bitmap.Canvas.CopyRect'将当前位图复制到另一个干净的位图,问题是:这个方法对于具有Glyph的对象(如CheckBox)无法正常工作...

  var
  bmp, bmp2: TBitmap;
  Details: TThemedElementDetails;
  R, Rn: TRect;
begin
  bmp := TBitmap.Create;
  bmp2 := TBitmap.Create;
  R := Rect(0, 0, 120, 20);
  Rn := Rect(0 + 4, 0 + 4, 120 - 4, 20 - 4);
  bmp.SetSize(120, 20);
  bmp2.SetSize(120, 20);
  Details := StyleServices.GetElementDetails(TThemedButton.tbPushButtonHot);
  StyleServices.DrawElement(bmp.Canvas.Handle, Details, R);
  bmp2.Canvas.CopyRect(R, bmp.Canvas, Rn);
  Canvas.Draw(10, 10, bmp2);
  bmp.Free;
  bmp2.Free;

end;
Run Code Online (Sandbox Code Playgroud)

delphi delphi-xe2 vcl-styles

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

标签 统计

delphi ×2

delphi-xe2 ×1

multithreading ×1

vcl-styles ×1