Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.013 c
2-1147131064
noviy
2006-05-09 03:31
2006.05.28
что предпочтителней использовать?


4-1141514317
Piter
2006-03-05 02:18
2006.05.28
Как добавить иконку во всплывающее меню?


1-1145630809
Sam Stone
2006-04-21 18:46
2006.05.28
Задача оптимального раскроя


15-1146662361
Ji
2006-05-03 17:19
2006.05.28
Найти ветку в архиве


9-1130954045
Yegorchic
2005-11-02 20:54
2006.05.28
Просмотр определённых 3D файлов в GLScene





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