HRESULT CRunErr::OnDemandRuntimeError(ebWORD wLinNr) { // testen, ob im richtigen Kontext verwendet ASSERT (!m_fRunModal); // evtl. Debuggerfenster erzeugen m_fRTError = true; if (NULL == m_pScriptDebugger) { HRESULT hr = CreateDebugger(); if (FAILED(hr)) return hr; ASSERT(NULL != m_pScriptDebugger); } ebDebugger_SelectLines(GetDebuggerWnd(), wLinNr-2, wLinNr-1, true); // jetzt, wo alles fertig ist, anzeigen m_pScriptDebugger -> EditOnly(); // UI richten, kein GO etc. möglich m_pScriptDebugger -> ShowWindow (SW_SHOWNORMAL); m_pScriptDebugger -> UpdateWindow(); return NOERROR; }
HRESULT CRunErr::CreateDebugger(UINT uiWMClose, BOOL fOpen, ebWORD wLineNr, IObjectManagement *pIOM, IStreamInfo *pISI) { ASSERT(!m_strName.IsEmpty()); if (m_strName.IsEmpty()) return E_INVALIDARG; EnableTriasWindow(false); HRESULT hr = NOERROR; // Neuen Debugger kreieren, Baum füllen, DebCtrl init. if (NULL == m_pScriptDebugger) hr = ::CreateDebugger(g_pBSE -> MWind(), m_strName, fOpen, uiWMClose, pIOM, pISI, &m_pScriptDebugger); else // Nur neuen Script öffnen hr = m_pScriptDebugger -> Init(m_strName, fOpen, pIOM, pISI); if (FAILED(hr)) return hr; m_pScriptDebugger -> SetEditOnly(true);// Nur editieren möglich ebDebugger_SelectLines(GetDebuggerWnd(), wLineNr-2, wLineNr-1, true); return hr; }