![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Автопереименование [D7, WinXP]
Volume © (2005-05-20 17:32:00)Как сделать, чтобы при обнаружении файла с именем 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;
Virgo_Style (2005-05-20 19:24:00) [1]Убери многоточия (с) не помню.
Marser (2005-05-20 18:46:00) [2]
> Можно третий вариант представить ввиде кода, а то я с
> Delphi недавно стал работать?
В [4] отличный код.
Просто Джо (2005-05-20 18:45:00) [3]
> Просто Джо © (20.05.05 17:55) [4]
> Не получается выдаёт ошибку!
Я и не приводил полный рабочий код. Это всего лишь куски, которые тебе нужно добавитьк своему коду. Просто иллюстация примитивного счетчика.
Volume (2005-05-20 18:24:00) [4]Просто Джо © (20.05.05 17:55) [4]
Не получается выдаёт ошибку!
Marser © (20.05.05 17:40) [1]
Можно третий вариант представить ввиде кода, а то я с Delphi недавно стал работать?
Просто Джо (2005-05-20 17:55:00) [5]Если пишешь в свою папку, то разумнее всего использовать счетчик.
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).
Мой совет: создавай свою временную папку.
Marser (2005-05-20 17:50:00) [6]
> Virgo_Style © (20.05.05 17:49) [2] [Новое
>сообщение][Ответить]
> 4. Проверка FileExist'ом.
Забыл :о)
Virgo_Style (2005-05-20 17:49:00) [7]4. Проверка FileExist'ом.
Marser (2005-05-20 17:40:00) [8]1. findfirst, findnext, findclose. Находишь все bmp, выбираешь среди них файлы с цифровыми именами(проверяешь val, например), находишь наибольшее.
2. Внаглую пытаешься сохранить. Если выдаёт ошибку ERROR_ALREADY_EXISTS, присваиваешь имя+1.
3. Ведешь собственный счетчик имён.