Показать сообщение отдельно
  #4  
Старый 16.03.2015, 10:39
Аватар для NumLock
NumLock NumLock вне форума
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.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием