Stack.pas 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. unit Stack;
  2. interface
  3. uses
  4. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5. Dialogs, ExtCtrls, StdCtrls, ComCtrls, Main, JvComponent, Misc, ImgList,
  6. JvDockControlForm, JvExStdCtrls, JvListComb, JvExComCtrls,
  7. JvListView, JvDotNetControls, lua, lualib, lauxlib, LuaUtils;
  8. type
  9. TfrmStack = class(TForm)
  10. JvDockClient1: TJvDockClient;
  11. imlCallStack: TImageList;
  12. lstCallStack: TJvDotNetListView;
  13. procedure lstCallStackDblClick(Sender: TObject);
  14. private
  15. { Private declarations }
  16. public
  17. { Public declarations }
  18. end;
  19. var
  20. frmStack: TfrmStack;
  21. implementation
  22. {$R *.dfm}
  23. procedure TfrmStack.lstCallStackDblClick(Sender: TObject);
  24. var
  25. x: Integer;
  26. pBreakInfo: TBreakInfo;
  27. begin
  28. if Assigned(lstCallStack.Selected) then
  29. begin
  30. pBreakInfo := TBreakInfo(lstCallStack.Selected.Data);
  31. if pBreakInfo.Line <> -1 then
  32. begin
  33. frmStack.lstCallStack.Items.BeginUpdate;
  34. for x := 0 to frmStack.lstCallStack.Items.Count - 1 do
  35. begin
  36. if x = 0 then
  37. frmStack.lstCallStack.Items[x].ImageIndex := 0
  38. else
  39. frmStack.lstCallStack.Items[x].ImageIndex := -1;
  40. end;
  41. // update locals...
  42. frmLuaEditMain.PrintLocal(frmLuaEditMain.LuaState, lstCallStack.Selected.Index);
  43. frmLuaEditMain.PrintWatch(frmLuaEditMain.LuaState);
  44. frmStack.lstCallStack.Items.EndUpdate;
  45. lstCallStack.Selected.ImageIndex := 1;
  46. TLuaEditDebugFile(frmLuaEditMain.PopUpUnitToScreen(pBreakInfo.FileName, pBreakInfo.Line)).DebugInfos.iStackMarker := pBreakInfo.Line+1;
  47. TLuaEditUnit(frmLuaEditMain.jvUnitBar.SelectedTab.Data).synUnit.Refresh;
  48. end;
  49. end;
  50. end;
  51. end.