![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как создать свой цвет
BAngel © (2006-05-10 21:09:00)Здраствуйте мастера делфи. Это снова я. Вчера вы мне посоветовали создать свой цвет. Но я чуть чуть забыл как это делать. Напомните мне пожалуйста как в colorbox создать свой цвет
Мефисто (2006-05-11 14:57:00) [1]Gydvin © (11.05.06 07:57) [39]
antonn © (11.05.06 09:31) [40]
Да уж, незнал о таком ньюансе... Лажанулся :(
antonn (2006-05-11 09:31:00) [2]Мефисто (10.05.06 23:10) [38]
TImage.Stretch := True :)
а координаты клика корректно определятся?
Gydvin (2006-05-11 07:57:00) [3]
> Мефисто (10.05.06 23:10) [38]
э нет так не пролезит :)) сам когда то блуждал в этих местах, когда картинка больше размера компонента, то координаты пикселей картинки неравны координатам курсора на клиентской области компонента. И все это разруливается состовлением пропорции или [35], Stretch он растягивает только отображаемое изображение по компоненту, а размер канвы остается то же :))
> Обратите внимание коллега :)
> Подозрительный обработчик для имиджа, дельфя так не генерит
> ( mb: TMouseButton )
что-то не въехал о чем вы.
>
> BAngel ©
если пойти по [35] то можно реаллизовать маштаб ))))
Мефисто (2006-05-10 23:10:00) [4]Gydvin © (10.05.06 22:58) [34]
Gydvin © (10.05.06 23:01) [35]
TImage.Stretch := True :)
И понадеямся, что наконец-то у автора все проблемы решены ;)
Мефисто (2006-05-10 23:06:00) [5]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 варианта, либо цвет меняется, либо все в коричневых тонах...
BAngel (2006-05-10 23:03:00) [6]
> Gydvin © (10.05.06 23:01) [35]
Огромное спасибо!!!!!!!!! Но у меня до завтра по-любому ещё вопросы будут. Так что до завтра
Gydvin (2006-05-10 23:01:00) [7]либо грузи в отдельный битмап и на имаже отрисовывай уменьшенный вариант, а координаты просчитывай в пропорции к размерам имаже и битмапа
Gydvin (2006-05-10 22:58:00) [8]в канву image ?
image1.autosize:=true;
а сам компонент брось на tscrollbox
BAngel (2006-05-10 22:54:00) [9]
> А ты случайно картинку грузишь не больше размера имаже,
> если да то сделай
>
> autosize:=true;
>
Сто пудов. Уже работает, только мне нужно чтобы картинка в канву влезала. Можно ли это как то сделать?
Gydvin (2006-05-10 22:51:00) [10]
> Хорошо. Цвет уже меняется, но не правильно. Всё в коричневых
> тонах
А ты случайно картинку грузишь не больше размера имаже, если да то сделай
autosize:=true;
BAngel (2006-05-10 22:48:00) [11]
> Мефисто (10.05.06 22:31) [28]
Хорошо. Цвет уже меняется, но не правильно. Всё в коричневых тонах
Gydvin (2006-05-10 22:45:00) [12]а как же
> Вчера вы мне посоветовали создать свой цвет. Но я чуть чуть
> забыл как это делать.
Мефисто (2006-05-10 22:36:00) [13]Gydvin © (10.05.06 22:26) [26]
Не понял я тебя?
Ничего он там выбирать/подбирать из существующих и не собирается. Если значение цвета совпало с системной константой, то будет выведено ее имя, а иначе будет выведено custom...
Мефисто (2006-05-10 22:31:00) [14]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;
BAngel (2006-05-10 22:28:00) [15]
> Этот код не изменяет цвет, а пытается выбрать из уже существующих
Да я знаю. Это было по поводу Кустома
Gydvin (2006-05-10 22:26:00) [16]
> Мефисто (10.05.06 22:16) [21]
Этот код не изменяет цвет, а пытается выбрать из уже существующих
BAngel (2006-05-10 22:23:00) [17]
> Привиди вообще полный код своего творения. Может ты просто
> и цвет все время один и тотже назначаешь, а колор бокс и
> не причем вовсе
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:23:00) [18]Пожалуста, ну совсем ничего сложного, даже не интересно
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:18:00) [19]
> Мефисто (10.05.06 22:16) [21]
О!!!!Кажись въехал. Щас попробую
Мефисто (2006-05-10 22:18:00) [20]Привиди вообще полный код своего творения. Может ты просто и цвет все время один и тотже назначаешь, а колор бокс и не причем вовсе