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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2012, 20:18   #1
megostudent
Форумчанин
 
Регистрация: 31.12.2010
Сообщений: 320
По умолчанию Цикл for

Код:
procedure TForm1.Button1Click(Sender: TObject);
const
  CAPTUREBLT = $40000000;
var  ScreenBM:TBitMap;
      SendJPG:TJPEGImage;
      i,a:integer;
begin
for i:=1 to 10 do
  begin
  a:=0;
  a:=a+1;
  ScreenBM:=TBitMap.Create;
  SendJPG:=TJPEGImage.Create;
  ScreenBM.Width:=Screen.Width;
  ScreenBM.Height:=Screen.Height;
  BitBlt(ScreenBM.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,
  GetDC(0), 0, 0, SRCCopy or CAPTUREBLT);
  SendJPG.Assign(ScreenBM);
  SendJPG.SaveToFile('c:\temp\'+ inttostr(a) + '.jpg');
  SendJPG.Free;
  ScreenBM.Free;
  sleep(5000);
  end;
end;
сохраняет только 2 скрина с именами 1.jpg и 2.jpg. А должно же до 10 дойти что не так?
megostudent вне форума Ответить с цитированием
Старый 23.12.2012, 20:44   #2
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

убери переменную a насовсем, а с ней и
Код:
  a:=0;
  a:=a+1;
(просто не вижу в ней смысла)
а строку
Код:
 SendJPG.SaveToFile('c:\temp\'+ inttostr(a) + '.jpg');
поправь на
Код:
 SendJPG.SaveToFile('c:\temp\'+ inttostr(i) + '.jpg');
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 23.12.2012, 21:10   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Интересно, как код из #1 мог скрин 2.jpg делать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.12.2012, 21:12   #4
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Аватар, мне тоже интересно
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 23.12.2012, 21:14   #5
megostudent
Форумчанин
 
Регистрация: 31.12.2010
Сообщений: 320
По умолчанию

Цитата:
Сообщение от Yurk@ Посмотреть сообщение
убери переменную a насовсем, а с ней и
Код:
  a:=0;
  a:=a+1;
(просто не вижу в ней смысла)
а строку
Код:
 SendJPG.SaveToFile('c:\temp\'+ inttostr(a) + '.jpg');
поправь на
Код:
 SendJPG.SaveToFile('c:\temp\'+ inttostr(i) + '.jpg');
точно) я дурак брал и i:=1 а добавлять счетчик внутри цикла с одинаковой переменной нельзя. затупил одним словом)
Юра спасибо)

Последний раз редактировалось megostudent; 23.12.2012 в 21:21.
megostudent вне форума Ответить с цитированием
Старый 23.12.2012, 21:15   #6
megostudent
Форумчанин
 
Регистрация: 31.12.2010
Сообщений: 320
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Интересно, как код из #1 мог скрин 2.jpg делать
поправочка, то не тот скрин, сделался то с названием 1.jpg
megostudent вне форума Ответить с цитированием
Старый 23.12.2012, 21:22   #7
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Цитата:
так нельзя, потому что счетчик с нельзя внутрь цикла ставить, будет ошибка, запусти код проверь
О_о ... это с каких пор ???
ты бы проверил
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цикл Twisterr Общие вопросы C/C++ 4 25.09.2011 08:56
Цикл по времени - Как сделать так чтобы цикл выполнялся к примеру 10 секунд ? Anarki Общие вопросы C/C++ 3 13.11.2009 19:23
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34