Главная страница
    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.014 c
6-1111128147
leonidus
2005-03-18 09:42
2005.06.06
Копирование файлов по локальной сети


14-1116591694
Digitman
2005-05-20 16:21
2005.06.06
Ох и засада этот IntraWeb !)


14-1116337121
reticon
2005-05-17 17:38
2005.06.06
Знатокам HTML. Гиперссылка без href.


6-1111268616
Radgar
2005-03-20 00:43
2005.06.06
Проблема приема ReceiveText с несколькоми клиентами


3-1115099064
_DB_
2005-05-03 09:44
2005.06.06
SQL запрос на выбор записей, начанающихся с определенного слова





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский