Панели и диалоги. Можно задавать цвет, шрифт ... - страница 2

 
Nikolai Semko:

Спасибо. 

Этот код написал на одном дыхании за несколько часов.

Он черновой и чисто для того чтобы визуализировать идею. Его стыдно выкладывать и там много ляпов.

Для более качественного кода нужно потратить дни.

Так ведь здесь нет ничего сложного. Главная ценность - это сама идея. Любой, кто хоть чуть понимает Canvas, сможет написать тоже самое, только лучше.

И кстати, я нигде не нашел такого 3D выбора цвета. Надо подкинуть эту идею Adobe и Corel :)), тем более их головные офисы от меня в шаговой доступности ))).

Странно! Ведь это первое что приходит в голову: три цвета - три измерения.

Полная цветовая палитра RGB(256*256*256= 16777216) - Куб со стороной = 256.

Хотя, у меня есть идея более компактного представления полной цветовой палитры (16777216 цветов) без кликания мышки. Реализую ее обязательно в недалеком будущем.

И кстати, достаточно легко реализовать для полиграфистов выбор CMYK цвета по такой же аналогии, но уже в 4D. Но для трейдеров это лишнее.

У меня проблемы с канвой, не понимаю как там все устроено...

 
Nikolai Semko:

Спасибо. 

Этот код написал на одном дыхании за несколько часов.

Он черновой и чисто для того чтобы визуализировать идею. Его стыдно выкладывать и там много ляпов.

Для более качественного кода нужно потратить дни.

Так ведь здесь нет ничего сложного. Главная ценность - это сама идея. Любой, кто хоть чуть понимает Canvas, сможет написать тоже самое, только лучше.

И кстати, я нигде не нашел такого 3D выбора цвета. Надо подкинуть эту идею Adobe и Corel :)), тем более их головные офисы от меня в шаговой доступности ))).

Странно! Ведь это первое что приходит в голову: три цвета - три измерения.

Полная цветовая палитра RGB(256*256*256= 16777216) - Куб со стороной = 256.

Хотя, у меня есть идея более компактного представления полной цветовой палитры (16777216 цветов) без кликания мышки. Реализую ее обязательно в недалеком будущем.

И кстати, достаточно легко реализовать для полиграфистов выбор CMYK цвета по такой же аналогии, но уже в 4D. Но для трейдеров это лишнее.

Простые вещи на первый взгляд, оказываются гениальными! 3 цвета и 3 измерения это просто, но гениально.
 
Vladimir Pastushak:

У меня проблемы с канвой, не понимаю как там все устроено...

Канвас это очень просто.

Вот что может быть не ясно в этом скрипте?:

#include <Canvas\Canvas.mqh>  // подключаем класс CCanvas

void OnStart()
  {
   ChartSetInteger(0,CHART_FOREGROUND,true); // Ценовой график на переднем плане 
   CCanvas C;                                // Создаем переменную класса CCanvas
   if(!C.CreateBitmapLabel(0,0,"CanvasExamlple",200,200,256,256,COLOR_FORMAT_XRGB_NOALPHA)) // создаем квадратный холст со стороной 256 и левым верхним углом в координате (200, 200) 
      Print("Error creating canvas: ",GetLastError());
   uchar R=0,G=0,B=0;                        // цвета RGB (красный, зеленый, синий) каждый цвет принимает значение от 0 до 255 (0....0xFF в 16-чной системе счисления)
   while(!IsStopped())                       // цикл по R
     {
      do                                     // цикл по G
        {
         do                                  // цикл по B
           {
            C.PixelSet(G,B,XRGB(R,G,B));     // ставим точку с координатами (G,B) и цветом RGB
            B++;
           }
         while(B>0); 
         G++; 
        }
      while(G>0);
      C.Update();                            // выводим законченный квадрат на экран
      R++;
     }
   C.Destroy();                              // кирдык
  }

Скрипт перебирает всю цветовую палитру по кругу.

Работа скрипта:


 
input string   font_name                  = "Trebuchet MS";

#define CONTROLS_FONT_NAME                font_name

И это работает при изменении значения через окно входных параметров??

 
Nikolai Semko:

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

Ну, и ex-файл приложите, чтобы пощупать )

 
Andrey Khatimlianskii:

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

Ну, и ex-файл приложите, чтобы пощупать )

Так ведь эффект 3D пропадет.


Управляющие клавиши:

1 - EMA

2 - LWMA

3 - SMMA

4 - SMA

G - Grid - убрать (включить сетку)

W - толщина линии ( мышь влево-вправо)

Ctrl - меняем период (мышь влево-вправо)

Shift - меняем сдвиг графика

0 (ноль) - сдвиг в ноль

для фиксации результата кликаем мышкой или нажимаем любую клавижу (например пробел)


C(Color) - Меняем цвет. Для фиксации цвета кликнуть левой клавишей мышки.

Управление блоком 3D палитры:

S(Size) - изменение размера 3D палитры  (мышь вверх-вниз)

M(move)- изменение положения

Файлы:
MA_Glamour.ex5  62 kb
 
Nikolai Semko:

Так ведь эффект 3D пропадет.

Не пропадет, просто параллелепипед будет направлен прямо вперед. Попробуйте.

 
Andrey Khatimlianskii:

Не пропадет, просто параллелепипед будет направлен прямо вперед. Попробуйте.

Да можно конечно.

Просто каркас куба градиентный тоже и часть информативных линий каркаса спрячется.

Или Вы имеете ввиду сделать с перспективой, чтоб размер квадрата уменьшался при удалении?

 
Nikolai Semko:

Да можно конечно.

Просто каркас куба градиентный тоже и часть информативных линий каркаса спрячется.

Или Вы имеете ввиду сделать с перспективой, чтоб размер квадрата уменьшался при удалении?

С перспективой - это круто, можно попробовать.

Для юзабельности колор-пикера, как по мне, квадрат должен двигаться при зажатой кнопке мыши. Да и вообще можно при зажатой кнопке полностью выбрать цвет и просто отпустить кнопку, подтвердив выбор.

 
Andrey Khatimlianskii:

С перспективой - это круто, можно попробовать.

Для юзабельности колор-пикера, как по мне, квадрат должен двигаться при зажатой кнопке мыши. Да и вообще можно при зажатой кнопке полностью выбрать цвет и просто отпустить кнопку, подтвердив выбор.

Да можно как угодно. Фишка то в идее, а не в реализации.

Да и управление клавишами это не юзабельно. Это я сделал просто для примера.

Причина обращения: