Главная страница
    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.041 c
4-1136582918
g-l-u-k
2006-01-07 00:28
2006.03.26
Получение PID


2-1142181698
zaN0za
2006-03-12 19:41
2006.03.26
Сравнение типов


9-1126683287
Ricks
2005-09-14 11:34
2006.03.26
Пересечение прямоугольников


2-1141832281
Mozgan
2006-03-08 18:38
2006.03.26
Как узнать код клавиши F4


15-1141570417
Lomant
2006-03-05 17:53
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский