Главная страница
    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.039 c
2-1142014338
_duk
2006-03-10 21:12
2006.03.26
Память


4-1136835524
ArtemESC
2006-01-09 22:38
2006.03.26
Помогите с регионами


2-1142319552
mixder
2006-03-14 09:59
2006.03.26
Проблема с драг&amp;док ами


4-1135390132
Grinder
2005-12-24 05:08
2006.03.26
Добавить пункт в чужое меню


1-1140919693
Grol
2006-02-26 05:08
2006.03.26
Быстро обновить все визуальные компонент на форме





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