?? mychangebrick.pas
字號:
unit myChangeBrick;
interface
uses
Classes,myData,Dialogs,SysUtils;
type
TChangeBrick = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
end;
implementation
uses
gm;
{ Important: Methods and properties of objects in visual components can only be
used in a method called using Synchronize, for example,
Synchronize(UpdateCaption);
and UpdateCaption could look like,
procedure TChangeBrick.UpdateCaption;
begin
Form1.Caption := 'Updated in a thread';
end; }
{ TChangeBrick }
procedure TChangeBrick.Execute;
var
bufBrick:TMatrixData;
buf,aflag:integer;
begin
bufBrick:=gmForm.curBrick; //copy gmForm.curBrick to a buffer
buf:=gmForm.curBrick.tag;
aflag:=gmForm.curBrick.flag;
case aflag of
1,3,5:begin
bufBrick.tag:=(bufBrick.tag+1)mod 2;
SetMatrix2(bufBrick,aflag+buf,gmForm.curBrick.xIndex,gmForm.curBrick.yIndex);
end;
7,11,15:begin
bufBrick.tag:=(bufBrick.tag+1)mod 4;
SetMatrix2(bufBrick,aflag+buf,gmForm.curBrick.xIndex,gmForm.curBrick.yIndex);
end;
end;
if OutLeftRange(bufBrick) then
begin
while OutLeftRange(bufBrick)do
bufBrick.xIndex:=bufBrick.xIndex+1;
if not(OutBottomRange(bufBrick)or OutRightRange(bufBrick)) then
gmForm.curBrick:=bufBrick;
end;
if OutRightRange(bufBrick) then
begin
while OutRightRange(bufBrick)do
bufBrick.xIndex:=bufBrick.xIndex-1;
if not(OutBottomRange(bufBrick)or OutLeftRange(bufBrick)) then
gmForm.curBrick:=bufBrick;
end;
if not(OutLeftRange(bufBrick) or OutRightRange(bufBrick) or OutBottomRange(bufBrick)) then
begin
gmForm.curBrick:=bufBrick;
end;
gmForm.Caption:=inttostr(random(100));
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -