Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скрин экрана, по таймеру с условием 
:(
    Опции темы
MrDmitry
Дата 25.3.2010, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



Парни помогите сделать такую прогу, нужно чтоб по таймеру с интервалом 15сек делался скрин заданной области экрана, при этом чтоб кол-во скринов задовалось по верхнему и нижнему приделу, то есть например верхний придел 5 нижний 5 
Делается 5 скринов затем нижний увеличивается на 1 делается еще 5 скринов нижний придел увеличивается на 1 еще 5 скринов и т.д

НАкидал след код

Код

procedure TFormScreen.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 isMouseDown:=false; redr:=false;
 if(draww) then bsave.Visible:=true else bsave.Visible:=false;
 DrawBack;
end;

procedure TFormScreen.bsaveClick(Sender: TObject);
var btt:tbitmap; rree:trect;
  JpegIm: TJpegImage;
  Up,Down:integer;
begin
Timer1.Enabled:=true;
 UP:=0;
 Down:=0;
 rree:=ree;
 //íåìíîæêî âåëîñèïåäîâ :)
 if(ree.Right<ree.Left) then begin
  rree.Left:=ree.Right;
  rree.Right:=ree.Left;
 end;
 if(ree.Bottom<ree.Top) then begin
  rree.Bottom:=ree.Top;
  rree.Top:=ree.Bottom;
 end;


 if(SD.Execute)and((rree.Right-rree.Left)>0)and((rree.Bottom-rree.Top)>0) then begin
   btt:=TBitmap.Create;
   While (UP<5) and (down<5) do
    begin
    if up=5 then
      begin
       Up:=0;
       Inc(down);
      end
     else
      begin
       inc(up);
      end;
 if time=15 then
         begin
   try
    btt.Width:=rree.Right-rree.Left;
    btt.Height:=rree.Bottom-rree.Top;
    btt.Canvas.CopyRect( rect(0,0,btt.Width,btt.Height), bt_tmp.canvas , rree );
    if(lowercase(extractfileext(sd.FileName))='.bmp') then
     btt.SaveToFile(SD.FileName) else
     btt.SaveToFile(SD.FileName+IntToStr(up)+'n'+IntToStr(down)+'.bmp');
   finally
    btt.Free;
    end;
   end;
  image1.Picture.LoadFromFile(SD.FileName);
 JpegIm := TJpegImage.Create;
JpegIm.Assign(image1.picture.graphic);
JpegIm.CompressionQuality := 100;
JpegIm.Compress;
JpegIm.SaveToFile(SD.FileName+IntToStr(up)+'n'+IntToStr(down)+'.jpg');
JpegIm.free;
DeleteFile(SD.FileName);
end;
time:=0;
end;
end;


Код

procedure TFormScreen.Timer1Timer(Sender: TObject);
begin
if time=0 then
inc(time);
end;


Но все вылетает (((

Если убрать все мои циклы то скрин выделенной области делается, и конвертится в jpg
но с моим циклом не в какую не пашет ((((
Где тут косяк? 
PM MAIL   Вверх
DarkProg
Дата 25.3.2010, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


Профиль
Группа: Завсегдатай
Сообщений: 1784
Регистрация: 11.3.2009
Где: Земля

Репутация: 1
Всего: 19



А трассировкой не пробовали - пошагово в цикле пока не найдёте момент где летит косяк, потом ставите breakpoint на предыдущий шаг и выясняете где же и какие параметры делают нам вылет???


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
MrDmitry
Дата 25.3.2010, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



Цикл выполняется 1 раз и патом ошибка ((((
PM MAIL   Вверх
DarkProg
Дата 25.3.2010, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


Профиль
Группа: Завсегдатай
Сообщений: 1784
Регистрация: 11.3.2009
Где: Земля

Репутация: 1
Всего: 19



НУ а трассировка по шагам, поидее я так понимаю(наугад немного) что какой-то из объектов не уничтожен и всё получаем ошибку. В общем ищите объект который неуничтожили, или неабнулёный указатель(что менее вероятно)


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0671 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.