📄 fdebuginfo.class
字号:
' Gambas class filePUBLIC Shown AS BooleanPRIVATE $aLocal AS String[]PUBLIC SUB Form_Open() Config.LoadWindow(ME, "/FDebugInfo") WITH cvLocal .Columns.Count = 2 .Columns[0].Width = 128 .Columns[0].Text = ("Name") .Columns[1].Text = ("Value") END WITH WITH cvwWatch .Columns.Count = 2 .Columns[0].Width = 128 .Columns[0].Text = ("Expression") .Columns[1].Text = ("Value") END WITHENDPUBLIC SUB Clear() lstStack.Clear cvwWatch.ClearENDPUBLIC SUB EnableStack(bOn AS Boolean) lstStack.Enabled = bOnENDPUBLIC SUB FillStack(aPos AS String[]) DIM sPos AS String lstStack.Clear FOR EACH sPos IN aPos IF sPos = "?" THEN lstStack.Add("(" & ("native code") & ")") ELSE lstStack.Add(sPos) ENDIF NEXTENDPUBLIC SUB lstStack_Activate() DIM sLoc AS String DIM iPos AS Integer DIM sFile AS String DIM iLine AS Integer sLoc = lstStack.Current.Text IF Instr(sLoc, "(") THEN RETURN iPos = Instr(sLoc, ".") IF iPos = 0 THEN RETURN sFile = Left$(sLoc, iPos - 1) iPos = RInstr(sLoc, ".") IF iPos = 0 THEN RETURN iLine = Val(Mid$(sLoc, iPos + 1)) Project.OpenFile(sFile, iLine)CATCHENDPUBLIC SUB Form_Hide() Config.SaveWindow(ME, "/FDebugInfo")ENDPUBLIC SUB DefineLocal(aLocal AS String[]) DIM sVar AS String $aLocal = aLocal cvLocal.Clear 'cvLocal.Add("ME", "ME") FOR EACH sVar IN aLocal TRY cvLocal.Add(sVar, sVar) NEXTENDPUBLIC SUB AddLocal(sCmd AS String, sRes AS String) IF NOT sCmd THEN PRINT "FLocal.Add: sCmd = '' ?" RETURN ENDIF TRY cvLocal.Add(sCmd, sCmd) IF Left$(sRes,1) = "=" THEN cvLocal[sCmd][1] = Mid$(sRes, 2) ELSE cvLocal[sCmd][1] = ("ERROR:") & " " & sRes ENDIFENDPUBLIC SUB RefreshAllLocal() DIM sVar AS String FOR EACH sVar IN $aLocal FDebug.Command("l" & sVar, TRUE, , "L") NEXTENDPUBLIC SUB AddResultWatch(sCmd AS String, sRes AS String) TRY cvwWatch.Add(sCmd, sCmd) IF Left$(sRes,1) = "=" THEN cvwWatch[sCmd][1] = Mid$(sRes, 2) ELSE cvwWatch[sCmd][1] = ("ERROR:") & " " & sRes ENDIFENDPUBLIC SUB RefreshAllWatch() IF NOT cvwWatch.MoveFirst() THEN DO FDebug.Command("?" & cvwWatch.Item.Text, TRUE) IF cvwWatch.MoveNext() THEN RETURN LOOP ENDIFENDPUBLIC SUB AddWatch(sExpr AS String) IF cmbWatch.Find(sExpr) < 0 THEN cmbWatch.Add(sExpr) ENDIF FDebug.Command("?" & sExpr, TRUE)ENDPUBLIC SUB cmbWatch_Activate() DIM sExpr AS String sExpr = Trim(cmbWatch.Text) IF NOT sExpr THEN RETURN AddWatch(sExpr)ENDPUBLIC SUB btnWatch_Click() cmbWatch_ActivateENDPUBLIC SUB btnKillWatch_Click() TRY cvwWatch.Remove(cvwWatch.Key)ENDPUBLIC SUB btnKillAllWatch_Click() IF Message.Question(("Do you want to clear the expression list ?"), ("Clear"), ("Cancel")) = 2 THEN RETURN cvwWatch.ClearENDPUBLIC SUB cmbWatch_Click() btnWatch_ClickENDPUBLIC SUB cvwWatch_Activate() cmbWatch.Text = LAST.Item.TextEND
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -