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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2015, 14:32   #1
treverz
Новичок
Джуниор
 
Регистрация: 17.02.2015
Сообщений: 3
По умолчанию Получить новые jpg в папке и их распечатать

Такая задача:
Отдельный уже готовый php скрипт каждые 10 секунд сохраняет с сервера в папку нужные jpg картинки (сохраняются с уникальным именем), обычно 0-4 файла за раз, их сразу нужно распечатать.

Помогите написать программу на delphi, которая могла бы проверять папку по таймеру на новые jpg файлы по имени и вызывала функцию печати. Собственных знаний не хватает((
За готовый вариант готов отблагодарить небольшой суммой на мобильный телефон!


Функция проверки доступности и распечатки (гугл помог):

Код:
uses
  ExtCtrls, Jpeg, Printers;
 
function TForm1.ProcFile(const aFileName : String) : Boolean;
const
  Wait = 1000; //Время ожидания освобождения файла, в миллисекундах.
var
  Img : TImage;
  HFile : Integer;
  t : Int64;
begin
  Result := False;
  //Если файл не существует, то выходим.
  if not FileExists(aFileName) then
    Exit;
  //Если файл занят, то ожидаем, когда он будет освобождён. Ожидаем не более Wait миллисекунд.
  t := GetTickCount + Wait; //Момент времени, до которого будем ждать освобождения файла.
  HFile := -1;
  while (HFile = -1) and (GetTickCount < t) do
  begin
    HFile := FileOpen(aFileName, fmOpenRead or fmShareDenyWrite); //Попытка открыть файл.
    Application.ProcessMessages; //Обработка очереди сообщений приложения.
  end;
  //Если время ожидания истекло, а файл не освобождён, то считаем, что обработка не удалась.
  if HFile = -1 then
    Exit
  else
    FileClose(HFile); //Закрываем файл.
 
  //Обработка файла.
  Img := TImage.Create(nil);
  try
    try
      //Загружаем изображение в экземпляр TImage.
      Img.Picture.LoadFromFile(aFileName);
      //Попытка отправить изображение на печатающее устройство.
      Printer.BeginDoc;
      Printer.Canvas.CopyRect(Rect(20, 20, 19 + Img.Height, 19 + Img.Width),
        Img.Canvas, Rect(0, 0, Img.Height, Img.Width));
      Printer.EndDoc;
      Result := True;
    finally
      FreeAndNil(Img);
    end;
  except
  end;
end;

Последний раз редактировалось Stilet; 17.02.2015 в 15:53.
treverz вне форума Ответить с цитированием
Старый 17.02.2015, 14:42   #2
Iron Monk
Форумчанин
 
Аватар для Iron Monk
 
Регистрация: 05.10.2007
Сообщений: 478
По умолчанию

http://delphiworld.narod.ru/base/rea...changes_w.html
Iron Monk вне форума Ответить с цитированием
Старый 17.02.2015, 14:49   #3
treverz
Новичок
Джуниор
 
Регистрация: 17.02.2015
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Iron Monk Посмотреть сообщение
знаний не хватает реализовать, поможете?(
treverz вне форума Ответить с цитированием
Старый 17.02.2015, 15:31   #4
Iron Monk
Форумчанин
 
Аватар для Iron Monk
 
Регистрация: 05.10.2007
Сообщений: 478
По умолчанию

Цитата:
Сообщение от treverz Посмотреть сообщение
знаний не хватает реализовать, поможете?(
Забирайте.
Переделать под свои нужды, надеюсь, сможете.

Исходник взят на http://delphiworld.narod.ru.
Автор: FliNT
Вложения
Тип файла: rar Монитор каталога.rar (4.6 Кб, 7 просмотров)
Iron Monk вне форума Ответить с цитированием
Старый 17.02.2015, 15:41   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,430
По умолчанию

Цитата:
знаний не хватает реализовать, поможете?(
Их не прибавится и после получения исходника )
Человек_Борща вне форума Ответить с цитированием
Старый 17.02.2015, 19:15   #6
treverz
Новичок
Джуниор
 
Регистрация: 17.02.2015
Сообщений: 3
По умолчанию

Спасибо, с задачей справились!
treverz вне форума Ответить с цитированием
Старый 17.02.2015, 20:43   #7
Iron Monk
Форумчанин
 
Аватар для Iron Monk
 
Регистрация: 05.10.2007
Сообщений: 478
По умолчанию

Цитата:
Сообщение от treverz Посмотреть сообщение
Спасибо, с задачей справились!
Мы или Вы?))) Если Вы - молодцы!
Iron Monk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить доступ к папке на сервере lioon Microsoft Office Excel 1 01.09.2014 17:46
Получить список файлов в папке romanzi Общие вопросы Delphi 7 21.08.2013 08:19
Получить JPG, побороть редирект Gribochek Работа с сетью в Delphi 1 20.01.2011 19:35