Главная страница
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.057 c
1-1116587490
Phoenix9000
2005-05-20 15:11
2005.06.06
переменная string. Поменять местами некоторые данные


14-1116584933
12DFBDDh
2005-05-20 14:28
2005.06.06
ИБМ идиоты или такая политика?


8-1108740862
oreon
2005-02-18 18:34
2005.06.06
4D массив: проблема визуализации


1-1116534544
Green_Templar
2005-05-20 00:29
2005.06.06
возведение в квадрат


14-1116636141
Максим О.
2005-05-21 04:42
2005.06.06
Помогите с Dephi 8