123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- unit LuaOutput;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls, ComCtrls, ExtCtrls, JvComponent, JvDockControlForm,
- VirtualTrees, Menus, Clipbrd, Lua;
- type
- PLuaOutputLine = ^TPLuaOutputLine;
- TPLuaOutputLine = record
- FileName: String;
- LineText: String;
- LineNumber: Integer;
- end;
- TfrmLuaOutput = class(TForm)
- JvDockClient1: TJvDockClient;
- vstLuaOutput: TVirtualStringTree;
- ppmLuaOutput: TPopupMenu;
- Clear1: TMenuItem;
- N1: TMenuItem;
- FindSource1: TMenuItem;
- Copy1: TMenuItem;
- N2: TMenuItem;
- SelectAll1: TMenuItem;
- ClearAll1: TMenuItem;
- procedure vstLuaOutputGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString);
- procedure vstLuaOutputGetNodeDataSize(Sender: TBaseVirtualTree; var NodeDataSize: Integer);
- procedure ppmLuaOutputPopup(Sender: TObject);
- procedure SelectAll1Click(Sender: TObject);
- procedure Copy1Click(Sender: TObject);
- procedure FindSource1Click(Sender: TObject);
- procedure Clear1Click(Sender: TObject);
- procedure ClearAll1Click(Sender: TObject);
- procedure vstLuaOutputDblClick(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- procedure Put(FileName, LineText: String; LineNumber: Integer);
- end;
- var
- frmLuaOutput: TfrmLuaOutput;
- implementation
- uses Main, Misc;
- {$R *.dfm}
- procedure TfrmLuaOutput.Put(FileName, LineText: String; LineNumber: Integer);
- var
- pData: PLuaOutputLine;
- pNode: PVirtualNode;
- begin
- if LineText <> #13#10 then
- begin
- pNode := vstLuaOutput.AddChild(vstLuaOutput.RootNode);
- pData := vstLuaOutput.GetNodeData(pNode);
- pData.FileName := FileName;
- pData.LineText := LUA_PROMPT + LineText;
- pData.LineNumber := LineNumber;
- end;
- end;
- procedure TfrmLuaOutput.vstLuaOutputGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString);
- var
- pData: PLuaOutputLine;
- begin
- case Column of
- -1:
- begin
- pData := vstLuaOutput.GetNodeData(Node);
- CellText := pData.LineText;
- end;
- end;
- end;
- procedure TfrmLuaOutput.vstLuaOutputGetNodeDataSize(Sender: TBaseVirtualTree; var NodeDataSize: Integer);
- begin
- NodeDataSize := SizeOf(TPLuaOutputLine);
- end;
- procedure TfrmLuaOutput.ppmLuaOutputPopup(Sender: TObject);
- begin
- ClearAll1.Enabled := True;
- SelectAll1.Enabled := True;
- FindSource1.Enabled := (vstLuaOutput.SelectedCount = 1);
- Clear1.Enabled := (vstLuaOutput.SelectedCount > 0);
- Copy1.Enabled := (vstLuaOutput.SelectedCount > 0);
- end;
- procedure TfrmLuaOutput.SelectAll1Click(Sender: TObject);
- begin
- vstLuaOutput.SelectAll(False);
- end;
- procedure TfrmLuaOutput.Copy1Click(Sender: TObject);
- var
- pNode: PVirtualNode;
- pData: PLuaOutputLine;
- ClipboardText: String;
- begin
- ClipboardText := '';
- pNode := vstLuaOutput.GetFirstSelected();
- while Assigned(pNode) do
- begin
- pData := vstLuaOutput.GetNodeData(pNode);
- ClipboardText := ClipboardText + pData.LineText;
- pNode := vstLuaOutput.GetNextSelected(pNode);
- // Add carriage return if required
- if Assigned(pNode) then
- ClipboardText := ClipboardText + #13#10;
- end;
- Clipboard.SetTextBuf(PChar(ClipboardText));
- end;
- procedure TfrmLuaOutput.FindSource1Click(Sender: TObject);
- var
- pNode: PVirtualNode;
- pData: PLuaOutputLine;
- begin
- pNode := vstLuaOutput.GetFirstSelected();
-
- if Assigned(pNode) then
- begin
- pData := vstLuaOutput.GetNodeData(pNode);
- frmLuaEditMain.PopUpUnitToScreen(pData.FileName, pData.LineNumber, False, HIGHLIGHT_SELECT);
- end;
- end;
- procedure TfrmLuaOutput.Clear1Click(Sender: TObject);
- begin
- vstLuaOutput.DeleteSelectedNodes();
- end;
- procedure TfrmLuaOutput.ClearAll1Click(Sender: TObject);
- begin
- vstLuaOutput.Clear;
- end;
- procedure TfrmLuaOutput.vstLuaOutputDblClick(Sender: TObject);
- begin
- FindSource1Click(Sender);
- end;
- end.
|