Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.06;
Скачать: CL | DM;

Вниз

Автопереименование   Найти похожие ветки 

 
Volume ©   (2005-05-20 17:32) [0]

Как сделать, чтобы при обнаружении файла с именем 1.bmp программа сохраняла картинку под именем 2.bmp и так далее?
Использую код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
 DC: HDC;
 Canva: TCanvas;
 B: TBitmap;
begin
 Canva := TCanvas.Create;
 B := TBitmap.Create;
 DC := GetDC(0);
 try
   Canva.Handle := DC;
   with Screen do
   begin
     B.Width := Width;
     B.Height := Height;
     B.Canvas.CopyRect(Rect(0, 0, Width, Height),
     Canva, Rect(0, 0, Width, Height));
     B.SaveToFile("c:\1.bmp");
   end
 finally
   ReleaseDC(0, DC);
   B.Free;
   Canva.Free
 end

end;


 
Marser ©   (2005-05-20 17:40) [1]

1. findfirst, findnext, findclose. Находишь все bmp, выбираешь среди них файлы с цифровыми именами(проверяешь val, например), находишь наибольшее.

2. Внаглую пытаешься сохранить. Если выдаёт ошибку ERROR_ALREADY_EXISTS, присваиваешь имя+1.

3. Ведешь собственный счетчик имён.


 
Virgo_Style ©   (2005-05-20 17:49) [2]

4. Проверка FileExist"ом.


 
Marser ©   (2005-05-20 17:50) [3]


> Virgo_Style ©   (20.05.05 17:49) [2] [Новое
>сообщение][Ответить]
> 4. Проверка FileExist"ом.

Забыл :о)


 
Просто Джо ©   (2005-05-20 17:55) [4]

Если пишешь в свою папку, то разумнее всего использовать счетчик.

TForm = class...
...
private
...
 FFileCounter: Integer;
end;

///

procedure TForm1.Timer1Timer(Sender: TObject);
var
 FileName: string;
begin
 FileName := Format ("%d.bmp",[FFileCounter]);
 B.SaveToFile(Path+FileName);
 Inc(FFileCounter);
end;


если нет, тогда алгоритм грозит стать весьма запутанным. Проверка на существование см. [2] Virgo_Style ©   (20.05.05 17:49).

Мой совет: создавай свою временную папку.


 
Volume ©   (2005-05-20 18:24) [5]

Просто Джо ©   (20.05.05 17:55) [4]
Не получается выдаёт ошибку!

Marser ©   (20.05.05 17:40) [1]
Можно третий вариант представить ввиде кода, а то я с Delphi недавно стал работать?


 
Просто Джо ©   (2005-05-20 18:45) [6]


> Просто Джо ©   (20.05.05 17:55) [4]
> Не получается выдаёт ошибку!


Я и не приводил полный рабочий код. Это всего лишь куски, которые тебе нужно добавить к своему коду. Просто иллюстация примитивного счетчика.


 
Marser ©   (2005-05-20 18:46) [7]


> Можно третий вариант представить ввиде кода, а то я с
> Delphi недавно стал работать?

В [4] отличный код.


 
Virgo_Style ©   (2005-05-20 19:24) [8]

Убери многоточия (с) не помню.



Страницы: 1 вся ветка

Текущий архив: 2005.06.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.067 c
14-1116396012
Kerk
2005-05-18 10:00
2005.06.06
С днем рожденья! 18 мая


1-1116316393
jdskdhjkhfsfd
2005-05-17 11:53
2005.06.06
Как динамически создавать TImage в определенном месте на форме


14-1116581327
BigMac
2005-05-20 13:28
2005.06.06
IMEI


1-1116929692
KillerToxa
2005-05-24 14:14
2005.06.06
Гипперссылка


8-1108818056
Ivolg
2005-02-19 16:00
2005.06.06
Глюк с MediaPlayer