From d0b21a465b4900257e2a11d7d6fd144412e49cfb Mon Sep 17 00:00:00 2001 From: wp_xyz Date: Mon, 27 Dec 2021 23:43:05 +0100 Subject: [PATCH] Examples: Replace lfm-less ListViewTest demo by version with lfm form. --- examples/listviewtest.lpi | 64 ++++++++++---- examples/listviewtest.lpr | 26 ++++++ examples/listviewtest.pp | 166 ----------------------------------- examples/listviewtestfrm.lfm | 64 ++++++++++++++ examples/listviewtestfrm.pas | 68 ++++++++++++++ 5 files changed, 203 insertions(+), 185 deletions(-) create mode 100644 examples/listviewtest.lpr delete mode 100644 examples/listviewtest.pp create mode 100644 examples/listviewtestfrm.lfm create mode 100644 examples/listviewtestfrm.pas diff --git a/examples/listviewtest.lpi b/examples/listviewtest.lpi index 820b0ee2f1..01301049e2 100644 --- a/examples/listviewtest.lpi +++ b/examples/listviewtest.lpi @@ -1,48 +1,61 @@ - + + - - + - + + + <Scaled Value="True"/> + <ResourceType Value="res"/> + <UseXPManifest Value="True"/> + <XPManifest> + <DpiAware Value="True"/> + </XPManifest> + <Icon Value="0"/> </General> <BuildModes Count="1"> - <Item1 Name="default" Default="True"/> + <Item1 Name="Default" Default="True"/> </BuildModes> <PublishOptions> <Version Value="2"/> - <IgnoreBinaries Value="False"/> - <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/> - <ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/> + <UseFileFilters Value="True"/> </PublishOptions> <RunParams> - <local> - <FormatVersion Value="1"/> - </local> + <FormatVersion Value="2"/> </RunParams> <RequiredPackages Count="1"> <Item1> <PackageName Value="LCL"/> </Item1> </RequiredPackages> - <Units Count="1"> + <Units Count="2"> <Unit0> - <Filename Value="listviewtest.pp"/> + <Filename Value="listviewtest.lpr"/> <IsPartOfProject Value="True"/> - <UnitName Value="ListViewTest"/> - <IsVisibleTab Value="True"/> - <CursorPos X="51" Y="24"/> - <UsageCount Value="20"/> - <Loaded Value="True"/> - <LoadedDesigner Value="True"/> </Unit0> + <Unit1> + <Filename Value="listviewtestfrm.pas"/> + <IsPartOfProject Value="True"/> + <ComponentName Value="MyForm"/> + <ResourceBaseClass Value="Form"/> + <UnitName Value="ListViewTestFrm"/> + </Unit1> </Units> </ProjectOptions> <CompilerOptions> <Version Value="11"/> + <PathDelim Value="\"/> + <Target> + <Filename Value="listviewtest"/> + </Target> + <SearchPaths> + <IncludeFiles Value="$(ProjOutDir)"/> + <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> + </SearchPaths> <Linking> <Options> <Win32> @@ -51,4 +64,17 @@ </Options> </Linking> </CompilerOptions> + <Debugging> + <Exceptions Count="3"> + <Item1> + <Name Value="EAbort"/> + </Item1> + <Item2> + <Name Value="ECodetoolError"/> + </Item2> + <Item3> + <Name Value="EFOpenError"/> + </Item3> + </Exceptions> + </Debugging> </CONFIG> diff --git a/examples/listviewtest.lpr b/examples/listviewtest.lpr new file mode 100644 index 0000000000..f1c97ec992 --- /dev/null +++ b/examples/listviewtest.lpr @@ -0,0 +1,26 @@ +program listviewtest; + +{$mode objfpc}{$H+} + +uses + {$IFDEF UNIX} + cthreads, + {$ENDIF} + {$IFDEF HASAMIGA} + athreads, + {$ENDIF} + Interfaces, // this includes the LCL widgetset + Forms, ListViewTestFrm + { you can add units after this }; + +{$R *.res} + +begin + RequireDerivedFormResource:=True; + Application.Title:='project1'; + Application.Scaled:=True; + Application.Initialize; + Application.CreateForm(TMyForm, MyForm); + Application.Run; +end. + diff --git a/examples/listviewtest.pp b/examples/listviewtest.pp deleted file mode 100644 index 905238ebef..0000000000 --- a/examples/listviewtest.pp +++ /dev/null @@ -1,166 +0,0 @@ -{ - /*************************************************************************** - ListViewTest.pp - ------------------- - Test aplication for list views - Initial Revision : Sun Dec 31 17:30:00:00 CET 2000 - - - - - ***************************************************************************/ - - *************************************************************************** - * * - * This source is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This code is distributed in the hope that it will be useful, but * - * WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * - * General Public License for more details. * - * * - * A copy of the GNU General Public License is available on the World * - * Wide Web at <http://www.gnu.org/copyleft/gpl.html>. You can also * - * obtain it by writing to the Free Software Foundation, * - * Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1335, USA. * - * * - *************************************************************************** -} - -program ListViewTest; - -{$mode objfpc}{$H+} - -uses - Interfaces, Classes, Buttons, Controls, ComCtrls, Forms, SysUtils, - Graphics, StdCtrls; - -type - TMyForm = class(TForm) - private - FItemIndex: Cardinal; - public - ListView: TListView; - Button1: TButton; - Button2: TButton; - Edit1: TEdit; - Edit2: TEdit; - constructor Create(AOwner: TComponent); override; - procedure Button1Click(Sender: TObject); - procedure Button2Click(Sender: TObject); - procedure Edit1Change(Sender: TObject); - procedure Edit2Change(Sender: TObject); - end; - -var - MyForm: TMyForm; - -constructor TMyForm.Create(AOwner: TComponent); -begin - inherited CreateNew(AOwner, 1); - - Caption := 'List View Test'; - Width := 300; - Height := 200; - - ListView := TListView.Create(Self); - ListView.Parent := Self; - ListView.Height := 150; - ListView.Align := alTop; - ListView.ViewStyle := vsReport; - ListView.Show; - - ListView.Columns.Add.Caption := 'Column 1'; - ListView.Columns.Add.Caption := 'Column 2'; - ListView.Columns.Add.Caption := 'Column 3'; - - Button1 := TButton.Create(Self); - with Button1 do - begin - Parent := Self; - Caption := 'Add Item'; - Top := 160; - Left := 10; - Height := 25; - Width := 65; - OnClick := @Button1Click; - Show; - end; - - Button2 := TButton.Create(Self); - with Button2 do - begin - Parent := Self; - Caption := 'Del Item'; - Top := 160; - Left := 80; - Height := 25; - Width := 65; - OnClick := @Button2Click; - Show; - end; - - Edit1 := TEdit.Create(Self); - with Edit1 do - begin - Parent := Self; - Top := 160; - Left := 150; - Height := 25; - Width := 65; - OnChange := @Edit1Change; - Show; - end; - - Edit2 := TEdit.Create(Self); - with Edit2 do - begin - Parent := Self; - Top := 160; - Left := 220; - Height := 25; - Width := 65; - OnChange := @Edit2Change; - Show; - end; - - Show; -end; - -procedure TMyForm.Button1Click(Sender: TObject); -var - Item: TListItem; -begin - Inc(FItemIndex); - Item := ListView.Items.Add; - Item.Caption := Format('Item %d', [FItemIndex]); - Item.SubItems.Add(Format('Sub %d.1', [FItemIndex])); - Item.SubItems.Add(Format('Sub %d.2', [FItemIndex])); -end; - -procedure TMyForm.Button2Click(Sender: TObject); -begin - ListView.Selected.Free; -end; - -procedure TMyForm.Edit1Change(Sender: TObject); -begin - if ListView.Selected = nil then Exit; - ListView.Selected.Caption := Edit1.Text; -end; - -procedure TMyForm.Edit2Change(Sender: TObject); -begin - if ListView.Selected = nil then Exit; - ListView.Selected.SubItems[0] := Edit2.Text; -end; - -begin - Application.Initialize; - Application.CreateForm(TMyForm, MyForm); - Application.Run; -end. - diff --git a/examples/listviewtestfrm.lfm b/examples/listviewtestfrm.lfm new file mode 100644 index 0000000000..5bddf5d801 --- /dev/null +++ b/examples/listviewtestfrm.lfm @@ -0,0 +1,64 @@ +object MyForm: TMyForm + Left = 270 + Height = 200 + Top = 131 + Width = 300 + Caption = 'ListView Test' + ClientHeight = 200 + ClientWidth = 300 + LCLVersion = '2.3.0.0' + object ListView: TListView + Left = 0 + Height = 150 + Top = 0 + Width = 300 + Align = alTop + Columns = < + item + Caption = 'Column 1' + end + item + Caption = 'Column 2' + end + item + Caption = 'Column 3' + end> + HideSelection = False + TabOrder = 0 + ViewStyle = vsReport + end + object Button1: TButton + Left = 10 + Height = 25 + Top = 160 + Width = 65 + Caption = 'Add Item' + OnClick = Button1Click + TabOrder = 1 + end + object Button2: TButton + Left = 80 + Height = 25 + Top = 160 + Width = 65 + Caption = 'Del Item' + OnClick = Button2Click + TabOrder = 2 + end + object Edit1: TEdit + Left = 150 + Height = 23 + Top = 160 + Width = 65 + OnChange = Edit1Change + TabOrder = 3 + end + object Edit2: TEdit + Left = 220 + Height = 23 + Top = 160 + Width = 65 + OnChange = Edit2Change + TabOrder = 4 + end +end diff --git a/examples/listviewtestfrm.pas b/examples/listviewtestfrm.pas new file mode 100644 index 0000000000..1431e6317b --- /dev/null +++ b/examples/listviewtestfrm.pas @@ -0,0 +1,68 @@ +unit ListViewTestFrm; + +{$mode objfpc}{$H+} + +interface + +uses + Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ComCtrls, StdCtrls; + +type + + { TMyForm } + + TMyForm = class(TForm) + Button1: TButton; + Button2: TButton; + Edit1: TEdit; + Edit2: TEdit; + ListView: TListView; + procedure Button1Click(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure Edit1Change(Sender: TObject); + procedure Edit2Change(Sender: TObject); + private + FItemIndex: Cardinal; + public + + end; + +var + MyForm: TMyForm; + +implementation + +{$R *.lfm} + +{ TMyForm } + +procedure TMyForm.Button1Click(Sender: TObject); +var + Item: TListItem; +begin + Inc(FItemIndex); + Item := ListView.Items.Add; + Item.Caption := Format('Item %d', [FItemIndex]); + Item.SubItems.Add(Format('Sub %d.1', [FItemIndex])); + Item.SubItems.Add(Format('Sub %d.2', [FItemIndex])); +end; + +procedure TMyForm.Button2Click(Sender: TObject); +begin + ListView.Selected.Free; +end; + +procedure TMyForm.Edit1Change(Sender: TObject); +begin + if ListView.Selected = nil then Exit; + ListView.Selected.Caption := Edit1.Text; +end; + +procedure TMyForm.Edit2Change(Sender: TObject); +begin + if ListView.Selected = nil then Exit; + ListView.Selected.SubItems[0] := Edit2.Text; +end; + +end. +