Discussão do artigo "Interfaces gráficas XI: Integração da Biblioteca Gráfica Padrão (build 16)" - página 4

 

Adicionei uma linha na biblioteca e funcionou! Viva, companheiros!

O que eu adicionei está destacado em amarelo. Onde eu adicionei:

void CTable::DrawImage(const int column_index,const int row_index)

  {

//--- Расчёт координат

   int x =m_columns[column_index].m_x+m_columns[column_index].m_image_x_offset;

   int y =m_rows[row_index].m_y+m_columns[column_index].m_image_y_offset;

//--- Выбранная картинка в ячейке и её размеры

   int  selected_image =m_columns[column_index].m_rows[row_index].m_selected_image;

   uint image_height   =m_columns[column_index].m_rows[row_index].m_images[selected_image].Height();

   uint image_width    =m_columns[column_index].m_rows[row_index].m_images[selected_image].Width();

//--- Рисуем

   for(uint ly=0,i=0; ly<image_height; ly++)

     {

      for(uint lx=0; lx<image_width; lx++,i++)

        {

         //--- Если нет цвета, перейти к следующему пикселю

         if(m_columns[column_index].m_rows[row_index].m_images[selected_image].Data(i)<1)

            continue;

         //--- Получаем цвет нижнего слоя (фона ячейки) и цвет указанного пикселя картинки

         uint background  =(row_index==m_selected_item)? m_selected_row_color : m_canvas.PixelGet(x+lx,y+ly);

         uint pixel_color =m_columns[column_index].m_rows[row_index].m_images[selected_image].Data(i);

         //--- Смешиваем цвета

         uint foreground=::ColorToARGB(m_clr.BlendColors(background,pixel_color));

         //--- Рисуем пиксель наслаиваемого изображения

         m_table.PixelSet(x+lx,y+ly,foreground);

        }

     }

   m_table.Update(true);

  }


 
Oleksii Chepurnyi:

Fiz os botões de células, mas não havia nenhuma tarefa para alterar a imagem....

O método Update() tem o padrão de redesenho definido como false. Com o redesenho, você precisa usar Update(true)


Então está claro!

Sou sempre a favor da verdade, pois quando eu me sinto enganado, sinto o cheiro dela imediatamente :)

 

Como alterar os itens de uma caixa de combinação depois que ela é criada?

 

Estou com um problema: quando seleciono um item da caixa de combinação, nenhum item do CheckBoxList é clicado.

 
CE 2 10:53:44.305 BreakEvenPending (CADJPY,M15) divisão zero em 'Curve.mqh' (693,9)
 
Forneça exemplos breves para reproduzir o problema se quiser ajuda.
 

Olá, Otto,

O programador comentou sobre isso nesse meio tempo ou corrigiu os erros?

O dilema começa com o primeiro capítulo de Graphical Interface I.

Isso é uma grande pena, pois o programador trabalhou muito com os vários artigos aqui.

Mas se o compilador estiver constantemente exibindo mensagens de erro, você perderá rapidamente o desejo de tentar novamente

e o efeito de aprendizado, obviamente, não é proporcionado.


VG


Steffen

 

Eu usaria apenas a versão mais recente.

Uma visão geral está aqui: https://www.mql5.com/en/code/19703

EasyAndFastGUI library for creating graphical interfaces
EasyAndFastGUI library for creating graphical interfaces
  • votos: 22
  • 2018.03.01
  • Anatoli Kazharski
  • www.mql5.com
The EasyAndFastGUI library allows creating graphical interfaces for custom MQL programs.
 

Eu também desisti do assunto.

Sei do que o Otto está reclamando.

Mas quase sempre consegui fazê-lo funcionar novamente - muita reprogramação, mas sempre funcionou depois. Apenas o tempo é perdido.


O criador deveria escrever BETA em letras grandes.


Porque é só isso que ele é.

 

como mover para a direita a inscrição e o ícone juntos:

O método IconXGap(...) move o ícone separadamente, mas a inscrição eu não encontrei como