Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

как создать свой цвет


Страницы:   1 2 3

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]

Привиди вообще полный код своего творения. Может ты просто и цвет все время один и тотже назначаешь, а колор бокс и не причем вовсе


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо