
16.03.2015, 16:30
|
 |
Прохожий
|
|
Регистрация: 22.12.2014
Сообщения: 14
Версия Delphi: XE5
Репутация: 50
|
|
использовал код NumLock-а? Там же просто пример. Поэтому у тебя каждые 33 наносекунды окно выскакивает))))Нужно вникать в код же)))
Под твою задачу как-то так:
Код:
unit Unit2;
interface
uses
System.Classes, Vcl.Graphics;
type
TThread1 = class(TThread)
protected
procedure Execute; override;
procedure RepaintPaintBox(Bitmap : TBitmap);
end;
var
Thread1: TThread1;
Bitmap1: TBitmap;
implementation
uses
Unit1;
procedure TThread1.Execute;
begin
Bitmap1 := TBitmap.Create;
// делай со своим битмапом что угодно затем отдавай форме
Synchronize(RepaintPaintBox(Bitmap1));
Bitmap1.Free;
end;
procedure TThread1.RepaintPaintBox(Bitmap : TBitmap);
begin
Form1.RepaintMyPaintBoxPlease(Bitmap);
end;
end.
Ну а главный модуль как-то так:
Код:
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Unit2, Vcl.ExtCtrls;
type
TForm1 = class(TForm)
PaintBox1: TPaintBox;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure PaintBox1Paint(Sender: TObject);
public
bitmap1 : TBitmap;
procedure RepaintMyPaintBoxPlease(Bitmap: TBitmap);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Bitmap1.Free;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Bitmap1 := TBitmap.create;
Thread1 := TThread1.Create;
end;
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
// эта процедура нам по сути не нужна ))))
end;
procedure RepaintMyPaintBoxPlease(Bitmap: TBitmap);
begin
Bitmap1.Assign(Bitmap);
// копируем изображение из Bitmap1 в PaintBox1
BitBlt(Form1.PaintBox1.Canvas.Handle, 0, 0,
Bitmap1.Width, Bitmap1.Height,
Bitmap1.Canvas.Handle, 0, 0, SrcCopy);
PaintBox1.Repaint;
end;
end.
__________________
Самые сильные программисты были на заре компьютеризации.
И чем дольше я программист, тем больше это понимаю - мы до сих пор поддерживаем их код...
|