Мой подход. Ядро - Движок. - страница 100

 
Vasiliy Sokolov:

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

Проблема в том, что ячейка может передавать любое значение. На то, она и ячейка.

Вот чекбокс или кнопки, - нет. Там все проще. А поля ввода и ячейки таблиц, - любые данные.

И получается, что лучше строк ничего не придумашь в этом случае...(((


Определиться сложно. Значит, нужно усложнить язык разметки. Для каждого типа ячейки - свой элемент. А смысл?

Либо вообще отказаться от передачи текстов. Тогда все через юнион. Быстро и профессионально. 

Но, сам понимаешь, это плохой вывод....

 

И так, возможности пользовательской анимации внутри окон движка расширяются. Пока удалось достичь этого уровня:

 
 

Cледующие задачи:

  1. Добится регуляции прозрачности форм со стороны пользователя.
  2. Релизовать передачу массива значений в движок, на основе которых будет рисоваться кривая линия в масштабах польз.графика. Фактически, это станет подобием CGrafic.  

Cоздание и управление рисованием форм очень легкое:

  1. Конструктор создает функции обертки для загрузки нужных канвасов.
  2. 14 простых названий рисующих функций.
  3. Простые параметры функций - X, Y, W, H, COLOR.
  4. В конце нужно вызвать перерисовку канваса.

Пример:

      LOAD_CANVAS_Last_10_bars();
      //---------------------------
      CIRCLE(q1,q2,q3,clrGreen);  
      TRIANGLE(q1,q1,q1 + 100,q1 + 10,q1 + 50,q1 + 200,clrRed);  
      ELLIPSE(q1,q1,q1 + q1*2,q1 +  q1,clrBlue);  
      FILLED_CIRCLE(q1,20,20,clrBlue); 
      TRIANGLE(q1 + 10,q1,q1 + 10,q1 + 100,q1 + 50,q1 + 200,clrAqua);  
      ELLIPSE(q1 + 50,q1,q1 + q1*2,q1 * q1-30,clrBlack);  
      ELLIPSE(q1 + 52,q1,q1 + q1*3,q1 * q1-32,clrMagenta); 
      ELLIPSE(q1 + 54,q1,q1 + q1*4,q1 * q1-34,clrOrange); 
      FILLED_CIRCLE(q1 + 70,q1+20,20,clrDarkCyan);        
      FILLED_CIRCLE(q3,q2,40,clrGreen); 
      REC(q1,q1,q1*2,q1*2,clrBlue);
      REC(50,50,q1*2,20,clrBlue);
      FILLED_REC(50,70,q1*2,20,clrBlue);
      FILLED_REC(50,95,q1*2,20,clrGreenYellow);
      FILLED_REC(50,120,q1*2,20,clrAntiqueWhite);
      FILLED_REC(50,145,q1*2,20,clrAzure);
      FILLED_REC(50,170,q1*2,20,clrBisque);
      FILLED_REC(50,195,q1*2,20,clrMediumBlue); 
      FILLED_REC(50,20,20,q1*2,clrBlue);
      FILLED_REC(75,20,20,q1*2 + 10,clrGreenYellow);
      FILLED_REC(100,20,20,q1*2 - 4,clrAntiqueWhite);
      FILLED_REC(125,20,20,q1*2 + 3,clrAzure);
      FILLED_REC(150,20,20,q1*2 + 18,clrBisque);
      FILLED_REC(175,20,20,q1*2 - 30,clrMediumBlue);
      //------------------------------------
      REDRAW_CANVAS();
 

Как то, так.... 



 

Вы бы лучше психологией трейдинга занялись, или взяли у меня пару уроков, а не графикой уровня 50-х тут позорились. Отвратительно выглядит, таким пытать можно, если привязать и зафиксировать зенки.


 
Vasily Perepelkin:

Вы бы лучше психологией трейдинга занялись, или взяли у меня пару уроков, а не графикой уровня 50-х тут позорились. Отвратительно выглядит, таким пытать можно, если привязать и зафиксировать зенки.


Тогда тебе предстоит еще помучится.))

ЗЫ. Кстати, кто из вас двоих на фото Vasily Perepelkin:?
 
Реter Konow:

Как то, так.... 

Вот код анимации.

     LOAD_CANVAS_Main_form_1();
      //---------------------------
      CIRCLE(q2,q1,q2,clrBurlyWood); 
      CIRCLE(q2 + r,q1 + r,q2 + r,clrBurlyWood);
      CIRCLE(q2 + r,q1 + r,q2 + r + r,clrBurlyWood); 
      TRIANGLE(q2,q2,q2 + 100,q2 + 10,q2 + 50,q2 + 200,clrRed);  
      ELLIPSE(q1,q1,q1 + q1*2,q1 +  q1,clrBlue);  
      FILLED_CIRCLE(q2,20,20,clrBlue); 
      CIRCLE(q2,20,r + 20,C'25,25,25');
      CIRCLE(q2,20,r + 10,C'25,25,25');
      CIRCLE(q2,20,r + 3,C'25,25,25');
      TRIANGLE(q2 + 10,q1,q1 + 10,q1 + 100,q1 + 50,q1 + 200,C'125,225,125');  
      ELLIPSE(q2 + 50,q1,q1 + q1*2,q1 * q1-30,clrBlack);  
      ELLIPSE(q2 + 52,q1,q1 + q1*3,q1 * q1-32,clrMagenta); 
      ELLIPSE(q2 + 54,q1,q1 + q1*4,q1 * q1-34,clrOrange); 
      FILLED_CIRCLE(q1 + 70,q1+20,20,clrDarkCyan);        
      FILLED_CIRCLE(q3,q2,40,clrYellow);
      CIRCLE(q3,q2,r,C'25,125,125'); 
      CIRCLE(q3,q2,r + 10,C'25,125,125');
      CIRCLE(q3,q2,r + 20,C'25,125,125');
      CIRCLE(q3,q2,r + 30,C'25,125,125');
      CIRCLE(q3,q2,r + 40,C'25,125,125');
      REC(q1 + r,q1 + r,q1*2 + r,q1*2 + r,clrBlue);
      REC(50 + r,50 + r,q1*2,20 + r,clrBlue);
      for(int t1 = 0; t1 < 30; t1+= 2)
         {
          REC(q2 + t1,q2 + t1,q2*2 + t1,q2*2 + t1,clrBlue);
          CIRCLE(q2 + t1,q2 + t1,q3 + t1,clrBlue); 
          ELLIPSE(q2 + t1,q1 + t1,q1 + q2*2 + t1,q1 +  q1 + t1,clrBlue);
          TRIANGLE(q2 + 10 + t1 + r,q1 + t1,q1 + 10 + t1,q1 + 100 + t1,q1 + 50 + t1,q1 + 200 + t1,clrBlue); 
          ELLIPSE(q2 + 50 + t1 + r,q1 + t1,q2 + q1*2 + t1,q2 * q1-30 + t1,clrBlack);  
          ELLIPSE(q2 + 52 + t1 + r,q1 + t1,q2 + q1*3 + t1,q2 * q1-32 + t1,clrMagenta); 
          ELLIPSE(q2 + 54 + t1 + r,q1 + t1,q1 + q1*4 + t1,q1 * q1-34 + t1,clrOrange); 
          if(t1 > 10 && t1 < 20)
            {
             CIRCLE(q2 + t1,q2 + t1,q3 + t1 + 20,C'185,0,0'); 
             CIRCLE(q2 + t1 + 1,q2 + t1 + 1,q3 + t1 + 21,C'210,0,0');
             CIRCLE(q2 + t1 + 1,q2 + t1 + 2,q3 + t1 + 22,C'235,0,0');
             CIRCLE(q2 + t1 + 1,q2 + t1 + 3,q3 + t1 + 23,C'255,0,0');
            }         
         }
      //-----------------------------------------------------------------------
      REDRAW_CANVAS();


В принципе, очень коротко. С помощью циклов, можно создавать трех-мерные фигуры. Конечно, это только начало 3d технологии, и в дальнейшем, все будет развиваться.

Однако, если это будет развиваться такими темпами.... ))

Следующая задача, - рисование сразу на нескольких канвасах.

 
Vasily Perepelkin:

Вы бы лучше психологией трейдинга занялись, или взяли у меня пару уроков, а не графикой уровня 50-х тут позорились. Отвратительно выглядит, таким пытать можно, если привязать и зафиксировать зенки.


http://www.selfcreation.ru/zhizn/kto-umeet-tot-delaet-kto-ne-umeet-tot-uchit.html

почитайте на досуге

 
Александр:


Про Вашу панель не забыл. Реализую полноценную связь между панелью на обычном графике и советником в тестере. Задача, мягко говоря, не из простых...)

(Также, нужно доделать динамичный список, для таблицы открытых ордеров). 

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