Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.28;
Скачать: CL | DM;

Вниз

как создать свой цвет   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.031 c
2-1146935465
Golik
2006-05-06 21:11
2006.05.28
Data


15-1146673902
Мефисто
2006-05-03 20:31
2006.05.28
http://www.wotsit.org/ перестал грузится в Opera 8.51


2-1147541363
kilonet
2006-05-13 21:29
2006.05.28
Помогите с построением дерева (TTreeView)


15-1146765878
Strate
2006-05-04 22:04
2006.05.28
Ошибка при запуске "Локальная политка безрпасности"


15-1146726507
Серебров Евгений Леонидович
2006-05-04 11:08
2006.05.28
Delphi 7