Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2015, 17:33   #1
ddwnik
Пользователь
 
Регистрация: 02.09.2014
Сообщений: 22
По умолчанию Состояние: Не отвечает

Доброго времени суток.
Написал программу, спустя некоторое время зависает программа, так же может появиться окно с текстом "параметр задан не верно"
Помогите устранить проблему...
Код:



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.
ddwnik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AJAX запросы отвечает ошибкой 503 ВалекFCRK JavaScript, Ajax 4 09.02.2015 13:22
Что отвечает за цветовые настройки компонентов? gesper Общие вопросы Delphi 5 27.07.2011 21:12
Почему на мои сообщения никто не отвечает? Lyubimov Свободное общение 16 16.04.2011 22:51
Thread.Приложение не отвечает. Не запускается поток. Zerofill Общие вопросы Delphi 2 10.10.2009 16:04
за что отвечает class в таблице? badfilin HTML и CSS 1 17.04.2008 22:06