Доброго времени суток.
Написал программу, спустя некоторое время зависает программа, так же может появиться окно с текстом "параметр задан не верно"
Помогите устранить проблему...
Код:
procedure greenkryg;
var
i, j: integer;
dx: integer;
bit: TBitmap;
flag: boolean;
t: TDateTime;
Pixels: PByteArray;
ranz: integer;
const
red1 = 0;
green1 = 127;
blue1 = 0;
begin
flag := false;
bit := TBitmap.Create;
bit.PixelFormat := pf24bit;
bit.Width := Screen.Width;
bit.Height := Screen.Height;
BitBlt(bit.Canvas.Handle, 0, 0, bit.Width, bit.Height, GetDC(0), 0, 0,
SRCCOPY);
t := now;
dx := DWord(bit.ScanLine[1]) - DWord(bit.ScanLine[0]);
Pixels := bit.ScanLine[0];
for i := 0 to bit.Height - 1 do
begin
for j := 0 to bit.Width - 1 do
begin
flag := (Pixels[j * 3 + 2] = red1) and (Pixels[j * 3 + 1] = green1) and
(Pixels[j * 3] = blue1);
if flag then
break;
end;
if flag then
break;
inc(DWord(Pixels), dx);
end;
if flag then
begin
end
else
begin
PlaySound('music.wav',0,SND_FILENAME)
end;
bit.Free;
end;
procedure four;
var
i, j: integer;
dx: integer;
bit: TBitmap;
flag: boolean;
Pixels: PByteArray;
const
red1 = 89;
green1 = 126;
blue1 = 16;
begin
flag := false;
bit := TBitmap.Create;
bit.PixelFormat := pf24bit;
bit.Width := Screen.Width;
bit.Height := Screen.Height;
BitBlt(bit.Canvas.Handle, 0, 0, bit.Width, bit.Height, GetDC(0), 0, 0,
SRCCOPY);
t := now;
dx := DWord(bit.ScanLine[1]) - DWord(bit.ScanLine[0]);
Pixels := bit.ScanLine[0];
for i := 0 to bit.Height - 1 do
begin
for j := 0 to bit.Width - 1 do
begin
flag := (Pixels[j * 3 + 2] = red1) and (Pixels[j * 3 + 1] = green1) and
(Pixels[j * 3] = blue1);
if flag then
break;
end;
if flag then
break;
inc(DWord(Pixels), dx);
end;
if flag then
begin
greenkryg;
end;
bit.Free;
end;
procedure three;
var
i, j: integer;
dx: integer;
bit: TBitmap;
flag: boolean;
Pixels: PByteArray;
const
red1 = 214;
green1 = 119;
blue1 = 1;
begin
flag := false;
bit := TBitmap.Create;
bit.PixelFormat := pf24bit;
bit.Width := Screen.Width;
bit.Height := Screen.Height;
BitBlt(bit.Canvas.Handle, 0, 0, bit.Width, bit.Height, GetDC(0), 0, 0,
SRCCOPY);
t := now;
dx := DWord(bit.ScanLine[1]) - DWord(bit.ScanLine[0]);
Pixels := bit.ScanLine[0];
for i := 0 to bit.Height - 1 do
begin
for j := 0 to bit.Width - 1 do
begin
flag := (Pixels[j * 3 + 2] = red1) and (Pixels[j * 3 + 1] = green1) and
(Pixels[j * 3] = blue1);
if flag then
break;
end;
if flag then
break;
inc(DWord(Pixels), dx);
end;
if flag then
begin
PlaySound('music.wav',0,SND_FILENAME)
end;
bit.Free;
end;
procedure two;
var
i, j: integer;
dx: integer;
bit: TBitmap;
flag: boolean;
Pixels: PByteArray;
const
red1 = 25;
green1 = 73;
blue1 = 123;
begin
flag := false;
bit := TBitmap.Create;
bit.PixelFormat := pf24bit;
bit.Width := Screen.Width;
bit.Height := Screen.Height;
BitBlt(bit.Canvas.Handle, 0, 0, bit.Width, bit.Height, GetDC(0), 0, 0,
SRCCOPY);
t := now;
dx := DWord(bit.ScanLine[1]) - DWord(bit.ScanLine[0]);
Pixels := bit.ScanLine[0];
for i := 0 to bit.Height - 1 do
begin
for j := 0 to bit.Width - 1 do
begin
flag := (Pixels[j * 3 + 2] = red1) and (Pixels[j * 3 + 1] = green1) and
(Pixels[j * 3] = blue1);
if flag then
break;
end;
if flag then
break;
inc(DWord(Pixels), dx);
end;
if flag then
begin
PlaySound('music.wav',0,SND_FILENAME)
end;
bit.Free;
end;
procedure one;
var
i, j: integer;
dx: integer;
bit: TBitmap;
flag: boolean;
Pixels: PByteArray;
const
red1 = 254;
green1 = 202;
blue1 = 135;
begin
flag := false;
bit := TBitmap.Create;
bit.PixelFormat := pf24bit;
bit.Width := Screen.Width;
bit.Height := Screen.Height;
BitBlt(bit.Canvas.Handle, 0, 0, bit.Width, bit.Height, GetDC(0), 0, 0,
SRCCOPY);
t := now;
dx := DWord(bit.ScanLine[1]) - DWord(bit.ScanLine[0]);
Pixels := bit.ScanLine[0];
for i := 0 to bit.Height - 1 do
begin
for j := 0 to bit.Width - 1 do
begin
flag := (Pixels[j * 3 + 2] = red1) and (Pixels[j * 3 + 1] = green1) and
(Pixels[j * 3] = blue1);
if flag then
break;
end;
if flag then
break;
inc(DWord(Pixels), dx);
end;
if flag then
begin
PlaySound('music.wav',0,SND_FILENAME)
end;
bit.Free;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
one;
two;
three;
four;
end;
end.