
16.03.2015, 10:39
|
 |
Let Me Show You
|
|
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
|
|
а из потока посылать сообщение форме, а она уже сама заставит PaintBox перерисоваться:
Код:
PostMessage(Form1.Handle, CM_INVALIDATE, 0, 0);
полный код:
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TMyThread = class(TThread)
protected
procedure Execute; override;
end;
TForm1 = class(TForm)
PaintBox1: TPaintBox;
procedure FormCreate(Sender: TObject);
procedure PaintBox1Paint(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TMyThread }
procedure TMyThread.Execute;
begin
while true do
begin
PostMessage(Form1.Handle, CM_INVALIDATE, 0, 0);
Sleep(33);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
TMyThread.Create(False);
end;
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
PaintBox1.Canvas.Brush.Color:=clInfoBk;
PaintBox1.Canvas.FillRect(PaintBox1.ClientRect);
PaintBox1.Canvas.Font.Color:=clInfoText;
PaintBox1.Canvas.TextOut(0, 0, IntToStr(GetTickCount));
end;
end.
__________________
Пишу программы за еду.
__________________
|