Платформно-независимая работа с графикой

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Аватара пользователя
shade
энтузиаст
Сообщения: 879
Зарегистрирован: 21.02.2006 19:15:48
Откуда: http://shamangrad.net/
Контактная информация:

Платформно-независимая работа с графикой

Сообщение shade »

Ну для начала простой вопрос:
Как получить из TColor отдельные компоненты, чтобы везде работало?
В WinAPI есть макросы GetRValue и т.п., а так же RGB для обратной сборки. А что использовать FPC/Lazarus (желательно чистый FPC без LCL)?

PS: модуль windows не подходит, ибо только под вынь
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

Хороший вопрос :)
Получать можно как заблагорассудится, вопрос в том, чтобы платформа умела рисовать в данном формате. В той же самой Windows в таблице цветов DIB цветовые компоненты должны идти в одном порядке, а в TPaletteEntry - строго наоборот.

В FCL есть компонент TFPImage, претендующий на звание "платформенно-независимой графики". В нем есть свой TFPColor и чертова тонна кода, преобразующего его во все (или почти все) встречающиеся в природе форматы. Графика Lazarus построена на основе FPImage, при этом народ явно не разобрался с возможностями FPImage по доступу к памяти картинок и написал собственный TLazIntfImage, опять же преобразующий форматы... Термин "братская могила" для всего этого подходит гораздо лучше.
Аватара пользователя
shade
энтузиаст
Сообщения: 879
Зарегистрирован: 21.02.2006 19:15:48
Откуда: http://shamangrad.net/
Контактная информация:

Сообщение shade »

Классно, буду копать :wink:
SergKam
постоялец
Сообщения: 251
Зарегистрирован: 16.11.2005 20:31:11
Откуда: Украина,Харьков

Сообщение SergKam »

в приера которые с лазарусом идут смотри. все есть
dyavolenok_shef
новенький
Сообщения: 17
Зарегистрирован: 31.07.2008 10:27:47

Сообщение dyavolenok_shef »

В Делфе можно было через random задавать различные цвета компонентам все лишь написав вот так: RGB(random(256),random(256),random(256)) ...
а как тут делать это мне надо задать разный цвет в ТЧаре, чтобы столбики были разными.
ПОДСКАЖИТЕ ПЛИз
Павел Ишенин
постоялец
Сообщения: 475
Зарегистрирован: 24.03.2007 09:16:52

Сообщение Павел Ишенин »

RGB, GetRValue, GetGValue, GetBValue доступны при использовании LCLIntf. В чем проблема?
Аватара пользователя
*vmr
постоялец
Сообщения: 168
Зарегистрирован: 08.01.2007 00:46:07
Откуда: Киев
Контактная информация:

Сообщение *vmr »

Неужели чтоб собрать все цветовые компоненты воедино надо подключать целую либу????
Павел Ишенин
постоялец
Сообщения: 475
Зарегистрирован: 24.03.2007 09:16:52

Сообщение Павел Ишенин »

Что значит целую либу? LCLIntf - обычный модуль используемый в большинстве других и он точно при компиляции обычного приложения с формой будет использован.
Ответить