CTreeView for MQL5をShowItemContent(false)で使用すると、'TreeView.mqh'(1725,22)でstop error:array out of rangeが 発生します。これは関数 "void CTreeView::UpdateContentList(void) "内です。ShowItemContent(false)の場合、初期化時にアイテムの内容は作成されず、m_show_item_contentフラグをチェックせずにm_content_items[li].Update(true)が使われる。そこで、関数 "void CTreeView::UpdateContentList(void) "のコードを以下のように修正しました:
//+------------------------------------------------------------------+| Обновляет список содержания|//+------------------------------------------------------------------+void CTreeView::UpdateContentList(void)
{//--- (1) コンテンツを表示する必要がないか、(2) ラベルモードが有効な場合に終了する。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);
}
}
void CElement::IsLocked(constbool 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()) // <<<< エラーはこの行を指している。// if(state != m_main.[カーソル]IsLocked()) // カーソルの位置
{
::EventChartCustom(m_chart_id,ON_SET_LOCKED,CElementBase::Id(),(int)state,"");
//--- Отправим сообщение об изменении в графическом интерфейсе
::EventChartCustom(m_chart_id,ON_CHANGE_GUI,CElementBase::Id(),0.0,"");
}
}
}
そして、"void CTreeView::UpdateContentList(void) "関数のコードを以下のように修正しました。 正しいですか? また、確認していただけますか?
10月4日のアップデート後、ライブラリーは多くの場所で警告を返すようになった:
" 非推奨の動作、非表示のメソッド呼び出しは将来の MQL コンパイラー・バージョンで無効になります Element.mqh 379 26 "
" 非推奨の動作、非表示メソッド呼び出しは将来の MQL コンパイラーバージョンで無効になります Scrolls.mqh 625 15 "
「非推奨の動作、非表示メソッド呼び出しは将来の MQL コンパイラーバージョンで無効になる TextBox.mqh 1845 14 "
" 非推奨の動作、非表示メソッド呼び出しは将来の MQL コンパイラーバージョンで無効になります WndEvents.mqh 298 36 "
どなたかこの問題を解決する方法を教えてくださる方、またはこの警告が意味することを説明してくださる方はいらっしゃいませんか?)
よろしくお願いします。
10月4日の更新後、図書館は多くの場所で警告を返している:
" 非推奨の動作、隠しメソッド呼び出しは将来のMQLコンパイラー・バージョンで無効になります Element.mqh 379 26 "
" 非推奨の動作、非表示メソッド呼び出しは将来の MQL コンパイラーバージョンで無効になります Scrolls.mqh 625 15 "
「非推奨の動作、将来の MQL コンパイラーバージョンでは非表示のメソッド呼び出しは無効になる TextBox.mqh 1845 14 "
" 非推奨の動作、将来の MQL コンパイラーバージョンで非表示メソッド呼び出しが無効になる予定 WndEvents.mqh 298 36 "
どなたかこの問題を解決する方法を教えてくださる方、またはこの警告が意味することを説明してくださる方はいらっしゃいませんか?)
よろしくお願いします。
CElement::Update(true)
CElementBase::IsLocked()
CElementBase:: IsVisible()
CElementBase:: IsAvailable()
CElement::Update(true)
CElementBase::IsLocked()
CElementBase:: IsVisible()
CElementBase:: IsAvailable()
こんにちは...返信ありがとうございます...私は自分を初心者とは呼びませんが、プロには程遠いです :)
Element.mqhの例です。
エラーログから.
非推奨の動作、隠しメソッド呼び出しは将来のMQLコンパイラーバージョンで無効になります Element.mqh 379 26
と表示され、ダブルクリックすると下のコードが表示され、カーソルの位置が[cursor]とコメントされています。
もしこれを修正する方法を説明していただければ、残りを行うことができます :) (または、「隠しメソッド」が何であるかを教えてください) ...ありがとうございました。
CElement::Update(true)
CElementBase::IsLocked()
CElementBase:: IsVisible()
CElementBase:: IsAvailable()
非推奨の動作であり、非表示メソッド呼び出しは将来の MQL コンパイラー・バージョンで無効になる予定 WndEvents.mqh 1761 53
フィンレイ、僕の頭の中でピンときたよ。
。どうすればいい?