-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add code for controlling the TreeView and TreeNode's with lua
- Loading branch information
cheatengine@gmail.com
committed
Dec 12, 2013
1 parent
1f200c6
commit 310ff09
Showing
12 changed files
with
1,210 additions
and
267 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,172 @@ | ||
object frmCEListviewItemEditor: TfrmCEListviewItemEditor | ||
Left = 805 | ||
Height = 240 | ||
Top = 359 | ||
Width = 349 | ||
Caption = 'Item editor' | ||
ClientHeight = 240 | ||
ClientWidth = 349 | ||
Position = poScreenCenter | ||
LCLVersion = '1.0.8.0' | ||
object Panel1: TPanel | ||
Left = 0 | ||
Height = 200 | ||
Top = 0 | ||
Width = 349 | ||
Align = alClient | ||
BevelOuter = bvNone | ||
ClientHeight = 200 | ||
ClientWidth = 349 | ||
TabOrder = 0 | ||
object TreeView1: TTreeView | ||
Left = 0 | ||
Height = 200 | ||
Top = 0 | ||
Width = 207 | ||
Align = alClient | ||
DefaultItemHeight = 18 | ||
HideSelection = False | ||
TabOrder = 0 | ||
OnChange = TreeView1Change | ||
OnSelectionChanged = TreeView1SelectionChanged | ||
Options = [tvoAutoItemHeight, tvoKeepCollapsedNodes, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips, tvoThemedDraw] | ||
end | ||
object Panel2: TPanel | ||
Left = 207 | ||
Height = 200 | ||
Top = 0 | ||
Width = 142 | ||
Align = alRight | ||
BevelOuter = bvNone | ||
ClientHeight = 200 | ||
ClientWidth = 142 | ||
TabOrder = 1 | ||
object edtText: TEdit | ||
AnchorSideLeft.Control = Panel2 | ||
AnchorSideTop.Control = lblText | ||
AnchorSideTop.Side = asrBottom | ||
AnchorSideRight.Control = Panel2 | ||
AnchorSideRight.Side = asrBottom | ||
Left = 6 | ||
Height = 23 | ||
Top = 28 | ||
Width = 130 | ||
Anchors = [akTop, akLeft, akRight] | ||
BorderSpacing.Around = 6 | ||
OnChange = edtTextChange | ||
TabOrder = 0 | ||
end | ||
object lblText: TLabel | ||
Left = 6 | ||
Height = 16 | ||
Top = 6 | ||
Width = 130 | ||
Align = alTop | ||
BorderSpacing.Around = 6 | ||
Caption = 'Text' | ||
ParentColor = False | ||
end | ||
object btnAddItem: TButton | ||
AnchorSideLeft.Control = Panel2 | ||
AnchorSideTop.Control = edtText | ||
AnchorSideTop.Side = asrBottom | ||
AnchorSideRight.Control = Panel2 | ||
AnchorSideRight.Side = asrBottom | ||
Left = 6 | ||
Height = 25 | ||
Top = 57 | ||
Width = 130 | ||
Anchors = [akTop, akLeft, akRight] | ||
BorderSpacing.Around = 6 | ||
Caption = 'Add Item' | ||
OnClick = btnAddItemClick | ||
TabOrder = 1 | ||
end | ||
object btnAddSubItem: TButton | ||
AnchorSideLeft.Control = Panel2 | ||
AnchorSideTop.Control = btnAddItem | ||
AnchorSideTop.Side = asrBottom | ||
AnchorSideRight.Control = Panel2 | ||
AnchorSideRight.Side = asrBottom | ||
Left = 6 | ||
Height = 25 | ||
Top = 88 | ||
Width = 130 | ||
Anchors = [akTop, akLeft, akRight] | ||
BorderSpacing.Around = 6 | ||
Caption = 'Add SubItem' | ||
Enabled = False | ||
OnClick = btnAddSubItemClick | ||
TabOrder = 2 | ||
end | ||
object btnDelete: TButton | ||
AnchorSideLeft.Control = Panel2 | ||
AnchorSideTop.Control = btnAddSubItem | ||
AnchorSideTop.Side = asrBottom | ||
AnchorSideRight.Control = Panel2 | ||
AnchorSideRight.Side = asrBottom | ||
Left = 6 | ||
Height = 25 | ||
Top = 119 | ||
Width = 130 | ||
Anchors = [akTop, akLeft, akRight] | ||
BorderSpacing.Around = 6 | ||
Caption = 'Delete' | ||
Enabled = False | ||
OnClick = btnDeleteClick | ||
TabOrder = 3 | ||
end | ||
end | ||
end | ||
object Panel3: TPanel | ||
Left = 0 | ||
Height = 40 | ||
Top = 200 | ||
Width = 349 | ||
Align = alBottom | ||
Anchors = [akTop, akLeft, akRight, akBottom] | ||
BevelOuter = bvNone | ||
ClientHeight = 40 | ||
ClientWidth = 349 | ||
TabOrder = 1 | ||
object Panel4: TPanel | ||
AnchorSideRight.Control = Panel3 | ||
AnchorSideRight.Side = asrCenter | ||
Left = 94 | ||
Height = 26 | ||
Top = 8 | ||
Width = 159 | ||
Anchors = [akTop, akRight] | ||
BevelOuter = bvNone | ||
ClientHeight = 26 | ||
ClientWidth = 159 | ||
TabOrder = 0 | ||
object btnCancel: TButton | ||
AnchorSideRight.Control = Panel4 | ||
AnchorSideRight.Side = asrBottom | ||
Left = 84 | ||
Height = 25 | ||
Top = 0 | ||
Width = 75 | ||
Anchors = [akTop, akRight] | ||
Cancel = True | ||
Caption = 'Cancel' | ||
ModalResult = 2 | ||
TabOrder = 0 | ||
end | ||
object btnOk: TButton | ||
AnchorSideLeft.Control = Panel4 | ||
AnchorSideRight.Control = btnCancel | ||
Left = 0 | ||
Height = 25 | ||
Top = 0 | ||
Width = 75 | ||
BorderSpacing.Right = 10 | ||
Caption = 'OK' | ||
Default = True | ||
OnClick = btnOkClick | ||
TabOrder = 1 | ||
end | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
TFRMCELISTVIEWITEMEDITOR.CAPTION=Item editor | ||
TFRMCELISTVIEWITEMEDITOR.LBLTEXT.CAPTION=Text | ||
TFRMCELISTVIEWITEMEDITOR.BTNADDITEM.CAPTION=Add Item | ||
TFRMCELISTVIEWITEMEDITOR.BTNADDSUBITEM.CAPTION=Add SubItem | ||
TFRMCELISTVIEWITEMEDITOR.BTNDELETE.CAPTION=Delete | ||
TFRMCELISTVIEWITEMEDITOR.BTNCANCEL.CAPTION=Cancel | ||
TFRMCELISTVIEWITEMEDITOR.BTNOK.CAPTION=OK |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,178 @@ | ||
unit CEListviewItemEditor; | ||
|
||
{$mode delphi} | ||
|
||
interface | ||
|
||
uses | ||
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, | ||
ComCtrls, ExtCtrls, propedits; | ||
|
||
type | ||
|
||
{ TfrmCEListviewItemEditor } | ||
|
||
TfrmCEListviewItemEditor = class(TForm) | ||
btnDelete: TButton; | ||
btnCancel: TButton; | ||
btnOk: TButton; | ||
btnAddItem: TButton; | ||
btnAddSubItem: TButton; | ||
edtText: TEdit; | ||
lblText: TLabel; | ||
Panel1: TPanel; | ||
Panel2: TPanel; | ||
Panel3: TPanel; | ||
Panel4: TPanel; | ||
TreeView1: TTreeView; | ||
procedure btnAddItemClick(Sender: TObject); | ||
procedure btnAddSubItemClick(Sender: TObject); | ||
procedure btnDeleteClick(Sender: TObject); | ||
procedure btnOkClick(Sender: TObject); | ||
procedure edtTextChange(Sender: TObject); | ||
procedure TreeView1Change(Sender: TObject; Node: TTreeNode); | ||
procedure TreeView1SelectionChanged(Sender: TObject); | ||
private | ||
{ private declarations } | ||
c: TWinControl; //the TCEListview object | ||
public | ||
procedure setControl(wc: TWincontrol); | ||
{ public declarations } | ||
end; | ||
|
||
TCEListViewItemsPropertyEditor = Class(TClassPropertyEditor) | ||
public | ||
procedure Edit; override; | ||
function GetAttributes: TPropertyAttributes; override; | ||
end; | ||
|
||
implementation | ||
|
||
{$R *.lfm} | ||
|
||
uses ceguicomponents; | ||
|
||
procedure TfrmCEListviewItemEditor.btnOkClick(Sender: TObject); | ||
var | ||
lv: TCEListView; | ||
lvi: Tlistitem; | ||
i: integer; | ||
|
||
tn: TTreenode; | ||
begin | ||
//apply the changes | ||
lv:=TCEListView(c); | ||
|
||
lv.Items.Clear; | ||
|
||
tn:=treeview1.Items.GetFirstNode; | ||
while tn<>nil do | ||
begin | ||
lvi:=lv.items.add; | ||
lvi.caption:=tn.Text; | ||
|
||
i:=0; | ||
for i:=0 to tn.Count-1 do | ||
lvi.SubItems.Add(tn[i].Text); | ||
|
||
|
||
tn:=tn.GetNextSibling; | ||
end; | ||
|
||
|
||
modalresult:=mrok; | ||
end; | ||
|
||
procedure TfrmCEListviewItemEditor.edtTextChange(Sender: TObject); | ||
begin | ||
if treeview1.selected<>nil then | ||
treeview1.Selected.text:=edtText.text; | ||
end; | ||
|
||
procedure TfrmCEListviewItemEditor.TreeView1Change(Sender: TObject; | ||
Node: TTreeNode); | ||
begin | ||
|
||
end; | ||
|
||
procedure TfrmCEListviewItemEditor.TreeView1SelectionChanged(Sender: TObject); | ||
begin | ||
btnAddSubItem.Enabled:=treeview1.selected<>nil; | ||
btnDelete.enabled:=treeview1.selected<>nil; | ||
end; | ||
|
||
procedure TfrmCEListviewItemEditor.btnAddItemClick(Sender: TObject); | ||
var tn: TTreeNode; | ||
begin | ||
tn:=treeview1.items.Add(nil, edtText.text); | ||
tn.selected:=true; | ||
treeview1.MakeSelectionVisible; | ||
end; | ||
|
||
procedure TfrmCEListviewItemEditor.btnAddSubItemClick(Sender: TObject); | ||
var tn: TTreeNode; | ||
begin | ||
tn:=treeview1.selected; | ||
|
||
|
||
if tn<>nil then | ||
begin | ||
while tn.Parent<>nil do | ||
tn:=tn.parent; | ||
|
||
tn:=treeview1.items.AddChild(tn, edtText.text); | ||
tn.selected:=true; | ||
treeview1.MakeSelectionVisible; | ||
end; | ||
end; | ||
|
||
procedure TfrmCEListviewItemEditor.btnDeleteClick(Sender: TObject); | ||
begin | ||
if treeview1.selected<>nil then | ||
treeview1.Selected.Delete; | ||
end; | ||
|
||
procedure TfrmCEListviewItemEditor.setControl(wc: twincontrol); | ||
var | ||
lv: TCEListView; | ||
i,j: integer; | ||
|
||
tn: TTreeNode; | ||
begin | ||
c:=wc; | ||
|
||
lv:=TCEListview(wc); | ||
|
||
treeview1.Items.clear; | ||
|
||
for i:=0 to lv.items.Count-1 do | ||
begin | ||
tn:=treeview1.items.Add(nil, lv.Items[i].Caption); | ||
for j:=0 to lv.items[i].SubItems.Count-1 do | ||
treeview1.Items.AddChild(tn, lv.items[i].SubItems[j]); | ||
end; | ||
end; | ||
|
||
|
||
procedure TCEListViewItemsPropertyEditor.Edit; | ||
var lv: TCEListview; | ||
begin | ||
lv:=TCEListView(GetComponent(0)); | ||
|
||
with TfrmCEListviewItemEditor.create(application) do | ||
begin | ||
setControl(lv); | ||
if showmodal=mrok then | ||
modified; | ||
|
||
free; | ||
end; | ||
end; | ||
|
||
function TCEListViewItemsPropertyEditor.GetAttributes: TPropertyAttributes; | ||
begin | ||
Result:=[paDialog, paReadOnly, paRevertable]; | ||
end; | ||
|
||
end. | ||
|
Oops, something went wrong.