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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2013, 21:36   #1
Janger
Форумчанин
 
Регистрация: 28.09.2011
Сообщений: 250
Смущение Сохранить Все Изображения

Я что то не могу придумать, как сделать так, что бы имена шли по очереди, т.е. с 0 до 100 ...
Код:
if (GetAsyncKeyState(VK_F4) and GetAsyncKeyState(VK_F5)) <> 0 then
  begin
  for i := 0 to 100 do
  begin
  ScreenShot(n+'\Screen'+IntToStr(i)+'.bmp');
  break;
  end;
  end;
n = Путь к файлу
Всё работает нормально, т.е. скриншот делается нормально. Получается скриншот в нужной папке с именем: Screen0.bmp
Вроде бы логично, но как сделать так, что бы при нажатии 2-а раза на клавиши F4 + F5, было 2-а скриншота, с именами: Screen0.bmp и Screen1.bmp, ну и т.д.
Я до этого не могу додуматься(((
У меня получается либо 1-н скрин, либо 100 скринов
Я общем, подскажите, прошу... Идей у меня больше нету...((
Janger вне форума Ответить с цитированием
Старый 18.11.2013, 21:44   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
if (GetAsyncKeyState(VK_F4) and GetAsyncKeyState(VK_F5)) <> 0 then
  begin
   ScreenShot(n+'\Screen'+IntToStr(tag)+'.bmp');
   tag:=tag+1;
  end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.11.2013, 21:44   #3
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

if not fileexists(...) then ...
Arigato вне форума Ответить с цитированием
Старый 18.11.2013, 21:52   #4
Janger
Форумчанин
 
Регистрация: 28.09.2011
Сообщений: 250
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
if (GetAsyncKeyState(VK_F4) and GetAsyncKeyState(VK_F5)) <> 0 then
  begin
   ScreenShot(n+'\Screen'+IntToStr(tag)+'.bmp');
   tag:=tag+1;
  end;
Это не помогает, он всё равно заменяет.
И счётчик на 0 стоит, дальше не идёт

Я так понимаю, проблема в том, что что изменение происходит в "конце" кода, а компиляция идёт не с конца, а с начала Как бы это банально не звучало
И по этому, значение "tag", вообще ни на что не реагирует.
Хм... Всё равно идей нету(

Последний раз редактировалось Stilet; 18.11.2013 в 22:38.
Janger вне форума Ответить с цитированием
Старый 18.11.2013, 22:19   #5
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

http://programmersforum.ru/showpost....82&postcount=3
Arigato вне форума Ответить с цитированием
Старый 19.11.2013, 11:49   #6
Janger
Форумчанин
 
Регистрация: 28.09.2011
Сообщений: 250
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
простите но я не особо понял, как это применить

В общем, решим проблему.
Просто сделал не счётчик, а вывод времени:
Screen115010.bmp
Идёт в начале "Screen", потом часы "11", потом минуты "50", и секунды "10", и всё тут
p.s. ну мало ли кому то надо будет..
всем большое спасибо за комментарии! Всем +

Последний раз редактировалось Stilet; 19.11.2013 в 13:11.
Janger вне форума Ответить с цитированием
Старый 19.11.2013, 12:02   #7
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию

Janger
Код:
....
var 
 Tag: Integer = 0;

implementation
.....
procedure Check;
begin
  if (GetAsyncKeyState(VK_F4) and GetAsyncKeyState(VK_F5)) <> 0 then
  begin
    ScreenShot(N + '\Screen' + IntToStr(Tag) + '.bmp');
    Tag := Tag + 1;
  end;
end;
Tag - глобальная переменная
bakanaev вне форума Ответить с цитированием
Старый 19.11.2013, 12:16   #8
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Цитата:
Сообщение от Janger Посмотреть сообщение
простите но я не особо понял, как это применить
Код:
FileName := n+'\Screen'+IntToStr(i)+'.bmp';
if not FileExists(FileName) then begin
  ScreenShot(FileName);
  Break;
end;
Только лучше вогнать это под цикл while, чтобы не быть ограниченным только 100 индексами.
Arigato вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Собрать все Image и сохранить в один файл как реализовать? Vans888 Общие вопросы Delphi 4 23.03.2012 22:47
Не помещаются все изображения на панели Delphi7 Dalagardi Помощь студентам 4 23.03.2010 14:02
Возможно ли сохранить все параметры программы... dplz Общие вопросы Delphi 4 31.03.2009 08:11
Как сохранить файл чтобы пропали все команды, Rashanea Microsoft Office Excel 2 27.11.2008 22:43
Как сохранить все что изображено на Canvas в файл? PilGrim Мультимедиа в Delphi 2 01.11.2007 21:03