function ThreadFunc(Ptr: Pointer): LongInt; stdcall;
var
i, j: Integer;
P: TColorRef;
DC: HDC;
Data: PData;
begin
Data := PData(Ptr);
DC := GetDC(Form1.Handle);
for j := 0 to AHeight do
for i := Margin to AWidth + Margin do begin
P := GetPixel(DC, i, j);
SetPixel(DC, i + Data^.Xpos, Data^.YPos + j, P);
end;
ReleaseDC(Form1.Handle, DC);
Dispose(Data);
end;
//线程函数代码;
------------------------------------------------------
procedure TForm1.StartMenu(Sender: TObject);
var
hThread1, hThread2, hThread3: THandle;
ThreadID: DWORD;
Data: PData;
begin
New(Data);
Data^.xPos := AWidth;
Data^.YPos := 0;
hThread1 := CreateThread(nil, 0, @ThreadFunc,
Data, 0, ThreadID); New(Data);
Data^.xPos := 0;
Data^.YPos := AHeight;
hThread2 := CreateThread(nil, 0, @ThreadFunc,
Data, 0, ThreadID); New(Data);
Data^.xPos := AWidth;
Data^.YPos := AHeight;
hThread3 := CreateThread(nil, 0, @ThreadFunc,
Data, 0, ThreadID); if ((hTHread1 = 0) or (hThread2 = 0) or (hThread3 = 0)) then
MessageBox(Handle, 'No Thread!', nil, mb_Ok);
end;
//调用代码,我把关键的贴出来了,你看看吧。
var
i, j: Integer;
P: TColorRef;
DC: HDC;
Data: PData;
begin
Data := PData(Ptr);
DC := GetDC(Form1.Handle);
for j := 0 to AHeight do
for i := Margin to AWidth + Margin do begin
P := GetPixel(DC, i, j);
SetPixel(DC, i + Data^.Xpos, Data^.YPos + j, P);
end;
ReleaseDC(Form1.Handle, DC);
Dispose(Data);
end;
//线程函数代码;
------------------------------------------------------
procedure TForm1.StartMenu(Sender: TObject);
var
hThread1, hThread2, hThread3: THandle;
ThreadID: DWORD;
Data: PData;
begin
New(Data);
Data^.xPos := AWidth;
Data^.YPos := 0;
hThread1 := CreateThread(nil, 0, @ThreadFunc,
Data, 0, ThreadID); New(Data);
Data^.xPos := 0;
Data^.YPos := AHeight;
hThread2 := CreateThread(nil, 0, @ThreadFunc,
Data, 0, ThreadID); New(Data);
Data^.xPos := AWidth;
Data^.YPos := AHeight;
hThread3 := CreateThread(nil, 0, @ThreadFunc,
Data, 0, ThreadID); if ((hTHread1 = 0) or (hThread2 = 0) or (hThread3 = 0)) then
MessageBox(Handle, 'No Thread!', nil, mb_Ok);
end;
//调用代码,我把关键的贴出来了,你看看吧。
解决方案 »
- 如何用ProgressBar1 得到存储过程 asp1 的执行过程显示
- 怎样将图片存入SQL数据库中?最好有例子。(急!救命呀!!!)
- 我做了一个activeform怎么在网页中发布呢?(急急急急!)
- 要使用TRegistry读写注册表要在Uses中写如什么关键字?
- 挑战菜鸟极限第二帖,高手没入:TStringList操作!
- 怎么实现这样的操作.
- 关于处理文字的一个问题
- delphi开发工控软件遇到的重要问题!!!!!!
- 用delphi如何在一个*.xls中新增sheet,并自定义其名称
- Dephi5下用三层结构开发的程序,发布后,将应用程序服务器放到服务器(NT)运行,在做开发的机器上运行客户端正常,但在其他客户端运行报错?
- ReportBuilder中如何按照字段值的左半部分分组?
- 怎样用ADO连接Access数据库
const
Margin = 20;type
PData = ^TData;
TData = record
XPos: Integer;
YPos: Integer;
end;