Browse Source

CH: Many bug fixes (cpu, display, etc)

Jean-Francois Goulet 20 years ago
parent
commit
b5eee14f69

+ 69 - 2
LuaEdit/LuaCore/LuaUtils.pas

@@ -12,6 +12,10 @@
 //******************************************************************************
 //******************************************************************************
 //** See Copyright Notice in lua.h
 //** See Copyright Notice in lua.h
 
 
+//Revision 1.6
+//     JF Adds :
+//             LuaTableToVirtualTreeView
+//
 //Revision 1.1
 //Revision 1.1
 //     MaxM Adds :
 //     MaxM Adds :
 //             LuaPCallFunction
 //             LuaPCallFunction
@@ -29,7 +33,7 @@ unit LuaUtils;
 interface
 interface
 
 
 uses
 uses
-  SysUtils, Classes, ComCtrls, lua, lualib, lauxlib, Variants;
+  SysUtils, Classes, ComCtrls, lua, lualib, lauxlib, Variants, VirtualTrees;
 
 
 const
 const
      ERR_Script ='Script Error : ';  
      ERR_Script ='Script Error : ';  
@@ -43,6 +47,12 @@ type
     constructor Create(Title: string; Line: Integer; Msg: string);
     constructor Create(Title: string; Line: Integer; Msg: string);
   end;
   end;
 
 
+  PBasicTreeData = ^TBasicTreeData;
+  TBasicTreeData = record
+    sName: String;
+    sValue: String;
+  end;
+
   TVariantArray =array of Variant;
   TVariantArray =array of Variant;
   PVariantArray =^TVariantArray;
   PVariantArray =^TVariantArray;
 
 
@@ -104,6 +114,7 @@ procedure LuaRegisterProperty(L: PLua_State; const Name: PChar; ReadFunc, WriteF
 procedure LuaStackToStrings(L: Plua_State; Lines: TStrings; MaxTable: Integer = -1);
 procedure LuaStackToStrings(L: Plua_State; Lines: TStrings; MaxTable: Integer = -1);
 procedure LuaLocalToStrings(L: Plua_State; Lines: TStrings; MaxTable: Integer = -1; Level: Integer = 0);
 procedure LuaLocalToStrings(L: Plua_State; Lines: TStrings; MaxTable: Integer = -1; Level: Integer = 0);
 procedure LuaTableToStrings(L: Plua_State; Index: Integer; Lines: TStrings; MaxTable: Integer = -1);
 procedure LuaTableToStrings(L: Plua_State; Index: Integer; Lines: TStrings; MaxTable: Integer = -1);
+procedure LuaTableToVirtualTreeView(L: Plua_State; Index: Integer; VTV: TVirtualStringTree; MaxTable: Integer);
 procedure LuaTableToTreeView(L: Plua_State; Index: Integer; TV: TTreeView; MaxTable: Integer = -1);
 procedure LuaTableToTreeView(L: Plua_State; Index: Integer; TV: TTreeView; MaxTable: Integer = -1);
 function LuaGetIdentValue(L: Plua_State; Ident: string; MaxTable: Integer = -1): string;
 function LuaGetIdentValue(L: Plua_State; Ident: string; MaxTable: Integer = -1): string;
 procedure LuaSetIdentValue(L: Plua_State; Ident, Value: string; MaxTable: Integer = -1);
 procedure LuaSetIdentValue(L: Plua_State; Ident, Value: string; MaxTable: Integer = -1);
@@ -864,8 +875,64 @@ begin
   end;
   end;
 end;
 end;
 
 
+procedure LuaTableToVirtualTreeView(L: Plua_State; Index: Integer; VTV: TVirtualStringTree; MaxTable: Integer);
+  // Go through all child of current table and create nodes
+  procedure ParseTreeNode(TreeNode: PVirtualNode; Index: Integer);
+  var
+    Key: string;
+    pData: PBasicTreeData;
+    pNode: PVirtualNode;
+  begin
+    // Retreive absolute index 
+    Index := LuaAbsIndex(L, Index);
+    
+    // Get the root node if current node is not assigned
+    //if not Assigned(TreeNode) then
+      //TreeNode := VTV.RootNode;
+
+    lua_pushnil(L);
+    while (lua_next(L, Index) <> 0) do
+    begin
+      Key := Dequote(LuaStackToStr(L, -2, MaxTable));
+      if (lua_type(L, -1) <> LUA_TTABLE) then
+      begin
+        pData := VTV.GetNodeData(VTV.AddChild(TreeNode));
+        pData.sName := Key;
+        pData.sValue := LuaStackToStr(L, -1, MaxTable);
+      end
+      else
+      begin
+        if (Key = '_G') then
+        begin
+          pData := VTV.GetNodeData(VTV.AddChild(TreeNode));
+          pData.sName := Key;
+          pData.sValue := '[LUA_GLOBALSINDEX]';
+        end
+        else
+        begin
+          pNode := VTV.AddChild(TreeNode);
+          pData := VTV.GetNodeData(pNode);
+          pData.sName := Key;
+          pData.sValue := '';
+          ParseTreeNode(pNode, -1);
+        end;
+      end;
+      lua_pop(L, 1);
+    end;
+  end;
+begin
+  Assert(lua_type(L, Index) = LUA_TTABLE);
+  VTV.BeginUpdate;
+  VTV.Clear;
+  try
+    ParseTreeNode(nil, Index);
+  finally
+    VTV.EndUpdate;
+  end;
+end;
+
 procedure LuaTableToTreeView(L: Plua_State; Index: Integer; TV: TTreeView; MaxTable: Integer);
 procedure LuaTableToTreeView(L: Plua_State; Index: Integer; TV: TTreeView; MaxTable: Integer);
-// Index ‚Ì Table ‚©‚ç TreeView �ì�¬
+  // Go through all child of current table and create nodes
   procedure ParseTreeNode(TreeNode: TTreeNode; Index: Integer);
   procedure ParseTreeNode(TreeNode: TTreeNode; Index: Integer);
   var
   var
     Key: string;
     Key: string;

+ 8 - 7
LuaEdit/LuaEditDebug/LuaEditDebug.cfg

@@ -1,20 +1,20 @@
 -$A8
 -$A8
 -$B-
 -$B-
--$C+
--$D+
+-$C-
+-$D-
 -$E-
 -$E-
 -$F-
 -$F-
 -$G+
 -$G+
 -$H+
 -$H+
--$I+
+-$I-
 -$J-
 -$J-
 -$K-
 -$K-
--$L+
+-$L-
 -$M-
 -$M-
 -$N+
 -$N+
--$O+
+-$O-
 -$P+
 -$P+
--$Q+
+-$Q-
 -$R-
 -$R-
 -$S-
 -$S-
 -$T-
 -$T-
@@ -22,8 +22,9 @@
 -$V+
 -$V+
 -$W-
 -$W-
 -$X+
 -$X+
--$YD
+-$Y-
 -$Z1
 -$Z1
+-GD
 -cg
 -cg
 -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
 -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
 -H+
 -H+

+ 20 - 18
LuaEdit/LuaEditDebug/LuaEditDebug.dof

@@ -3,21 +3,21 @@ Version=7.0
 [Compiler]
 [Compiler]
 A=8
 A=8
 B=0
 B=0
-C=1
-D=1
+C=0
+D=0
 E=0
 E=0
 F=0
 F=0
 G=1
 G=1
 H=1
 H=1
-I=1
+I=0
 J=0
 J=0
 K=0
 K=0
-L=1
+L=0
 M=0
 M=0
 N=1
 N=1
-O=1
+O=0
 P=1
 P=1
-Q=1
+Q=0
 R=0
 R=0
 S=0
 S=0
 T=0
 T=0
@@ -25,7 +25,7 @@ U=0
 V=1
 V=1
 W=0
 W=0
 X=1
 X=1
-Y=1
+Y=0
 Z=1
 Z=1
 ShowHints=1
 ShowHints=1
 ShowWarnings=1
 ShowWarnings=1
@@ -80,7 +80,7 @@ UnsafeType=0
 UnsafeCode=0
 UnsafeCode=0
 UnsafeCast=0
 UnsafeCast=0
 [Linker]
 [Linker]
-MapFile=0
+MapFile=3
 OutputObjs=0
 OutputObjs=0
 ConsoleApp=1
 ConsoleApp=1
 DebugInfo=0
 DebugInfo=0
@@ -101,7 +101,7 @@ DebugSourceDirs=
 UsePackages=0
 UsePackages=0
 [Parameters]
 [Parameters]
 RunParams=
 RunParams=
-HostApplication=C:\Prog\Delphi\Tests\Maxm\Test\DB_Op.exe
+HostApplication=C:\Prog\Delphi\LuaEdit\LuaDllTest\LuaEditDebug\LuaEditDebugTest\Debug\LuaEditDebugTest.exe
 Launcher=
 Launcher=
 UseLauncher=0
 UseLauncher=0
 DebugCWD=
 DebugCWD=
@@ -113,9 +113,9 @@ RootDir=C:\Programmi\Borland\Delphi7\Bin\
 IncludeVerInfo=1
 IncludeVerInfo=1
 AutoIncBuild=0
 AutoIncBuild=0
 MajorVer=2
 MajorVer=2
-MinorVer=1
+MinorVer=5
 Release=1
 Release=1
-Build=628
+Build=949
 Debug=0
 Debug=0
 PreRelease=0
 PreRelease=0
 Special=0
 Special=0
@@ -126,7 +126,7 @@ CodePage=1252
 [Version Info Keys]
 [Version Info Keys]
 CompanyName=Open Source
 CompanyName=Open Source
 FileDescription=IDE for Lua 5.0.2
 FileDescription=IDE for Lua 5.0.2
-FileVersion=2.1.1.628
+FileVersion=2.5.1.949
 InternalName=LuaEdit
 InternalName=LuaEdit
 LegalCopyright=LuaEdit Copyright 2004-2005 ©
 LegalCopyright=LuaEdit Copyright 2004-2005 ©
 LegalTrademarks=
 LegalTrademarks=
@@ -141,18 +141,20 @@ Item0=DELPHI_7
 Count=1
 Count=1
 Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
 Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
 [HistoryLists\hlSearchPath]
 [HistoryLists\hlSearchPath]
-Count=5
+Count=6
 Item0=C:\Prog\Delphi\Component\JEDI\jcl\packages\d7;C:\Prog\Delphi\Component\JEDI\jvcl\packages\d7;C:\Prog\Delphi\Component\SynEdit\Packages;C:\Prog\Delphi\LuaEdit\LuaCore;C:\Prog\Delphi\LuaEdit\RunTimeDebug;C:\Prog\Delphi\LuaEdit\Syntax
 Item0=C:\Prog\Delphi\Component\JEDI\jcl\packages\d7;C:\Prog\Delphi\Component\JEDI\jvcl\packages\d7;C:\Prog\Delphi\Component\SynEdit\Packages;C:\Prog\Delphi\LuaEdit\LuaCore;C:\Prog\Delphi\LuaEdit\RunTimeDebug;C:\Prog\Delphi\LuaEdit\Syntax
-Item1=C:\Prog\Delphi\Component\JEDI\jcl\packages\d7;C:\Prog\Delphi\Component\JEDI\jvcl\packages\d7;C:\Prog\Delphi\Component\SynEdit\Packages;C:\Prog\Delphi\LuaEdit\LuaCore;C:\Prog\Delphi\LuaEdit\RunTimeDebug
-Item2=C:\Prog\Delphi\Component\JEDI\jcl\packages\d7;C:\Prog\Delphi\Component\JEDI\jvcl\packages\d7;C:\Prog\Delphi\Component\SynEdit\Packages;C:\Prog\Delphi\LuaEdit\LuaCore
-Item3=C:\Prog\Delphi\Component\JEDI\jcl\packages\d7;C:\Prog\Delphi\Component\JEDI\jvcl\packages\d7;C:\Prog\Delphi\Component\SynEdit\Packages
-Item4=E:\Programming\Borland\Comuni;E:\Programming\Borland\Comuni\LUA;E:\Programming\Borland\Delphi\Packages\PropEditors;E:\Programming\Borland\Delphi\Packages\ActiveX;E:\Programming\Borland\Delphi\Packages\Altri;E:\Programming\Borland\Delphi\Packages\Compress;E:\Programming\Borland\Delphi\Packages\MaxMBeppeG;E:\Programming\Borland\Delphi\Packages\MaxMBeppeG\Printset;E:\Programming\Borland\Delphi\Packages\Database;E:\Programming\Borland\Delphi\Packages\Inspector;E:\Programming\Borland\Delphi\Packages\Internet;E:\Programming\Borland\Delphi\Packages\Multimedia;E:\Programming\Borland\Delphi\Packages\Special;E:\Programming\Borland\Delphi\Packages\ui;E:\Programming\Borland\Delphi\Packages\ImageLib;E:\Programming\Borland\Delphi7\Packages\Indy 9;E:\Programming\Borland\Delphi7\Packages\DIB;E:\Programming\Borland\Delphi7\Packages\fpiette\ics\Delphi\Vc32;E:\Programming\Borland\Delphi7\Packages\Graphics;E:\Programming\Borland\Delphi7\Libs\Pal_dcp;E:\Programming\Borland\Delphi7\Libs\Pal_bpl;E:\Programming\Borland\Delphi7\Packages\ZipMaster\vcl;E:\Programming\Borland\Delphi\Packages\KOL;E:\Programming\Borland\Delphi7\Packages\synedit\Source;E:\Programming\Borland\Delphi7\Libs\DCU;E:\Programming\Borland\Delphi\Packages\Jedi\jcl\source;E:\Programming\Borland\Delphi\Packages\Jedi\jcl\source\common;E:\Programming\Borland\Delphi\Packages\Jedi\jcl\source\vcl;E:\Programming\Borland\Delphi\Packages\Jedi\jcl\source\windows;E:\Programming\Borland\Delphi\Packages\Jedi\jcl\source\visclx;E:\Programming\Borland\Delphi\Packages\Jedi\jvcl\common;E:\Programming\Borland\Delphi\Packages\Jedi\jvcl\Resources;E:\Programming\Borland\Delphi\Packages\Jedi\jvcl\run
+Item1=$(DELPHI)\Lib\Debug;C:\Prog\Delphi\Component\JEDI\jcl\lib\D7\debug;C:\Prog\Delphi\COMPON~1\JEDI\jcl\lib\D7\debug;C:\Prog\Delphi\Component\JEDI\jcl\packages\d7;C:\Prog\Delphi\Component\JEDI\jvcl\packages\d7;C:\Prog\Delphi\Component\SynEdit\Packages;C:\Prog\Delphi\LuaEdit\LuaCore;C:\Prog\Delphi\LuaEdit\RunTimeDebug;C:\Prog\Delphi\LuaEdit\Syntax
+Item2=C:\Prog\Delphi\Component\JEDI\jcl\packages\d7;C:\Prog\Delphi\Component\JEDI\jvcl\packages\d7;C:\Prog\Delphi\Component\SynEdit\Packages;C:\Prog\Delphi\LuaEdit\LuaCore;C:\Prog\Delphi\LuaEdit\RunTimeDebug
+Item3=C:\Prog\Delphi\Component\JEDI\jcl\packages\d7;C:\Prog\Delphi\Component\JEDI\jvcl\packages\d7;C:\Prog\Delphi\Component\SynEdit\Packages;C:\Prog\Delphi\LuaEdit\LuaCore
+Item4=C:\Prog\Delphi\Component\JEDI\jcl\packages\d7;C:\Prog\Delphi\Component\JEDI\jvcl\packages\d7;C:\Prog\Delphi\Component\SynEdit\Packages
+Item5=E:\Programming\Borland\Comuni;E:\Programming\Borland\Comuni\LUA;E:\Programming\Borland\Delphi\Packages\PropEditors;E:\Programming\Borland\Delphi\Packages\ActiveX;E:\Programming\Borland\Delphi\Packages\Altri;E:\Programming\Borland\Delphi\Packages\Compress;E:\Programming\Borland\Delphi\Packages\MaxMBeppeG;E:\Programming\Borland\Delphi\Packages\MaxMBeppeG\Printset;E:\Programming\Borland\Delphi\Packages\Database;E:\Programming\Borland\Delphi\Packages\Inspector;E:\Programming\Borland\Delphi\Packages\Internet;E:\Programming\Borland\Delphi\Packages\Multimedia;E:\Programming\Borland\Delphi\Packages\Special;E:\Programming\Borland\Delphi\Packages\ui;E:\Programming\Borland\Delphi\Packages\ImageLib;E:\Programming\Borland\Delphi7\Packages\Indy 9;E:\Programming\Borland\Delphi7\Packages\DIB;E:\Programming\Borland\Delphi7\Packages\fpiette\ics\Delphi\Vc32;E:\Programming\Borland\Delphi7\Packages\Graphics;E:\Programming\Borland\Delphi7\Libs\Pal_dcp;E:\Programming\Borland\Delphi7\Libs\Pal_bpl;E:\Programming\Borland\Delphi7\Packages\ZipMaster\vcl;E:\Programming\Borland\Delphi\Packages\KOL;E:\Programming\Borland\Delphi7\Packages\synedit\Source;E:\Programming\Borland\Delphi7\Libs\DCU;E:\Programming\Borland\Delphi\Packages\Jedi\jcl\source;E:\Programming\Borland\Delphi\Packages\Jedi\jcl\source\common;E:\Programming\Borland\Delphi\Packages\Jedi\jcl\source\vcl;E:\Programming\Borland\Delphi\Packages\Jedi\jcl\source\windows;E:\Programming\Borland\Delphi\Packages\Jedi\jcl\source\visclx;E:\Programming\Borland\Delphi\Packages\Jedi\jvcl\common;E:\Programming\Borland\Delphi\Packages\Jedi\jvcl\Resources;E:\Programming\Borland\Delphi\Packages\Jedi\jvcl\run
 [HistoryLists\hlUnitOutputDirectory]
 [HistoryLists\hlUnitOutputDirectory]
 Count=1
 Count=1
 Item0=E:\Programming\Borland\Delphi7\Libs\DCU
 Item0=E:\Programming\Borland\Delphi7\Libs\DCU
 [HistoryLists\hlOutputDirectorry]
 [HistoryLists\hlOutputDirectorry]
-Count=1
+Count=2
 Item0=..\bin
 Item0=..\bin
+Item1=C:\Prog\Delphi\LuaEdit\LuaDllTest\LuaEditDebug\LuaEditDebugTest\Debug
 [HistoryLists\hlBPLOutput]
 [HistoryLists\hlBPLOutput]
 Count=1
 Count=1
 Item0=E:\Programming\Borland\Delphi7\Libs\Pal_bpl
 Item0=E:\Programming\Borland\Delphi7\Libs\Pal_bpl

+ 4 - 4
LuaEdit/LuaEditDebug/LuaEditDebug.dpr

@@ -153,7 +153,7 @@ end;
 end;
 end;
 
 
 
 
-function LuaEditDebugOpen :Plua_State;
+function LuaEditDebugOpen :Plua_State; cdecl;
 begin
 begin
      Result :=lua_open;
      Result :=lua_open;
      //Store in LuaRegistry Only!!!!!
      //Store in LuaRegistry Only!!!!!
@@ -161,7 +161,7 @@ begin
                               InitForms);
                               InitForms);
 end;
 end;
 
 
-function LuaEditDebugStartFile(LState :Plua_State; Filename :PChar):Integer;
+function LuaEditDebugStartFile(LState :Plua_State; Filename :PChar):Integer; cdecl;
 Var
 Var
    MainForm :TfrmMain;
    MainForm :TfrmMain;
    pLuaUnit: TLuaUnit;
    pLuaUnit: TLuaUnit;
@@ -192,7 +192,7 @@ begin
          end;
          end;
 end;
 end;
 
 
-function LuaEditDebugStart(LuaState :Plua_State; Code :PChar):Integer;
+function LuaEditDebugStart(LuaState :Plua_State; Code :PChar):Integer; cdecl;
 Var
 Var
    xTempFile     :TFileStream;
    xTempFile     :TFileStream;
    xTempFileName,
    xTempFileName,
@@ -236,7 +236,7 @@ begin
      end;
      end;
 end;
 end;
 
 
-procedure LuaEditDebugClose(LuaState :Plua_State);
+procedure LuaEditDebugClose(LuaState :Plua_State); cdecl;
 Var
 Var
    MainForm :TfrmMain;
    MainForm :TfrmMain;