Diskussion zum Artikel "Grafische Interfaces XI: Integration der graphischen Standardbibliothek (build 16)" - Seite 4

 

Ich habe eine Zeile in der Bibliothek hinzugefügt und es hat funktioniert! Juhu, Kumpels!

Was ich hinzugefügt habe, ist gelb hervorgehoben. Wo ich es hinzugefügt habe:

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:

Ich habe die Zellen-Schaltflächen, aber es gab keine Aufgabe, um das Bild zu ändern....

Bei der Methode Update() ist die Standardeinstellung für das erneute Zeichnen auf false gesetzt. Wenn Sie das Bild neu zeichnen möchten, müssen Sie Update(true) verwenden.


Es ist also klar!

Ich bin immer für die Wahrheit, wenn ich fasle, kann ich sie sofort riechen :)

 

Wie kann man die Elemente einer Combobox ändern, nachdem sie erstellt wurde?

 

Ich habe ein solches Problem, wenn ich ein Combobox-Element auswählen, jedes Element auf CheckBoxList ist nicht angeklickt.

 
CE 2 10:53:44.305 BreakEvenPending (CADJPY,M15) Nullteilung in 'Kurve.mqh' (693,9)
 
Geben Sie kurze Beispiele an, um das Problem zu reproduzieren, wenn Sie Hilfe benötigen.
 

Hallo Otto,

hat sich der Programmierer inzwischen dazu geäußert bzw. die Fehler korrigiert.

Das Dilemma beginnt bereits mit dem 1. Kapitel des Grafischen Interfaces I.

Das ist alles sehr schade, da sich der Programmierer mit den vielen Artikeln hier eine Menge Arbeit gemacht hat.

Nur wenn permant der Compiler Fehlermeldungen auswirft, dann verliert man schnell die Lust das nachzuproggen

und der Lerneffekt ist dann natürlich auch nicht gegeben.


VG


Steffen

 

Ich würde nur die letzte Version verwenden.

Eine Übersicht ist hier: https://www.mql5.com/en/code/19703

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

Ich hab das Thema auch aufgegeben.

Kenne das was Otto bemängelt.

Ich habe es aber fast immer wieder hinbekommen.Viel umprogrammiert aber danach lief es immer. Nur die Zeit geht verloren.


Der Ersteller müsste mal riesengroß BETA reinschreiben.


Denn nichts anderes ist das.

 

wie man die Beschriftung und das Icon zusammen nach rechts verschiebt:

Die Methode IconXGap(...) verschiebt das Icon separat, aber die Beschriftung habe ich nicht gefunden, wie