Текущий архив: 2006.11.12;
Скачать: CL | DM;
ВнизДобрый день , помогите советом, стоит задача выбора цвета Найти похожие ветки
← →
JTAG (2006-10-26 19:06) [0]как в графическом редакторе есть квадратное поле в котором присутствуют все цвета и оттенки радуги, пользователь тыкает мышкой на нужный оттенок и я должен получить три составляющие RGB этого оттенка.
1).Вопрос первый как получить этот квадрат с палитрой?
2). Как организовать выбор цвета при помощи мышки?
Определить цвет формы я понял как
i:=Form1.Canvas.Pixels[x,y];
R:=i mod 256;
G:=(i div 256) mod 256;
B:=i div 65536;
Но не совсем понятно как определять координаты мышки когда пользователь жмет на палитру
← →
Ketmar © (2006-10-26 19:14) [1]1) нарисовать, наверное?
2) OnMouseDown, F1.
← →
Ketmar © (2006-10-26 19:16) [2]и ещё: представь, что у пользователя режим "256 colors". если не 16. что тогда вернёт Pixels[]? да и в режимах "true color/high color" значения будут отличаться. надо не "читать пикселы" (тем более, что эта часть формы запросто может быть чем-то перекрыта), а вычислять цвет на основе координат.
← →
JTAG (2006-10-26 19:33) [3]Вот в этом и сложность, не совсем пойму как это сделать . Скажем нарисовал я палитру вот код ниже, правда пока палитра вся белого цвета
я могу узнать RGB каждого пиксела этой палитры вот таким образом
--Объявил переменные ----
var pixelcolor:TColor;
var bitmap:TBitmap;
---------------------------
-------- Создаю палитру (пока только она вся белого цвета)
bitmap:=TBitmap.Create;
bitmap.Width:=200;
bitmap.Height:=32;
bitmap.Canvas.Brush.Color:=clwhite;
bitmap.Canvas.FillRect(Rect(0,0,100,100));
bitmap.Canvas.MoveTo(0,0);
-----------------Могу найти RGB каждого пиксела картинки
pixelcolor:=bitmap.Canvas.Pixels[j,i];
R:=pixelcolor mod 256;
G:=(pixelcolor div 256) mod 256;
B:=pixelcolor div 65536;
Теперь самый главный вопрос как делается так чтобы пиксел у которого нужно узнать цвет выбирался пользователем при помощи мыши. И при том RGB пиксела должно выбираться только когда пользователь целкает по палитре , а не по любому месту формы.
← →
Ketmar © (2006-10-26 19:38) [4]уффф... вам бы, барин, книги почитать.
хинт: TImage, OnMouseDown(). кладёшь на форму компонентик Image(). туда загружаешь (или рисуешь, это не важно) картинку-палитру. назначаешь обработчик. в OnMouseDown() тебе дадут координаты на этой картинке. ы?
← →
DrPass © (2006-10-26 19:40) [5]А я бы лучше почитал доку, как вызвать аналогичный стандартный виндовый диалог...
← →
Ketmar © (2006-10-26 19:43) [6]>[5] DrPass(c) 26-Oct-2006, 19:40
>А я бы лучше почитал доку, как вызвать аналогичный
>стандартный виндовый диалог...
может, человеку надо именно на форме выборку иметь, а не диалогом?
← →
JTAG (2006-10-26 19:46) [7]Выборку нужно именно на форме про стандартный диалог я знаю.
← →
JTAG (2006-10-26 19:48) [8]Спасибо Ketmar вроде теперь стало яснее!
Страницы: 1 вся ветка
Текущий архив: 2006.11.12;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.044 c