Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.06.06;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.015 c
3-1114521903
RodmanDes
2005-04-26 17:25
2005.06.06
ADO


3-1114433967
Bless
2005-04-25 16:59
2005.06.06
Эффективность плана выполнения запроса


4-1113542877
LineSoft
2005-04-15 09:27
2005.06.06
Управление печатью


1-1116835490
Stanislav
2005-05-23 12:04
2005.06.06
Вызов редактора свойств в run time


3-1114755842
msdn11
2005-04-29 10:24
2005.06.06
Сервер БД через инет





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский