diff options
Diffstat (limited to 'examples/gui')
-rw-r--r-- | examples/gui/treeviewtest/stateimages.pas | 130 | ||||
-rw-r--r-- | examples/gui/treeviewtest/treeviewtest.lpi | 26 | ||||
-rw-r--r-- | examples/gui/treeviewtest/treeviewtest.lpr | 74 |
3 files changed, 217 insertions, 13 deletions
diff --git a/examples/gui/treeviewtest/stateimages.pas b/examples/gui/treeviewtest/stateimages.pas new file mode 100644 index 00000000..3c3c5ee7 --- /dev/null +++ b/examples/gui/treeviewtest/stateimages.pas @@ -0,0 +1,130 @@ +unit stateimages; + +interface + +procedure InitializeCustomImages; + +implementation + +uses + fpg_main; + +Const + usr_state0 : Array[0..821] of byte = ( + 66, 77, 54, 3, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 40, 0, 0, + 0, 16, 0, 0, 0, 16, 0, 0, 0, 1, 0, 24, 0, 0, 0, 0, 0, + 0, 3, 0, 0,100, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132, + 132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,132,132,132, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,132,132,132,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,132,132,132,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,132,132,132,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,132,132,132,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,132,132,132,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,132,132,132,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,132,132,132,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,132,132,132,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,132,132, + 132,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,132, + 132,132,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,132,132,132,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,132,132,132,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,132,132,132,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,132,132,132,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,132,132,132,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,132,132,132,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,132,132,132,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,132,132,132,132,132,132,132,132,132,132,132,132,132, + 132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132, + 132,132,132,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255); + +Const + usr_state1 : Array[0..821] of byte = ( + 66, 77, 54, 3, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 40, 0, 0, + 0, 16, 0, 0, 0, 16, 0, 0, 0, 1, 0, 24, 0, 0, 0, 0, 0, + 0, 3, 0, 0,100, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132, + 132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,132,132,132, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,132,132,132,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,132,132,132,255,255,255, + 255,255,255,255,255,255, 0, 0, 0,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,132,132,132,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,132,132,132,255,255,255,255,255,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,255,255,255, + 255,255,255,255,132,132,132,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,132,132,132,255,255,255, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,255,255,255, + 255,132,132,132,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,132,132,132,255,255,255, 0, 0, 0, 0, 0, 0,255,255,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,255,132,132, + 132,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,132, + 132,132,255,255,255, 0, 0, 0,255,255,255,255,255,255,255,255,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,132,132,132,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,132,132,132,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 0, 0, 0, 0, 0, 0,255,255,255,132,132,132,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,132,132,132,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 0, 0, 0,255,255,255,132,132,132,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,132,132,132,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,132,132,132,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,132,132,132,132,132,132,132,132,132,132,132,132,132, + 132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132, + 132,132,132,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255); + + +procedure InitializeCustomImages; +begin + fpgImages.AddMaskedBMP( + 'usr.state0', + @usr_state0, + sizeof(usr_state0), 0,0); + + fpgImages.AddMaskedBMP( + 'usr.state1', + @usr_state1, + sizeof(usr_state1), 0,0); +end; + +end. diff --git a/examples/gui/treeviewtest/treeviewtest.lpi b/examples/gui/treeviewtest/treeviewtest.lpi index 5f459bb9..6c19a1a9 100644 --- a/examples/gui/treeviewtest/treeviewtest.lpi +++ b/examples/gui/treeviewtest/treeviewtest.lpi @@ -1,19 +1,21 @@ <?xml version="1.0"?> <CONFIG> <ProjectOptions> - <PathDelim Value="/"/> - <Version Value="6"/> + <Version Value="9"/> <General> <Flags> <SaveOnlyProjectUnits Value="True"/> + <LRSInOutputDirectory Value="False"/> </Flags> <SessionStorage Value="InProjectDir"/> <MainUnit Value="0"/> - <TargetFileExt Value=""/> </General> <VersionInfo> - <ProjectVersion Value=""/> + <StringTable ProductVersion=""/> </VersionInfo> + <BuildModes Count="1"> + <Item1 Name="default" Default="True"/> + </BuildModes> <PublishOptions> <Version Value="2"/> <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/> @@ -30,24 +32,32 @@ <PackageName Value="fpgui_toolkit"/> </Item1> </RequiredPackages> - <Units Count="1"> + <Units Count="2"> <Unit0> <Filename Value="treeviewtest.lpr"/> <IsPartOfProject Value="True"/> <UnitName Value="treeviewtest"/> </Unit0> + <Unit1> + <Filename Value="stateimages.pas"/> + <IsPartOfProject Value="True"/> + <UnitName Value="stateimages"/> + </Unit1> </Units> </ProjectOptions> <CompilerOptions> - <Version Value="8"/> + <Version Value="9"/> <Parsing> <SyntaxOptions> <CStyleOperator Value="False"/> + <UseAnsiStrings Value="False"/> </SyntaxOptions> </Parsing> <Other> - <CustomOptions Value="-FUunits -"/> + <CompilerMessages> + <UseMsgFile Value="True"/> + </CompilerMessages> + <CustomOptions Value="-FUunits"/> <CompilerPath Value="$(CompPath)"/> </Other> </CompilerOptions> diff --git a/examples/gui/treeviewtest/treeviewtest.lpr b/examples/gui/treeviewtest/treeviewtest.lpr index bca0a91d..3e1ac6ff 100644 --- a/examples/gui/treeviewtest/treeviewtest.lpr +++ b/examples/gui/treeviewtest/treeviewtest.lpr @@ -18,7 +18,8 @@ uses fpg_label, fpg_dialogs, fpg_combobox, - fpg_utils; + fpg_utils, + stateimages; type @@ -45,8 +46,10 @@ type Label8: TfpgLabel; btnCollapseAll: TfpgButton; btnExpandAll: TfpgButton; + btnShowChecked: TfpgButton; {@VFD_HEAD_END: MainForm} FImagelist: TfpgImageList; + FStateImagelist: TfpgImageList; FSrcNode: TfpgTreeNode; FDestnode: TfpgTreeNode; procedure cbShowImagesChange(Sender: TObject); @@ -59,6 +62,8 @@ type procedure btnMoveToClicked(Sender: TObject); procedure btnCollapseAllClicked(Sender: TObject); procedure btnExpandAllClicked(Sender: TObject); + procedure StateImageClicked(Sender: TObject; ANode: TfpgTreeNode); + procedure btnShowCheckedClicked(Sender: TObject); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; @@ -122,8 +127,13 @@ begin n := tree.RootNode.AppendText('Node 1'); n.ImageIndex := 0; - n.AppendText('Node 1.1').ImageIndex := 1; - n.AppendText('Node 1.2').ImageIndex := 1; + n.StateImageIndex := 1; + n2 := n.AppendText('Node 1.1'); + n2.ImageIndex := 1; + n2.StateImageIndex := 1; + n2 := n.AppendText('Node 1.2'); + n2.ImageIndex := 1; + n2.StateImageIndex := 0; n := tree.RootNode.AppendText('Node 2'); n.ImageIndex := 0; n.AppendText('Node 2.1').ImageIndex := 1; @@ -137,7 +147,8 @@ begin else n.AppendText(s); end; - n.Parent.AppendText('Node 2.3'); + n2 := n.Parent.AppendText('Node 2.3'); + n2.StateImageIndex := 0; tree.RootNode.FirstSubNode.Next.Collapse; tree.RootNode.AppendText('Node 3').ImageIndex := 0; tree.Selection := n; @@ -198,6 +209,31 @@ begin TreeNodeChanged(nil); end; +procedure TMainForm.StateImageClicked(Sender: TObject; ANode: TfpgTreeNode); +begin + case ANode.StateImageIndex of + 0: ANode.StateImageIndex := 1; + 1: ANode.StateImageIndex := 0; + end; + tree.Invalidate; +end; + +procedure TMainForm.btnShowCheckedClicked(Sender: TObject); +var + n: TfpgTreeNode; + s: string; +begin + s := 'These are all the nodes that have checkboxes and are checked:' + LineEnding; + n := tree.RootNode; + while n <> nil do + begin + if n.StateImageIndex = 1 then + s += LineEnding + n.Text; + n := Tree.NextNode(n); + end; + ShowMessage(s); +end; + procedure TMainForm.cbShowImagesChange(Sender: TObject); begin tree.ShowImages := cbShowImages.Checked; @@ -216,12 +252,24 @@ begin FImagelist.Items[1].Image.CreateMaskFromSample(0, 0); FImagelist.Items[1].Image.UpdateImage; end; + + InitializeCustomImages; + FStateImagelist := TfpgImageList.Create; + FStateImagelist.AddImage(fpgImages.GetImage('usr.state0')); + FStateImagelist.AddImage(fpgImages.GetImage('usr.state1')); + end; destructor TMainForm.Destroy; +var + i: integer; begin tree.ImageList := nil; + tree.StateImageList := nil; FImagelist.Free; + for i := FStateImageList.Count-1 downto 0 do + FStateImageList[i].Image := nil; + FStateImageList.Free; inherited Destroy; end; @@ -247,7 +295,9 @@ begin ShowImages := True; TabOrder := 0; ImageList := FImagelist; + StateImageList := FStateImagelist; OnChange := @TreeNodeChanged; + OnStateImageClicked := @StateImageClicked; end; cbShowImages := TfpgCheckBox.Create(self); @@ -406,6 +456,7 @@ begin begin Name := 'cbMoveToTypes'; SetPosition(612, 172, 96, 22); + ExtraHint := ''; FontDesc := '#List'; Hint := ''; Items.Add('naAdd'); @@ -413,8 +464,8 @@ begin Items.Add('naAddChild'); Items.Add('naAddChildFirst'); Items.Add('naInsert'); - TabOrder := 14; FocusItem := 0; + TabOrder := 14; end; Label6 := TfpgLabel.Create(self); @@ -473,6 +524,19 @@ begin OnClick := @btnExpandAllClicked; end; + btnShowChecked := TfpgButton.Create(self); + with btnShowChecked do + begin + Name := 'btnShowChecked'; + SetPosition(160, 304, 100, 24); + Text := 'Show Checked'; + FontDesc := '#Label1'; + Hint := ''; + ImageName := ''; + TabOrder := 21; + OnClick := @btnShowCheckedClicked; + end; + {@VFD_BODY_END: MainForm} PopulateTree; |