Форум: "Начинающим";
Текущий архив: 2006.05.28;
Скачать: [xml.tar.bz2];
Внизкак создать свой цвет Найти похожие ветки
← →
BAngel (2006-05-10 21:09) [0]Здраствуйте мастера делфи. Это снова я. Вчера вы мне посоветовали создать свой цвет. Но я чуть чуть забыл как это делать. Напомните мне пожалуйста как в colorbox создать свой цвет
← →
DevilDevil © (2006-05-10 21:15) [1]незнаю как в ColorBox, но знаю, что можно по 3м составляющим: красный, зелёный, синий.
function RGB(r, g, b : byte) : TColor;
А ещё из переменной-цвета можно извлечь эти составляющие используя GetRValue, GetGValue и GetBValue
← →
antonn © (2006-05-10 21:18) [2]colorbox.selected:=rgb(10,20,30);
← →
BAngel (2006-05-10 21:19) [3]
> DevilDevil © (10.05.06 21:15) [1]
Спасибо!!! Возможно мне это понадобится. Но мне надо свой цвет в colorbox-е
← →
BAngel (2006-05-10 21:21) [4]
> colorbox.selected:=rgb(10,20,30);
Это тоже не то. Мне нужно создать свой цвет. С названием и всё такое
← →
BAngel (2006-05-10 21:21) [5]
> colorbox.selected:=rgb(10,20,30);
Это тоже не то. Мне нужно создать свой цвет. С названием и всё такое
← →
antonn © (2006-05-10 21:25) [6]BAngel (10.05.06 21:21) [4]
С названием и всё такое
а название заранее в константах записано, и в колорбоксе будет отображаться как Custom(если не совпадет с существующим)
← →
BAngel (2006-05-10 21:28) [7]
> а название заранее в константах записано, и в колорбоксе
> будет отображаться как Custom(если не совпадет с существующим)
>
У меня когда то так и получилось. А етперь не получается. Мне вчера здесь посоветовали создавать свой цвет
← →
Мефисто (2006-05-10 21:28) [8]BAngel
Кстати на будующее. На титульной странице форума болтается такая штука, как поиск. Если в окно поиска записать BAngel и нажать кнопочку найти...
В Style cbCustomColor := true;
← →
BAngel (2006-05-10 21:30) [9]
> В Style cbCustomColor := true;
Да
← →
Мефисто (2006-05-10 21:34) [10]TColorBox.Selected := RGB(Random(255), Random(255), Random(255));
TColorBox.Repaint;
← →
Мефисто (2006-05-10 21:36) [11]BAngel (10.05.06 21:30) [9]
А вот название сам придумывай. Для каждой градации отенка цвета отдельно :)))
Как думаешь, сколько тебе констант надо будет придумать ;)
← →
BAngel (2006-05-10 21:38) [12]
> TColorBox.Repaint;
Это что?
← →
Мефисто (2006-05-10 21:39) [13]BAngel (10.05.06 21:38) [12]
Не хочешь, не ешь... :)
← →
BAngel (2006-05-10 21:41) [14]В общем у меня цвет из картинки в colorbox передаётся по рахитному. Мне вчера посоветовали создавать этот цвет colorbox-е
← →
Мефисто (2006-05-10 21:49) [15]BAngel (10.05.06 21:41) [14]
Собственно, в чем проблема то??? Все ведь уже разжевали.
← →
Gydvin © (2006-05-10 21:52) [16]может так
colorbox1.Items.AddObject("clred",Pointer(clred));
← →
BAngel (2006-05-10 21:55) [17]
> Собственно, в чем проблема то??? Все ведь уже разжевали.
Разжевали то разжевали. Но я не пойму как всё таки свой цвет создать.
> TColorBox.Repaint;
Этой командой штоли. Но где тогда указывается название этого цвета. Ведь если создаётся какоё нибудь цвет он должен как то называться
← →
BAngel (2006-05-10 22:01) [18]
> Pointer(clred)
какой тип здесь указываеться? ТColor?
← →
Мефисто (2006-05-10 22:06) [19]Gydvin © (10.05.06 21:52) [16]
Может и так.
Но судя по:
>> В общем у меня цвет из картинки в colorbox передаётся по рахитному.
Незнаю, как автор цвет будет обзывать (пожет и по RGB разложит и будет называть темно синий, немного зеленый с примесью красного :) ) и до скольких пунктов потом выростет писок комбобокса?
Немогу понять: BAngel (10.05.06 21:55) [17]
Чем не устраивает надпись в комбобоксе "Custom..." с текущим цветом в квадратике слева? Какоето причудливое изобретение велосипеда.
← →
BAngel (2006-05-10 22:10) [20]
> Чем не устраивает надпись в комбобоксе "Custom..." с текущим
> цветом в квадратике слева? Какоето причудливое изобретение
> велосипеда.
Повторяю. У меня там вообще фигню какуюто выбдаёт. Там всегда один и тот же цвет выдаёт
← →
Мефисто (2006-05-10 22:16) [21]Мефисто (10.05.06 21:34) [10]
Назначил цвет, и сразу перерисовать компонент нужно: TColorBox.Repaint;
Так понятней?
procedure TForm1.Button2Click(Sender: TObject);
begin
// Присваиваешь свой цвет
ColorBox1.Selected := RGB(Random(255), Random(255), Random(255));
// Перерисовываем солорбокс
ColorBox1.Repaint;
end;
← →
Мефисто (2006-05-10 22:18) [22]Привиди вообще полный код своего творения. Может ты просто и цвет все время один и тотже назначаешь, а колор бокс и не причем вовсе
← →
BAngel (2006-05-10 22:18) [23]
> Мефисто (10.05.06 22:16) [21]
О!!!!Кажись въехал. Щас попробую
← →
Gydvin © (2006-05-10 22:23) [24]Пожалуста, ну совсем ничего сложного, даже не интересно
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
a:integer;
c:tcolor;
begin
c:=image1.Canvas.Pixels[x,y];
for a:=0 to colorbox1.Items.Count-1 do begin
if colorbox1.Colors[a]=c then begin
colorbox1.ItemIndex:=a;
exit;
end;
end ;
colorbox1.Items.AddObject(colortostring(c),Pointer(c));
colorbox1.ItemIndex:=colorbox1.Items.Count-1;
end;
← →
BAngel (2006-05-10 22:23) [25]
> Привиди вообще полный код своего творения. Может ты просто
> и цвет все время один и тотже назначаешь, а колор бокс и
> не причем вовсе
procedure T_1.ImageMouseDown(Sender:TObject;mb: TMouseButton;Shift: TShiftState;
X, Y: Integer);
begin
if pipetka.Down then case mb of
mbLeft:colorbox1.Selected:=Image.Canvas.Pixels[x,y];
mbRight:colorbox2.Selected:=Image.Canvas.Pixels[x,y];
end;
end;
Вобщем вот так я хотел сделать.
← →
Gydvin © (2006-05-10 22:26) [26]
> Мефисто (10.05.06 22:16) [21]
Этот код не изменяет цвет, а пытается выбрать из уже существующих
← →
BAngel (2006-05-10 22:28) [27]
> Этот код не изменяет цвет, а пытается выбрать из уже существующих
Да я знаю. Это было по поводу Кустома
← →
Мефисто (2006-05-10 22:31) [28]procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure ComboColor(CB: TColorBox; const AColor: TColor);
begin
if CB.Selected <> AColor then
begin
CB.Selected := AColor;
CB.Repaint;
end;
end;
begin
case Button of
mbLeft: ComboColor(ColorBox1, Image1.Picture.Bitmap.Canvas.Pixels[X, Y]);
mbRight: ComboColor(ColorBox2, Image1.Picture.Bitmap.Canvas.Pixels[X, Y]);
end;
end;
← →
Мефисто (2006-05-10 22:36) [29]Gydvin © (10.05.06 22:26) [26]
Не понял я тебя?
Ничего он там выбирать/подбирать из существующих и не собирается. Если значение цвета совпало с системной константой, то будет выведено ее имя, а иначе будет выведено custom...
← →
Gydvin © (2006-05-10 22:45) [30]а как же
> Вчера вы мне посоветовали создать свой цвет. Но я чуть чуть
> забыл как это делать.
← →
BAngel (2006-05-10 22:48) [31]
> Мефисто (10.05.06 22:31) [28]
Хорошо. Цвет уже меняется, но не правильно. Всё в коричневых тонах
← →
Gydvin © (2006-05-10 22:51) [32]
> Хорошо. Цвет уже меняется, но не правильно. Всё в коричневых
> тонах
А ты случайно картинку грузишь не больше размера имаже, если да то сделай
autosize:=true;
← →
BAngel (2006-05-10 22:54) [33]
> А ты случайно картинку грузишь не больше размера имаже,
> если да то сделай
>
> autosize:=true;
>
Сто пудов. Уже работает, только мне нужно чтобы картинка в канву влезала. Можно ли это как то сделать?
← →
Gydvin © (2006-05-10 22:58) [34]в канву image ?
image1.autosize:=true;
а сам компонент брось на tscrollbox
← →
Gydvin © (2006-05-10 23:01) [35]либо грузи в отдельный битмап и на имаже отрисовывай уменьшенный вариант, а координаты просчитывай в пропорции к размерам имаже и битмапа
← →
BAngel (2006-05-10 23:03) [36]
> Gydvin © (10.05.06 23:01) [35]
Огромное спасибо!!!!!!!!! Но у меня до завтра по-любому ещё вопросы будут. Так что до завтра
← →
Мефисто (2006-05-10 23:06) [37]Gydvin © (10.05.06 22:51) [32]
Обратите внимание коллега :)
Подозрительный обработчик для имиджа, дельфя так не генерит ( mb: TMouseButton )
procedure T_1.ImageMouseDown(Sender:TObject;mb: TMouseButton;Shift: TShiftState;
X, Y: Integer);
BAngel (10.05.06 22:48) [31]
Выражаемся яснее. Тут 2 варианта, либо цвет меняется, либо все в коричневых тонах...
← →
Мефисто (2006-05-10 23:10) [38]Gydvin © (10.05.06 22:58) [34]
Gydvin © (10.05.06 23:01) [35]
TImage.Stretch := True :)
И понадеямся, что наконец-то у автора все проблемы решены ;)
← →
Gydvin © (2006-05-11 07:57) [39]
> Мефисто (10.05.06 23:10) [38]
э нет так не пролезит :)) сам когда то блуждал в этих местах, когда картинка больше размера компонента, то координаты пикселей картинки неравны координатам курсора на клиентской области компонента. И все это разруливается состовлением пропорции или [35], Stretch он растягивает только отображаемое изображение по компоненту, а размер канвы остается то же :))
> Обратите внимание коллега :)
> Подозрительный обработчик для имиджа, дельфя так не генерит
> ( mb: TMouseButton )
что-то не въехал о чем вы.
>
> BAngel ©
если пойти по [35] то можно реаллизовать маштаб ))))
← →
antonn © (2006-05-11 09:31) [40]Мефисто (10.05.06 23:10) [38]
TImage.Stretch := True :)
а координаты клика корректно определятся?
Страницы: 1 2 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.05.28;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.01 c