Bibliotheken: Die Bibliothek EasyAndFastGUI zum Erstellen von grafischen Interfaces - Seite 19

 
Wenn ich CTreeView für MQL5 mit ShowItemContent(false) verwende, gibt es einen Stoppfehler: array out of range in 'TreeView.mqh' (1725,22). Dies ist in der Funktion "void CTreeView::UpdateContentList(void)". Wenn ShowItemContent(false), wird der Inhalt des Elements nicht während der Initialisierung erstellt, sondern m_content_items[li].Update(true) wird verwendet Update(true) wird verwendet, ohne das Flag m_show_item_content zu prüfen. Dann habe ich den Code der Funktion "void CTreeView::UpdateContentList(void)" wie folgt geändert.
//+------------------------------------------------------------------+
//| Обновляет список содержания |Продукция
//+------------------------------------------------------------------+
void CTreeView::UpdateContentList(void)
  {
//--- Beenden, wenn (1) der Inhalt nicht angezeigt werden muss oder (2) der Etikettenmodus aktiviert ist.
   if(!m_show_item_content || m_tab_items_mode)
      return;
//---
   int items_total=::ArraySize(m_cd_list_index);
   for(int i=0; i<items_total; i++)
     {
      //--- Получим общий индекс пункта в списке
      int li=m_cd_list_index[i];
      //--- Обновим
      m_content_items[li].Update(true);
     }
  }


Dann habe ich den Code der Funktion "void CTreeView::UpdateContentList(void)" wie folgt geändert: Liege ich richtig? Und können Sie es bitte bestätigen?
 
Wenn ich CTreeView für MQL5 mit ShowItemContent(false) verwende, gibt es einen Stoppfehler: array out of range in 'TreeView.mqh' (1725,22). Dies ist in der Funktion "void CTreeView::UpdateContentList(void)". Wenn ShowItemContent(false), wird der Inhalt des Elements nicht während der Initialisierung erstellt, sondern m_content_items[li].Update(true) wird verwendet, ohne das Flag m_show_item_content zu prüfen. Dann habe ich den Code der Funktion "void CTreeView::UpdateContentList(void)" wie folgt geändert:
//+------------------------------------------------------------------+
//| Обновляет список содержания|
//+------------------------------------------------------------------+
void CTreeView::UpdateContentList(void)
  {
//--- Beenden, wenn (1) der Inhalt nicht angezeigt werden muss oder (2) der Etikettenmodus aktiviert ist
   if(!m_show_item_content || m_tab_items_mode)
      return;
//---
   int items_total=::ArraySize(m_cd_list_index);
   for(int i=0; i<items_total; i++)
     {
      //--- Получим общий индекс пункта в списке
      int li=m_cd_list_index[i];
      //--- Обновим
      m_content_items[li].Update(true);
     }
  }
Liege ich richtig? Und können Sie das bitte bestätigen? Ich danke Ihnen vielmals!
 
Ich habe die Bibliothek von https://www.mql5.com/zh/code/19703 heruntergeladen. Wenn ich CTextEdit verwende, um Nur-Lese-Text anzuzeigen, erscheinen scrollV und scollH nicht, wenn es eine Menge Wörter mehr gibt. Hat jemand auch dieses Problem? Danke!
用于创建图形界面的 EasyAndFastGUI 开发库
用于创建图形界面的 EasyAndFastGUI 开发库
  • www.mql5.com
EasyAndFastGUI 开发库可以为自定义 MQL 程序创建图形界面。
 

Nach dem Update vom 4. Oktober gibt die Bibliothek an vielen Stellen die Warnungen zurück:

" veraltetes Verhalten, versteckte Methodenaufrufe werden in einer zukünftigen MQL Compiler Version deaktiviert Element.mqh 379 26 "

" veraltetes Verhalten, versteckte Methodenaufrufe werden in einer zukünftigen MQL Compiler Version deaktiviert Scrolls.mqh 625 15 "

" veraltetes Verhalten, versteckte Methodenaufrufe werden in einer zukünftigen MQL Compiler Version deaktiviert TextBox.mqh 1845 14 "

"Veraltetes Verhalten, versteckte Methodenaufrufe werden in einer zukünftigen MQL Compiler Version deaktiviert WndEvents.mqh 298 36 "


noch alles funktioniert perfekt, aber diese Warnungen sind sehr beängstigend :) ... ist jemand in der Lage zu helfen, wie man dieses Problem zu lösen, oder ist in der Lage zu erklären, was diese Warnung bedeutet ... was ist versteckte Methode? :)

Grüße

 
F: Gibt es eine Möglichkeit, den ausgewählten Text aus dem STechtEdit-Feld zu kopieren?
 
Marcin Rutkowski:

Nach der Aktualisierung am 4. Oktober gibt die Bibliothek die Warnungen vielerorts zurück:

" deprecated behavior, hidden method calling will be disabled in a future MQL compiler version Element.mqh 379 26 "

" veraltetes Verhalten, versteckte Methodenaufrufe werden in einer zukünftigen MQL Compiler Version deaktiviert Scrolls.mqh 625 15 "

"Veraltetes Verhalten, versteckte Methodenaufrufe werden in einer zukünftigen MQL Compiler Version deaktiviert TextBox.mqh 1845 14 "

" veraltetes Verhalten, versteckte Methodenaufrufe werden in einer zukünftigen MQL Compiler Version deaktiviert WndEvents.mqh 298 36 "


noch funktioniert alles perfekt, aber diese Warnungen sind sehr beängstigend :) ... ist jemand in der Lage zu helfen, wie dieses Problem zu lösen, oder ist in der Lage zu erklären, was diese Warnung bedeutet ... was ist versteckte Methode ... :)

Grüße



CElement::Update(true)

CElementBase::IsLocked()

CElementBase:: IsVisible()

CElementBase:: IsAvailable()

 
Mikhail Sergeev:



CElement::Update(true)

CElementBase::IsLocked()

CElementBase:: IsVisible()

CElementBase:: IsAvailable()

Hallo ...danke für die Antwort ...ich würde mich nicht als Anfänger bezeichnen, aber ich bin weit davon entfernt ein Profi zu sein :)

bezüglich Ihrer Antwort ....Beispiel aus der Datei Element.mqh ...

aus Fehlerprotokoll :

deprecated behaviour, hidden method calling will be disabled in a future MQL compiler version Element.mqh 379 26


und nach einem Doppelklick werde ich zum folgenden Code geleitet, und die Cursorposition wird als [cursor] kommentiert


void CElement::IsLocked(const bool state)
  {
//--- Выйти, если уже установлено
   if(state==CElementBase::IsLocked())
      return;
//--- Сохранить состояние
   CElementBase::IsLocked(state);
//--- Остальные элементы
   int elements_total=ElementsTotal();
   for(int i=0; i<elements_total; i++)
      m_elements[i].IsLocked(state);
//--- Проверка указателя
   if(::CheckPointer(m_main)==POINTER_INVALID)
      return;
//--- Событие отправляет только главный элемент составной группы
   if(this.Id()!=m_main.Id())
     {
      ::EventChartCustom(m_chart_id,ON_SET_LOCKED,CElementBase::Id(),(int)state,"");
      //--- Отправим сообщение об изменении в графическом интерфейсе
      ::EventChartCustom(m_chart_id,ON_CHANGE_GUI,CElementBase::Id(),0.0,"");
     }
   else
     {
      if(state != m_main.IsLocked())                                                        // <<<<< error verweist auf diese Zeile, und ich kann immer noch nicht herausfinden, was "hidden method" ist
// if(state != m_main.[cursor]IsLocked()) // Cursorposition 
       {
         ::EventChartCustom(m_chart_id,ON_SET_LOCKED,CElementBase::Id(),(int)state,"");
         //--- Отправим сообщение об изменении в графическом интерфейсе
         ::EventChartCustom(m_chart_id,ON_CHANGE_GUI,CElementBase::Id(),0.0,"");
        }
     }
  }

Wenn Sie mir erklären können, wie man das behebt, kann ich den Rest machen :) (oder mir zeigen, was die "versteckte Methode" ist) ...Nochmals vielen Dank

 
Mikhail Sergeev:



CElement::Update(true)

CElementBase::IsLocked()

CElementBase:: IsVisible()

CElementBase:: IsAvailable()

Endlich hat es in meinem Kopf geklickt :) ..alles ist jetzt gut ...Nochmals vielen Dank und Grüße
 

veraltetes Verhalten, versteckte Methodenaufrufe werden in einer zukünftigen MQL-Compilerversion deaktiviert WndEvents.mqh 1761 53

 
Marcin Rutkowski:
Finlay es hat in meinem Kopf klick gemacht :) ..alles ist jetzt gut ...Danke nochmal und Grüße
Hallo,
Ich habe es nicht verstanden. Was ist zu tun?