Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Компоненты и утилиты для Delphi/BCB/FreePascal/Lazarus

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

Открыть новую тему     Написать ответ в эту тему

data man



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Делимся ссылками и обсуждаем Open Source компоненты, инструменты, эксперты для Delphi/BCB/FreePascal/Lazarus

Обсуждаем только то, что в шапке !


Кандидатов на включение в шапку, анонсируем в топике
"Анонсы компонент и утилит с открытым исходным кодом"

 
 
Графика (3D, растровая, векторная, диаграммы, редакторы, ...)
     
  Название и ссылки__________________________   Описание_________________________________   Последняя версия   Поддерживаемые версии сред   Баги :(
     Anti-Grain Geometry   Библиотека для работы с растровыми изображениями   2.4   D7..D2010,FP
     Asphyre   Библиотека под DirectX   4.1   D2006,FP
     DelphiX   Библиотека под DirectX   1.0.8.5   D4..D2010
     FASTGEO   Библиотека 2D/3D алгоритмов   5.0.1   D4..D2006,FP1.9.x
     GLScene; csv; русский сайт   Библиотека под OpenGL   1.0.0.0724   D4+,L
     Graphics32 / zip 1.9, tar 1.9   Быстрый аналог TCanvas   1.9 (релиз)   D6+/+
     GR32_Lines and GR32_Text / zip   Расширение для Graphics32   3.8   D4+ Подробнее
     Omega Engine   Кроссплатформенный игровой движок под DirectX/OpenGL   1.1.5   D7+,FP
     Simple Graph / zip   Визуальный компонент для составления схем   2.72 от 2 февраля 2009   D4+      
     
Обработка информации, но не БД (математика, физика, сжатие, кодирование, шифрование, ...)
     
  Название и ссылки__________________________   Описание_________________________________   Последняя версия   Поддерживаемые версии сред   Баги :(
     DIUcl   Pas-реализация резко асимметричного алгоритма UCL.   2.0.0   D2—DXE2      
     
Математика
     
Парсеры/компиляторы
     
  Название и ссылки__________________________   Описание_________________________________   Последняя версия   Поддерживаемые версии сред   Баги :(
     Pegtop Math / zip   Компилятор выражений   1.01   D4+/*      
     
Библиотеки классов и функций
     
  Название и ссылки__________________________   Описание_________________________________   Последняя версия   Поддерживаемые версии сред   Баги :(
     CCR Exif   Библиотека для работы с Exif-метаинформацией.   1.5.1 beta от 16 января 2012   Delphi 2006—XE2
     OmniThreadLibrary / v2.0   Создание многопоточных приложений, синхронизация потоков.   2.0 от 10 декабря 2010   Delphi 2009+
     NativeXml / v4.01   Библиотека для работы с XML-файлами, есть возможность сохранять и загружать объекты (классы).   4.01 от 27.07.2011   FPC, Delphi 5+
     
     
Библиотеки визуальных компонент
     
  Название и ссылки__________________________   Описание_________________________________   Последняя версия   Поддерживаемые версии сред   Баги :(
     JEDI VCL for Delphi / v3.39 JVCL+JCL 7z   Самая крупная библиотека компонент с открытым исходным кодом   3.39   D6+/BCB5+
     Pegtop Delphi / zip   Симпатичные ползунки, индикаторы прогресса, компоненты для отображения градиентов.   от 15 августа 2005   D5+      
     
Текст (работа со строками, регулярные выражения, редакторы, генераторы отчетов...)
 
Текст-редакторы
 
  Название и ссылки__________________________   Описание_________________________________   Последняя версия   Поддерживаемые версии сред   Баги :(
     ATSynEdit / Wiki   Многострочный редактор с подсветкой синтаксиса. Не основан на SynEdit. Поддерживает адаптеры для любых движков подсветок.   2018.12   Lazarus 1.8+  
     
Регулярные выражения
 
  Название и ссылки__________________________   Описание_________________________________   Последняя версия   Поддерживаемые версии сред   Баги :(
     TPerlRegEx / zip   Библиотека для работы с регулярными выражениями   27.10.09   D4+/*
     .Net-style RegEx / zip   Библиотека для работы с регулярными выражениями в стиле .Net   1.0   D2009+/-      
     
Работа с базами данных (визуальные и не визуальны компоненты и библиотеки)
     
Работа с оборудованием (коммуникация, порты, сеть, диски, принтеры, звук, ...)
     
  Название и ссылки__________________________   Описание_________________________________   Последняя версия   Поддерживаемые версии сред   Баги :(
     New Audio Components (NewAC) / v2.3.0 zip / SVN   Библиотека для работы со звуком в Delphi: вопроизведение, кодирование, фильтры   2.3.0 от 11 декабря 2009   D5-XE6 Подробнее…
     ComPort Library (svn)   Библиотека для работы с COM портом (синхронные и асинхронные операции чтения и записи в порт, использование многопоточности для мониторинга событий COM портов и многое другое)   4.11f (2011-11-24)   D5 .. XE      
     
Визуальные (интерфейсные) компоненты, не попавшие в другие категории
     
  Название и ссылки__________________________   Описание_________________________________   Последняя версия   Поддерживаемые версии сред   Баги :(
     ATTabs   Табы (tab control), с огромным количеством опций   2018.12   D7+, Lazarus 1.8+
     ATBinHex / Lazarus port   Просмотр файлов любого размера, в нескольких режимах, как в TotalCmd Lister   2014.05 Delphi, 2017.12 Laz   D7+, Lazarus 1.6+
     StatusBar Pro / zip   Улучшенная строка состояния (status bar)   1.76 от 18 ноября 2008   D3+
     Toolbar2000 / zip   Навороченная панель инструментов в стиле Office 2000   2.2.2 от 25 сентября 2009   D4+, BCB4+
     Virtual Treeview;   svn   Быстрый Tree View   4.8.6/5.0 (svn)   D7..DXE6, BCB4..6      
     
Не визуальные компоненты, не попавшие в другие категории
     
  Название и ссылки__________________________   Описание_________________________________   Последняя версия   Поддерживаемые версии сред   Баги :(
     TOneInstance / ZIP   При использовании этого компонента ваше приложение может быть запущено только в одном экземпляре.   1.6.1   D5—DXE2      
     
IDE-эксперты и утилиты
     
  Название и ссылки__________________________   Описание_________________________________   Последняя версия   Поддерживаемые версии сред   Баги :(
     CnPack IDE Wizards   Хороший расширитель возможностей IDE, доступен исходный код   0.9.8.603
(2011-06-06)
  D7+, BCB 5+
     Lazy Delphi Builder   инструмент для создания билдов для Delphi. Позволяет быстро переустановить в IDE компоненты из исходников   1.10.9.269
(2014-03-15)
  D5 - XE6
     Delphi Setting Manager   Полезная утилита, позволяющая использовать отдельные ветки реестра Delphi для разных проектов.   1.3.3
(2014-05-07)
  D6 .. XE6      
           

Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 19:25 12-11-2009 | Исправлено: Alextpp, 21:06 26-12-2018
Ludens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kyamboj
Попытался воспроизвести твой тест. Сделал так:

Код:
 
procedure TForm1.PngBitBtn1Click(Sender: TObject);
var
  I: Integer;
begin
  for I := 0 to 4967 do PngImageList1.AddPng(PngBitBtn1.PngImage);
  PngImageList1.Clear;
end;
 

 
При этом в Project1.dpr вставлена строка

Код:
ReportMemoryLeaksOnShutdown := True;

 
Можно несколько раз нажать на PngBitBtn1 и убедиться, что утечки памяти НЕ происходит.
Правда, при увеличении числа иконок до 4968 (подобрал экспериментально) и выше всплывает ошибка Access Violation. Это тоже баг, но это все-таки не утечка памяти...

Всего записей: 1512 | Зарегистр. 16-01-2006 | Отправлено: 12:14 22-11-2011
kyamboj

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ludens
Тогда возможно это было с AddIcon ...  ( может моя ошибка была, но это я исключаю хотя уже не смогу воспроизвести всех условий  )
 
В любом случаи после D2009 уже нет смысла в PngImageList теперь он часть ImageList  
 
http://blogs.embarcadero.com/nickhodges/2008/08/13/39100
 
 

Код:
 
XE2 :
 
uses  
Vcl.Imaging.pngimage;
 
var Png: TPngImage; // TPngImage = class{$IFDEF UseDelphi}(TGraphic){$ENDIF}

Всего записей: 19 | Зарегистр. 26-10-2011 | Отправлено: 00:18 23-11-2011
Ludens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kyamboj

Цитата:
после D2009 уже нет смысла в PngImageList теперь он часть ImageList

Ты в этом уверен? Я пробовал подгружать png-иконки в ImageList — они подгружаются, но, похоже, конвертируются при этом в bmp и теряют альфа-канал. Именно поэтому, как мне казалось, сохраняется большой смысл в PngComponents.

Всего записей: 1512 | Зарегистр. 16-01-2006 | Отправлено: 17:15 23-11-2011
Arvur



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ludens

Цитата:
Я пробовал подгружать png-иконки в ImageList — они подгружаются, но, похоже, конвертируются при этом в bmp и теряют альфа-канал.  

В Delphi XE png с альфа каналом точно работают. Не забываем

Код:
ImageList.ColorDepth := cd32Bit;

Ну и на всякий случай

Код:
ImageList.DrawingStyle := dsTransparent;

Хотя это по-моему не обязательно.

Всего записей: 2111 | Зарегистр. 18-01-2002 | Отправлено: 17:26 23-11-2011
kyamboj

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Ты в этом уверен? Я пробовал подгружать png-иконки в ImageList — они подгружаются, но, похоже, конвертируются при этом в bmp и теряют альфа-канал. Именно поэтому, как мне казалось, сохраняется большой смысл в PngComponents.

 
У меня в компонент едиторе XE2 галочка есть "стиль XP (c альфа каналом)" чекаю и png c альфой
 
А если без едитора грузить с альфой то так :

Цитата:
 
uses  
 Vcl.Imaging.pngimage;
...
object ImageList1: TImageList
  ColorDepth = cd32Bit
  DrawingStyle = dsTransparent
end
...
var
 Bmp: TBitmap;  png: TPngImage;
....
           Bmp:= TBitmap.Create;
             png:= TPngImage.Create;
             png.LoadFromFile( OpenPictureDialog1.FileName );
             png.CreateAlpha;
             png.Transparent := True;
                bmp.Assign(png);
                ImageList1.AddMasked(bmp, clNone);
             png.Destroy;
           Bmp.Destroy;
...
 

 
другое дело в каком формате хранятся иконы в самом компоненте, это я хз тут проверять надо.
зы: Хоть это ни о чём не говорит но компонент едитор предлагает экспорт иконок в bmp и png.

Всего записей: 19 | Зарегистр. 26-10-2011 | Отправлено: 17:55 23-11-2011 | Исправлено: kyamboj, 17:59 23-11-2011
Ludens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
другое дело в каком формате хранятся иконы в самом компоненте

Боюсь, что все-таки в bmp. То есть png для внутреннего представления преобразуется в bmp и на экран выводится как bmp. Мне так кажется. Ну вот, хоть убей, есть такое ощущение, что png-иконки, загруженные в штатный ImageList,  выглядят как-то чуть-чуть подпорченными. Или это у меня в глазах глюки? Фиг знает. Но очень хочется, чтобы кто-нибудь уже наконец внес окончательную ясность в этот вопрос. Либо у меня оптическая иллюзия, и для иконок, изначально полученных в png-формате, нет НИКАКОЙ РАЗНИЦЫ между ImageList и PngImageList. Либо PngImageList в чем-то лучше, и использование библиотеки PngComponents все-таки иногда имеет сиысл.

Всего записей: 1512 | Зарегистр. 16-01-2006 | Отправлено: 11:02 24-11-2011
Arvur



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ludens

Цитата:
Боюсь, что все-таки в bmp. То есть png для внутреннего представления преобразуется в bmp и на экран выводится как bmp. Мне так кажется. Ну вот, хоть убей, есть такое ощущение, что png-иконки, загруженные в штатный ImageList,  выглядят как-то чуть-чуть подпорченными.

Именно так, в bmp. И там действительно есть потери при преобразовании, но насколько я понял они крайне малы. На практике разницы не ощущаю.

Всего записей: 2111 | Зарегистр. 18-01-2002 | Отправлено: 12:15 24-11-2011
Ludens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Arvur

Цитата:
Именно так, в bmp. И там действительно есть потери при преобразовании

А при использовании PngImageList из PngComponents? Там изображение тоже переводится в bmp или нет?

Всего записей: 1512 | Зарегистр. 16-01-2006 | Отправлено: 14:09 24-11-2011
Arvur



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ludens

Цитата:
А при использовании PngImageList из PngComponents? Там изображение тоже переводится в bmp или нет?

Мне кажется, там честная работа с png. Но я туда заглядывал ну очень давно.

Всего записей: 2111 | Зарегистр. 18-01-2002 | Отправлено: 14:51 24-11-2011
Ludens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Но я туда заглядывал ну очень давно.  

А я — недавно. :) Но ни хрена не понял. :(

Всего записей: 1512 | Зарегистр. 16-01-2006 | Отправлено: 18:16 24-11-2011
kyamboj

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
----

Всего записей: 19 | Зарегистр. 26-10-2011 | Отправлено: 20:47 24-11-2011 | Исправлено: kyamboj, 07:13 25-11-2011
kyamboj

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
--

Всего записей: 19 | Зарегистр. 26-10-2011 | Отправлено: 04:16 25-11-2011 | Исправлено: kyamboj, 07:13 25-11-2011
0D0A

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Давно разбирался с TPngImageList. Коротко. Про хранение: TImageList использует WinAPI ImageList_Write для записи картинок. В каком формате непонятно, точно не bmp, ico или png. Выставление ColorDepth меняет хранимые данные, так что 100% исходная информация изменяется. TImageList.Draw рисует при помощи ImageList_Draw. Наверно пытается нарисовать, то что сохранено, не учитывая параметры устройства вывода (иначе зачем было коверкать сохраняемые данные?). Вообщем контролировать в рантайме мы это не можем. В результате, для картинок с альфаканалом получаем качество от приемлемого до убогого.
TPngImageList хранит оригинальный png. Следовательно, во первых, мы сами можем контролировать в рантайме как рисовать (используя его свойство PngImages (TPngImageCollectionItems)). Потом... при загрузке, TPngImageList создает системный ImageList, конвертируя пнг в иконки PngToIconXX - это на случай если кто-то захочет рисовать напрямую через ImageList_Draw(TPngImageList.Handle). Но в 99% эта конвертация не нужна, так как TPngImageList.Draw не использует ImageList_Draw, а рисует напрямую и без косяков при помощи TPngImage.Draw. Следовательно, если не испльзуются прямые вызовы ImageList API, то копирование пнг в иконки можно вообще закоментарить. Выводы: на 99% TPngImageList ничего общего с TImageList не имеет, а хитро им прикидывается, храня оригинальный пнг и используя для рисования не ImageList API, а методы TPngImage. Короче, к чему я это... не используйте стандартный TImageList для пнг
 

Всего записей: 158 | Зарегистр. 21-09-2009 | Отправлено: 04:44 25-11-2011 | Исправлено: 0D0A, 04:45 25-11-2011
Ludens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kyamboj
0D0A
спасибо, мужики, наконец-то нарисовалось исчерпывающее разъяснение.
Из него для себя я делаю следующий вывод: поскольку лично я трепетно отношусь к мелочам, деталям и нюансам UI, то, пожалуй, продолжу использовать PngImageList из библиотеки PngComponents — тем более, появился ее мод (http://cc.embarcadero.com/Item/26127) с подержкой XE2 и небольшими усовершенствованиями интерфейса.
Как контейнер иконок, PngComponents особенно хороша в комплекте с SpTBXLib, где каким-то волшебным способом реализовано высококачественное отображение png-иконок в режиме Disabled без использования отдельных иконок, специально нарисованных для этого режима.
Кстати, 0D0A, когда-то ты подарил мне свой ребилд старых PngComponents, откуда вычищено все лишнее (то есть все, кроме TPngImageList :)). Не сделал ли ты аналогичную чистку новой версии?
 
Добавлено:
А что находится в директории C:\Program Files\Common Files\CodeGear Shared\Images\GlyFX\Icons\PNG, которая упомянута в ссылке от kyamboj (http://blogs.embarcadero.com/nickhodges/2008/08/13/39100)?
У меня такой директрории нет (возможно, это из-за использования Lite-версии XE2). Не затруднит ли того, у кого она есть, выложить сюда ее содержимое?

Всего записей: 1512 | Зарегистр. 16-01-2006 | Отправлено: 10:11 25-11-2011
Arvur



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Да... Познавательная дискуссия. Надо к PngImageList возвращаться, хотя обычный пока и не косячил.
 
kyamboj зачем посты-то потер? Конвертировать png через иконки тоже полезное решение. И пофигу, что это эксперт. Важна идея.
 
Ludens

Цитата:
каким-то волшебным способом реализовано высококачественное отображение png-иконок в режиме Disabled

Загляни в файлик PngFunctions.  Там полезные функции MakeImageGrayscale и MakeImageBlended. Вроде бы в SpTBX еще рельефность накладывается (emboss), но это не знаю чем.

Цитата:
А что находится в директории C:\Program Files\Common Files\CodeGear Shared\Images\GlyFX\Icons\

Там бесплатные для пользователей Delphi иконки от GlyFX. В Delphi XE аж два набора - XP и Aero. В bmp и png форматах. Собственно вот они:
_http://www.glyfx.com/shop/listing/xp-icon-sets/
_http://www.glyfx.com/shop/listing/vista-icon-sets/

Всего записей: 2111 | Зарегистр. 18-01-2002 | Отправлено: 12:18 25-11-2011
Ludens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Собственно вот они:

там они за деньги

Всего записей: 1512 | Зарегистр. 16-01-2006 | Отправлено: 13:33 25-11-2011
Arvur



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ludens

Цитата:
там они за деньги  

Дык это я чтобы посмотреть можно было. Если нужны - спроси в варезнике, я сейчас выложить не смогу.

Всего записей: 2111 | Зарегистр. 18-01-2002 | Отправлено: 13:40 25-11-2011
0D0A

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ludens
Я пока сижу на ХЕ, 64-битного пока ничего не надо, так что PngImageList примерно такой же. Используется только как хранилище задпных в design time картинок привязанных к свойставм Images итп. других компонентов. В рантайме его не дергаю, так что все связанное с этим убрано

Всего записей: 158 | Зарегистр. 21-09-2009 | Отправлено: 19:27 25-11-2011
kyamboj

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Меня не слушайте, я какую-то пургу прогнал... как стал проверять то чего понаписал так понял что ничего не понимаю ... в дурку пора лечится от привычки сначала писать потом проверять
 
Целый день возился так и не понял почему ComponentEditor от CnPack-а умеет засовывать в обычный ImageList иконы с качеством как у TPngImageList ...  
В ручную все иконы засовываютcя в ImageList но почему-то они более тёмные чем если это делать через Editor Cnpack-a, кто знает почему ?
 
 
XE2 Глифы лежат в C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\Images\GlyFX\glyFX.zip
но это "Embarcadero Special Edition sets" а не то чего хотелось бы.  
Если кому надо вот сцыль http://zalil.ru/32134371
 
Добавлено:

Цитата:
не используйте стандартный TImageList для пнг

 
Если только не стоит CnPack

Всего записей: 19 | Зарегистр. 26-10-2011 | Отправлено: 21:44 25-11-2011
Ludens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kyamboj

Цитата:
Если только не стоит CnPack

Ну вот... Только появилась, казалось бы, ясность, как ты пришел и все испортил... Опять, что ли, мучиться сомнениями? :)

Всего записей: 1512 | Зарегистр. 16-01-2006 | Отправлено: 22:17 25-11-2011
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Компоненты и утилиты для Delphi/BCB/FreePascal/Lazarus


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru