summaryrefslogtreecommitdiff
path: root/examples/gui/treeviewtest
diff options
context:
space:
mode:
authorgraemeg <graemeg@ae50a9b5-8222-0410-bf8d-8a13f76226bf>2009-02-16 08:52:01 +0000
committergraemeg <graemeg@ae50a9b5-8222-0410-bf8d-8a13f76226bf>2009-02-16 08:52:01 +0000
commit1a34744695bea3bf1d663040fbe8a81f5610968b (patch)
tree7535f646bc1218f1daac30f50522a6bbef5d06b7 /examples/gui/treeviewtest
parent2759e11c0f5674184afbf29f7abd5799884ba813 (diff)
downloadfpGUI-1a34744695bea3bf1d663040fbe8a81f5610968b.tar.xz
* Removed a lot of memory leaks from fpg_treeview.pas.
* Reworked the Treeview Test example so that it is managed by the Form Designer.
Diffstat (limited to 'examples/gui/treeviewtest')
-rw-r--r--examples/gui/treeviewtest/treeviewtest.lpi9
-rw-r--r--examples/gui/treeviewtest/treeviewtest.lpr147
2 files changed, 111 insertions, 45 deletions
diff --git a/examples/gui/treeviewtest/treeviewtest.lpi b/examples/gui/treeviewtest/treeviewtest.lpi
index 8941afce..5f459bb9 100644
--- a/examples/gui/treeviewtest/treeviewtest.lpi
+++ b/examples/gui/treeviewtest/treeviewtest.lpi
@@ -9,7 +9,6 @@
</Flags>
<SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
- <IconPath Value="./"/>
<TargetFileExt Value=""/>
</General>
<VersionInfo>
@@ -41,8 +40,14 @@
</ProjectOptions>
<CompilerOptions>
<Version Value="8"/>
+ <Parsing>
+ <SyntaxOptions>
+ <CStyleOperator Value="False"/>
+ </SyntaxOptions>
+ </Parsing>
<Other>
- <CustomOptions Value="-FUunits"/>
+ <CustomOptions Value="-FUunits
+"/>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>
diff --git a/examples/gui/treeviewtest/treeviewtest.lpr b/examples/gui/treeviewtest/treeviewtest.lpr
index f47f8c37..9c57d5f9 100644
--- a/examples/gui/treeviewtest/treeviewtest.lpr
+++ b/examples/gui/treeviewtest/treeviewtest.lpr
@@ -13,23 +13,28 @@ uses
fpg_form,
fpg_tree,
fpg_checkbox,
+ fpg_button,
fpg_imagelist;
type
- { TMainForm }
-
TMainForm = class(TfpgForm)
private
+ {@VFD_HEAD_BEGIN: MainForm}
tree: TfpgTreeView;
- imagelist: TfpgImageList;
cbShowImages: TfpgCheckBox;
cbIndentNode: TfpgCheckBox;
+ btnClear: TfpgButton;
+ {@VFD_HEAD_END: MainForm}
+ FImagelist: TfpgImageList;
procedure cbShowImagesChange(Sender: TObject);
procedure cbIndentNodeChange(Sender: TObject);
+ procedure btnClearClicked(Sender: TObject);
+ procedure PopulateTree;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
+ procedure AfterCreate; override;
end;
{ TMainForm }
@@ -39,41 +44,28 @@ begin
tree.IndentNodeWithNoImage := cbIndentNode.Checked;
end;
-procedure TMainForm.cbShowImagesChange(Sender: TObject);
+procedure TMainForm.btnClearClicked(Sender: TObject);
+var
+ n: TfpgTreeNode;
begin
- tree.ShowImages := cbShowImages.Checked;
+ if tree.Selection <> nil then
+ begin
+ n := tree.Selection;
+ tree.Selection.Clear;
+ tree.Invalidate;
+ tree.Selection := n;
+ end;
end;
-constructor TMainForm.Create(AOwner: TComponent);
+procedure TMainForm.PopulateTree;
var
n: TfpgTreeNode;
- n2: TfpgTreeNode;
i: integer;
- s: string;
+ n2: TfpgTreeNode;
+ s: TfpgString;
begin
- inherited Create(AOwner);
- WindowTitle := 'Treeview Test';
- WindowPosition := wpUser;
- SetPosition(100, 100, 300, 230);
-
- // create a image list
- imagelist := TfpgImageList.Create;
- imagelist.AddItemFromFile(SetDirSeparators('../../../images/folder_16.bmp'), 0);
- imagelist.AddItemFromFile(SetDirSeparators('../../../images/menu_preferences_16.bmp'), 1);
- imagelist.Item[1].Image.CreateMaskFromSample(0, 0);
- imagelist.Item[1].Image.UpdateImage;
-
- // create a treeview
- tree := TfpgTreeView.Create(self);
- tree.SetPosition(8, 8, Width-16, 200-16);
- tree.Anchors := [anTop, anLeft, anRight, anBottom];
-// tree.ShowColumns := True;
-// tree.TreeLineStyle := lsSolid;
- tree.ScrollWheelDelta := 30;
- tree.ImageList := imagelist;
- tree.ShowImages := True;
-
n := tree.RootNode.AppendText('Node 1');
+
n.ImageIndex := 0;
n.AppendText('Node 1.1').ImageIndex := 1;
n.AppendText('Node 1.2').ImageIndex := 1;
@@ -100,27 +92,96 @@ begin
n2.AppendText('Child 1').AppendText('Child 2');
n2.Collapsed := False;
end;
-
- // create a checkbox
- cbShowImages := CreateCheckBox(self, 8, 204, 'Show images');
- cbShowImages.Checked := True;
- cbShowImages.OnChange := @cbShowImagesChange;
- cbShowImages.Anchors := [anLeft, anBottom];
-
- // create a checkbox
- cbIndentNode := CreateCheckBox(self, 120, 204, 'Indent node with no image');
- cbIndentNode.Checked := True;
- cbIndentNode.OnChange := @cbIndentNodeChange;
- cbIndentNode.Anchors := [anLeft, anBottom];
+end;
+
+procedure TMainForm.cbShowImagesChange(Sender: TObject);
+begin
+ tree.ShowImages := cbShowImages.Checked;
+end;
+
+constructor TMainForm.Create(AOwner: TComponent);
+begin
+ inherited Create(AOwner);
+ // create a image list
+ FImagelist := TfpgImageList.Create;
+ FImagelist.AddItemFromFile(SetDirSeparators('../../../images/folder_16.bmp'), 0);
+ FImagelist.AddItemFromFile(SetDirSeparators('../../../images/menu_preferences_16.bmp'), 1);
+ FImagelist.Item[1].Image.CreateMaskFromSample(0, 0);
+ FImagelist.Item[1].Image.UpdateImage;
end;
destructor TMainForm.Destroy;
begin
tree.ImageList := nil;
- imagelist.Free;
+ FImagelist.Free;
inherited Destroy;
end;
+procedure TMainForm.AfterCreate;
+begin
+ inherited AfterCreate;
+ {@VFD_BODY_BEGIN: MainForm}
+ Name := 'MainForm';
+ SetPosition(294, 174, 300, 250);
+ WindowTitle := 'Treeview Test';
+ WindowPosition := wpScreenCenter;
+
+ tree := TfpgTreeView.Create(self);
+ with tree do
+ begin
+ Name := 'tree';
+ SetPosition(8, 8, 284, 184);
+ Anchors := [anLeft,anRight,anTop,anBottom];
+ FontDesc := '#Label1';
+ ScrollWheelDelta := 30;
+ ShowImages := True;
+ ImageList := FImagelist;
+ end;
+
+ cbShowImages := TfpgCheckBox.Create(self);
+ with cbShowImages do
+ begin
+ Name := 'cbShowImages';
+ SetPosition(8, 200, 109, 20);
+ Anchors := [anLeft,anBottom];
+ Checked := True;
+ FontDesc := '#Label1';
+ TabOrder := 1;
+ Text := 'Show images';
+ OnChange := @cbShowImagesChange;
+ end;
+
+ cbIndentNode := TfpgCheckBox.Create(self);
+ with cbIndentNode do
+ begin
+ Name := 'cbIndentNode';
+ SetPosition(120, 200, 179, 20);
+ Anchors := [anLeft,anBottom];
+ Checked := True;
+ FontDesc := '#Label1';
+ TabOrder := 2;
+ Text := 'Indent node with no image';
+ OnChange := @cbIndentNodeChange;
+ end;
+
+ btnClear := TfpgButton.Create(self);
+ with btnClear do
+ begin
+ Name := 'btnClear';
+ SetPosition(8, 222, 144, 23);
+ Text := 'Clear Selected Node';
+ FontDesc := '#Label1';
+ Hint := '';
+ ImageName := '';
+ TabOrder := 3;
+ OnClick := @btnClearClicked;
+ end;
+
+ {@VFD_BODY_END: MainForm}
+
+ PopulateTree;
+end;
+
procedure MainProc;
var