Forum Replies Created
-
AuthorPosts
-
MirajParticipant
По моему, я такое тож наблюдал… но не придавал особенного значения.. хотя бывало и не удобно.
MirajParticipantобычно такое наблюдалось когда скины от предыдущих версий, ставятся на более новую версию AC
MirajParticipantОффтоп, я написал для юзеров…. про программистов я ничего не говорил ))
Можно конечно использовать библиотеку Zlib, но по моему это уже перебор.MirajParticipantНо я все больше склоняюсь к тому чтобы хранить пакеты иконок в dll'ках.
Во первых, пользователи не будут удалять/изменять файлы и юзеры не смогут стащить иконки.MirajParticipantQUOTE (Brissen @ Jun 27 2009, 03:29 PM) <{POST_SNAPBACK}>Хочу в своей программе сделать возможность выбора набора значков (для кнопок на панели инструментов и т. п.), для этого, по идее, нужно загружать картинки в imageList в рантайме, а вот с этим у меня возникла проблема…
Подскажите как правильно загрузить png (32-битные, с прозрачностью) в TsAlphaImageList из файла.
Можно заменить существующие в imageliste картинки вот так: ail2.Items.Items[1].ImgData.LoadFromfile('1.png');, но что-то мне подсказывает, что это делаться должно нет так.. Метод Add хочет битмап + маску.. Как-то проще должно быть, наверное… Спасибо заранее.У меня в программе сделано так же.
Не знаю.. может что-то не оптимально…
В два ImageList подгржаются 16 и 32 пиксела иконки.
path – путь до директории с темами,
CurT – Имя темы
lib16 и lib32 – ImageList'ы соответственно.CODEfunction PNGloader(path: String; CurT: String; lib16: TsAlphaImageList; lib32: TsAlphaImageList): boolean;
var
ParamINI: TIniFile;
ParamPATH:String;
count: integer;
begin
ParamPATH := path + 'ResourcesToolBars' + CurT;
if DirectoryExists(ParamPATH) then
begin
ParamINI := TIniFile.Create(ParamPATH + 'params.ini');
if ParamINI.SectionExists('PNGload16') then
begin
count := 0;
while ParamINI.ValueExists('PNGload16',IntToStr(count)) = True do
begin
lib16.LoadFromFile(ParamPATH + '' + ParamINI.ReadString('PNGload16', IntToStr(count),'') + '.png');
inc(count);
end;
end;
if ParamINI.SectionExists('PNGload32') then
begin
count := 0;
while ParamINI.ValueExists('PNGload32',IntToStr(count)) = True do
begin
lib32.LoadFromFile(ParamPATH + '' + ParamINI.ReadString('PNGload32', IntToStr(count),'') + '.png');
inc(count);
end;
end;
ParamINI.Free;
Result := True;
end
else
Result := False;
end;В папке с темами Лежит ini файл такого формата:
CODE[main]
name=New Vision Style
author=Miraj
date=09.03.2009[PNGload32]
0=TBexit
1=TBadd
2=TBattcrd
3=TBattcrdind[PNGload16]
0=IBDchk_on
1=IBDchk_off
2=IBDfemale
3=IBDmaleMirajParticipantДоброго времени суток.. Поставил себе этот эффект с затенением и поставил EurekaLog 6.0.20
В итоге когда программа закрывается. Вываливается ошибка связанная с утечкой памяти. Лог прилагаю.
[attachment=3353:acsus.zip]MirajParticipantпо моему.. скин не очень..
-
AuthorPosts