Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];

Вниз

Добрый день , помогите советом, стоит задача выбора цвета   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.033 c
2-1161852427
Ingwar
2006-10-26 12:47
2006.11.12
Перекинуть данные из переменной в структуру (record)


1-1159534832
nstur
2006-09-29 17:00
2006.11.12
Как преобразовать Icon в Bitmap


15-1161493938
pkm
2006-10-22 09:12
2006.11.12
Восстановление инфы.


15-1161381231
learner
2006-10-21 01:53
2006.11.12
Надоело быть Learner, теперь буду Riply :)


4-1151394771
Lagrima_JN
2006-06-27 11:52
2006.11.12
Эмуляция "клика" на компоненте формы.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский