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

Вниз

Проблема с процедурой   Найти похожие ветки 

 
Adios ©   (2006-03-08 20:27) [0]

у меня в программе есть процедура которая устанавливает обои на рабочий стол, 2 типа файлов: .bmp и .jpg, процедура копирует картинку в юзертемп, а если это .jpg то сначала конвертирует её в .bmp, а потом устанавливает в качестве обоев, проблема в следующем: если картинка .bmp, то проблем нет, а если .jpg, то нажатие на кнопку вообще убирает обои с рабочего стола, но если сначала выбрать в качестве обоев .bmp, то потом и .jpg работает нормально, вот процедура:

procedure Tmenu1.choiseClick(Sender: TObject);
begin
FileExt := ExtractFileExt(FileListBox1.Filename);
 if FileExt=".jpg" then
 begin
 JPEGtoBMP(filelistbox1.FileName);
 end;
 if FileExt=".bmp" then
 begin
 f:=FileListBox1.Filename;
 f1:=c_GetTempPath+"\"+"wallpapers"+".bmp";
 Copyfile(PChar(f),PChar(f1),false);
 end;
wallpapers("wallpapers");
panel1.SetFocus;
end;
========================================
procedure wallpapers(const FileName: TFileName);
begin
reg := TRegIniFile.Create("Control Panel\\Desktop" );
with reg do begin
sWallpaperBMPPath:=f1;
bTile:=false;
WriteString( "", "Wallpaper", sWallpaperBMPPath );
if( bTile )then begin
WriteString("", "TileWallpaper", "1" );
end
else begin
WriteString("", "TileWallpaper", "0" );
end;
end;
reg.Free;
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, Nil, SPIF_SENDWININICHANGE );

end;
============================================
procedure JPEGtoBMP(const FileName: TFileName);
var
 jpeg: TJPEGImage;  
 bmp:  TBitmap;  
begin  
   jpeg := TJPEGImage.Create;
 try
   jpeg.CompressionQuality := 100;
   jpeg.LoadFromFile(filename);
   bmp := TBitmap.Create;
   try
     bmp.Assign(jpeg);
     bmp.SaveTofile(ChangeFileExt(c_GetTempPath+"\"+"wallpapers", ".bmp"));
   finally
     bmp.Free
 end;
 finally
   jpeg.Free
end;
end;


 
Adios ©   (2006-03-09 09:47) [1]

чё никто не знает чтоли?, люди, очень надо знать почему клинит!


 
ЮЮ ©   (2006-03-09 10:02) [2]


> а если это .jpg то сначала конвертирует её в .bmp, а потом
> устанавливает в качестве обоев,


А потом не будет, ибо JPEGtoBMP никак не мееняет FileExt, т.е  условие FileExt=".bmp" всегда ложно для .jpg


 
Adios ©   (2006-03-10 19:47) [3]

на всякий случай отвечу на свой вопрос сам:

> procedure Tmenu1.choiseClick(Sender: TObject);
> begin
> FileExt := ExtractFileExt(FileListBox1.Filename);
>  if FileExt=".jpg" then
>  begin                                <=  f1:=c_GetTempPath+"\"+"wallpapers"+".bmp";
>  JPEGtoBMP(filelistbox1.FileName);
>  end;
>  if FileExt=".bmp" then
>  begin
>  f:=FileListBox1.Filename;
>  f1:=c_GetTempPath+"\"+"wallpapers"+".bmp";
>  Copyfile(PChar(f),PChar(f1),false);
>  end;
> wallpapers("wallpapers");
> panel1.SetFocus;
> end;

<= там я забыл объявить переменнуб в которой содержится путь к обоям "f1", поэтому если сначала устанавливать jpg то процедуре негде взять путь к обоям, а если сначала ставить bmp, то переменная объявляется и потом jpg тоже работает нормально.



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

Форум: "Начинающим";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.042 c
2-1141897963
DelphiN!
2006-03-09 12:52
2006.03.26
Перевод массива ASCLL кодов в их символьное представление


2-1141997654
MC_GMC
2006-03-10 16:34
2006.03.26
Размещение файла в оперативке


15-1141120583
AlexeyT
2006-02-28 12:56
2006.03.26
Статья "Написание оптимального кода под Delphi"


2-1141837878
Volkodav
2006-03-08 20:11
2006.03.26
Перетаскивание формы


2-1142138454
ученик1
2006-03-12 07:40
2006.03.26
Структура TSearchRec





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