diff --git a/components/jvcllaz/examples/JvThumbnail/JvThumbnailChildFormU.lfm b/components/jvcllaz/examples/JvThumbnail/JvThumbnailChildFormU.lfm
index 947bfef75..ee536e1a2 100644
--- a/components/jvcllaz/examples/JvThumbnail/JvThumbnailChildFormU.lfm
+++ b/components/jvcllaz/examples/JvThumbnail/JvThumbnailChildFormU.lfm
@@ -44,8 +44,10 @@ object JvThumbnailChildForm: TJvThumbnailChildForm
Color = clDefault
FileSortType = fstNone
HideSelection = False
+ Images = DataModule1.ImageList1
ReadOnly = True
TabOrder = 0
+ OnGetImageIndex = ShellTreeViewGetImageIndex
Options = [tvoAutoItemHeight, tvoKeepCollapsedNodes, tvoReadOnly, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips, tvoThemedDraw]
ObjectTypes = [otFolders]
ShellListView = ShellListView
@@ -233,6 +235,7 @@ object JvThumbnailChildForm: TJvThumbnailChildForm
Top = 124
Width = 236
Align = alTop
+ AutoSize = True
BevelOuter = bvNone
Caption = 'Panel10'
ClientHeight = 23
@@ -240,7 +243,7 @@ object JvThumbnailChildForm: TJvThumbnailChildForm
TabOrder = 3
OnResize = Panel10Resize
object FilterComboBox1: TFilterComboBox
- Left = 2
+ Left = 0
Height = 23
Top = 0
Width = 235
diff --git a/components/jvcllaz/examples/JvThumbnail/JvThumbnailChildFormU.pas b/components/jvcllaz/examples/JvThumbnail/JvThumbnailChildFormU.pas
index 9cefa16fc..86db0fdcf 100644
--- a/components/jvcllaz/examples/JvThumbnail/JvThumbnailChildFormU.pas
+++ b/components/jvcllaz/examples/JvThumbnail/JvThumbnailChildFormU.pas
@@ -36,6 +36,9 @@ uses
JvThumbImage, JvThumbNails, JvBaseThumbnail, JvExExtCtrls;
type
+
+ { TJvThumbnailChildForm }
+
TJvThumbnailChildForm = class(TForm)
Splitter2: TSplitter;
Panel6: TPanel;
@@ -81,6 +84,7 @@ type
procedure Panel8Resize(Sender: TObject);
procedure BtnInvertClick(Sender: TObject);
procedure Button5Click(Sender: TObject);
+ procedure ShellTreeViewGetImageIndex(Sender: TObject; Node: TTreeNode);
procedure thumbnail1Click(Sender: TObject);
procedure Panel10Resize(Sender: TObject);
procedure FormShow(Sender: TObject);
@@ -97,6 +101,9 @@ implementation
{$R *.lfm}
+uses
+ JvThumbnailDatamodule;
+
procedure TJvThumbnailChildForm.Button2Click(Sender: TObject);
begin
ThumbImage1.ChangeRGB(redbar.Position,greenbar.Position,bluebar.Position);
@@ -120,6 +127,15 @@ begin
end;
end;
+procedure TJvThumbnailChildForm.ShellTreeViewGetImageIndex(Sender: TObject;
+ Node: TTreeNode);
+begin
+ if Node.Level = 0 then
+ Node.ImageIndex := 0
+ else
+ Node.ImageIndex := 1;
+end;
+
procedure TJvThumbnailChildForm.CbAsButtonClick(Sender: TObject);
begin
THumbnail1.Asbutton := CbAsButton.Checked;
diff --git a/components/jvcllaz/examples/JvThumbnail/JvThumbnailDemo.lpi b/components/jvcllaz/examples/JvThumbnail/JvThumbnailDemo.lpi
index ad3882fe6..6b5107536 100644
--- a/components/jvcllaz/examples/JvThumbnail/JvThumbnailDemo.lpi
+++ b/components/jvcllaz/examples/JvThumbnail/JvThumbnailDemo.lpi
@@ -33,7 +33,7 @@
-
+
@@ -52,6 +52,13 @@
+
+
+
+
+
+
+
diff --git a/components/jvcllaz/examples/JvThumbnail/JvThumbnailDemo.lpr b/components/jvcllaz/examples/JvThumbnail/JvThumbnailDemo.lpr
index 54bdde546..0ade75895 100644
--- a/components/jvcllaz/examples/JvThumbnail/JvThumbnailDemo.lpr
+++ b/components/jvcllaz/examples/JvThumbnail/JvThumbnailDemo.lpr
@@ -1,13 +1,14 @@
program JvThumbnailDemo;
uses
- Forms, Interfaces, JvThumbnailMainFormU, JvThumbnailChildFormU {JvThumbnailMainForm};
+ Forms, Interfaces, JvThumbnailMainFormU, JvThumbnailChildFormU, JvThumbnailDatamodule {JvThumbnailMainForm};
{$R *.RES}
begin
Application.Scaled := True;
Application.Initialize;
+ Application.CreateForm(TDataModule1, DataModule1);
Application.CreateForm(TJvThumbnailMainForm, JvThumbnailMainForm);
// Application.CreateForm(TJvThumbnailChildForm, JvThumbnailChildForm);
Application.Run;
diff --git a/components/jvcllaz/examples/JvThumbnail/JvThumbnailMainFormU.lfm b/components/jvcllaz/examples/JvThumbnail/JvThumbnailMainFormU.lfm
index 4f696eef0..27f3901cb 100644
--- a/components/jvcllaz/examples/JvThumbnail/JvThumbnailMainFormU.lfm
+++ b/components/jvcllaz/examples/JvThumbnail/JvThumbnailMainFormU.lfm
@@ -282,9 +282,11 @@ object JvThumbnailMainForm: TJvThumbnailMainForm
Align = alClient
FileSortType = fstNone
HideSelection = False
+ Images = DataModule1.ImageList1
ReadOnly = True
TabOrder = 0
OnChange = ShellTreeViewChange
+ OnGetImageIndex = ShellTreeViewGetImageIndex
Options = [tvoAutoItemHeight, tvoKeepCollapsedNodes, tvoReadOnly, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips, tvoThemedDraw]
ObjectTypes = [otFolders]
end
diff --git a/components/jvcllaz/examples/JvThumbnail/JvThumbnailMainFormU.pas b/components/jvcllaz/examples/JvThumbnail/JvThumbnailMainFormU.pas
index df302065a..abcf88b82 100644
--- a/components/jvcllaz/examples/JvThumbnail/JvThumbnailMainFormU.pas
+++ b/components/jvcllaz/examples/JvThumbnail/JvThumbnailMainFormU.pas
@@ -32,8 +32,8 @@ interface
uses
Classes, Controls, Forms, StdCtrls, ExtCtrls, FileCtrl, ComCtrls, Spin, ShellCtrls,
- JvThumbNails, {JvSpecialProgress, }JvThumbViews, JvBaseThumbnail;
- {
+ JvThumbNails, JvThumbViews, JvBaseThumbnail, JvThumbnailDatamodule;
+ {JvSpecialProgress,
JvListBox, JvDriveCtrls, JvCombobox, JvExControls, JvComponent,
JvExStdCtrls, JvExForms; }
@@ -69,6 +69,7 @@ type
ProgressBar: TProgressBar;
Bevel1: TBevel;
procedure ShellTreeViewChange(Sender: TObject; Node: TTreeNode);
+ procedure ShellTreeViewGetImageIndex(Sender: TObject; Node: TTreeNode);
procedure ThumbViewKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure ThumbViewMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
@@ -194,6 +195,16 @@ begin
NewDir := True;
end;
+procedure TJvThumbnailMainForm.ShellTreeViewGetImageIndex(Sender: TObject;
+ Node: TTreeNode);
+begin
+ if Node.Level = 0 then
+ Node.ImageIndex := 0
+ else
+ Node.ImageIndex := 1;
+ Node.SelectedIndex := Node.ImageIndex;
+end;
+
procedure TJvThumbnailMainForm.FormShow(Sender: TObject);
begin
CbAutoScrolling.Checked := ThumbView.AutoScrolling;
diff --git a/components/jvcllaz/examples/JvThumbnail/jvthumbnaildatamodule.lfm b/components/jvcllaz/examples/JvThumbnail/jvthumbnaildatamodule.lfm
new file mode 100644
index 000000000..1ee73d578
--- /dev/null
+++ b/components/jvcllaz/examples/JvThumbnail/jvthumbnaildatamodule.lfm
@@ -0,0 +1,79 @@
+object DataModule1: TDataModule1
+ OldCreateOrder = False
+ Height = 214
+ HorizontalOffset = 562
+ VerticalOffset = 315
+ Width = 366
+ PPI = 96
+ object ImageList1: TImageList
+ left = 80
+ top = 58
+ Bitmap = {
+ 4C69020000001000000010000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF009F9D9B009D9A98009E9C9A009E9C9AFFA5A3
+ A1FFA5A3A1FFA5A3A1FFA5A3A1FFA5A3A1FFA5A3A1FFA5A3A1FFA5A3A1FF9E9C
+ 9AFF9E9C9A009D9A98009F9D9B009F9D9B009B989600999795FFE4E3E2FFC6C4
+ C2FFC6C4C2FFC6C4C2FFC6C4C2FFC6C4C2FFC6C4C2FFC6C4C2FFC6C4C2FFE4E3
+ E2FF999795FF9B9896009F9D9B009D9B9900969390FFE5E4E3FFC7C4C2FFC7C4
+ C2FFC7C5C3FFC7C5C3FFC7C5C3FFC7C5C3FFC7C5C3FFC7C5C3FFC7C4C2FFC7C4
+ C2FFE5E4E3FF969390FF9D9B99009A9896AAEFEEEFFFEBEAEAFFEAE9EAFFEAE9
+ EAFFEAE9EAFFEAE9EAFFEAE9EAFFEAE9EAFFEAE9EAFFEAE9EAFFEAE9EAFFEAE9
+ EAFFEBEAEAFFEFEEEFFF9A9896AA969492FFE3E1E0FF9D9997FF9D9997FF9C99
+ 97FF9C9997FF9C9997FF9C9997FF9C9997FF9C9997FF9C9997FF9C9997FF9D99
+ 97FF9D9997FFE3E1E0FF969492FF93918FFFDCDBD9FFA6A3A0FFE6E4E4FFE5E3
+ E4FFE5E4E4FFE6E4E4FFE6E4E4FFE6E4E4FFE6E4E4FFE5E4E4FFE5E3E4FFE6E4
+ E4FFA6A3A0FFDCDBD9FF93918FFF908E8CFFD7D5D4FFAEACAAFFE1DFE0FFB0AD
+ ABFFB1AEACFFB2AEACFFB2AEACFFB2AEACFFB2AEACFFB1AEACFFB0ADABFFE1DF
+ E0FFAEACAAFFD7D5D4FF908E8CFF8D8A88FFD4D2D1FFB7B4B2FFD2D0D0FFC3C1
+ BFFFC4C2C0FFC4C2C0FFC4C2C0FFC4C2C0FFC4C2C0FFC4C2C0FFC3C1BFFFD2D0
+ D0FFB7B4B2FFD4D2D1FF8D8A88FF8A8785FFD2D0CFFFC1BFBDFFAEACAAFFAFAD
+ ABFFAFADABFFAFADABFFAFADABFFAFADABFFAFADABFFAFADABFFAFADABFFAEAC
+ AAFFC1BFBDFFD2D0CFFF8A8785FF888583FFD6D4D2FFCECCCAFFCECCCAFFCECC
+ CAFFCECCCAFFCECCCAFFCECCCAFFCECCCAFFCECCCAFFCECCCAFFCECCCAFFCECC
+ CAFFCECCCAFFD6D4D2FF888583FF7D7A78C084817FFF83807EFF83807EFF8380
+ 7EFF83807EFF83807EFF83807EFF83807EFF83807EFF83807EFF83807EFF8380
+ 7EFF83807EFF84817FFF7D7A78C0000000230000003300000033000000330000
+ 0033000000330000003300000033000000330000003300000033000000330000
+ 0033000000330000003300000023FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00459AD3EF4498D2FF4197
+ D1FF3F95D1FF3D94D0FF3B93D0FF3B92CFFF3B92CFFF3B92CFFF3D94D0FF4398
+ D2EF00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF004297D2FF3B93D0FF62AD
+ DCFF93CDEDFFBBE7FAFFD9FCFFFFD9FAFFFFD7F9FFFFD7F9FFFFD9FBFFFF3D94
+ D0FF00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF003C93D0FFE9FFFFFFA8DA
+ F3FF7BBDE4FF4398D1FF3493D1FF46AAE0FF53BDEBFF61D3FBFFCEF8FFFF3B92
+ CFFF00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF003991CFFFE9FFFFFFAFF0
+ FFFFCEF7FFFFDAFAFFFFC5EBFBFF90C8EAFF66ADDBFF47A8DDFFCBF8FFFF3C92
+ CFFF00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF003A91CEFFD2FCFFFF7AE2
+ FCFF77DDFCFF7FDFFBFF9BE6FCFFB4EDFFFFD8FAFFFF318ACBFFC6F8FFFF3D93
+ CFFF00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF003B91CEFFC9F9FFFF7EE2
+ FCFF7CDEFCFF78DCFBFF72D9FAFF6AD6FAFFD4F7FFFF318ACBFFC1F8FFFF3D93
+ CFFF00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF003C91CEFFC0F8FFFF7FE2
+ FCFF7DDFFCFF7ADDFBFF75DAFAFF6DD7FAFFC7F3FFFF338BCBFFBCF7FFFF3D92
+ CFFF00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF003C92CEFFB6F6FFFF80E3
+ FCFF7DDFFCFF7ADDFBFF76DAFAFF6ED7FAFFBAEFFFFF338BCBFFB5F7FFFF3A8F
+ CDFF4397D1E7FFFFFF00FFFFFF00FFFFFF00FFFFFF003D92CEFFADF3FFFF81E3
+ FCFF7EDFFCFF7ADDFBFF76DAFAFF6FD8FAFFADEBFFFF358ACBFFB0F4FFFFABF4
+ FFFF3F94D0FFFFFFFF00FFFFFF00FFFFFF00FFFFFF003E92CEFFA3F1FFFF82E3
+ FCFF7EDFFCFF7ADDFBFF76DAFAFF71D9FBFFA0E8FFFF368ACAFF87EBFFFFA3F2
+ FFFF3E92CEFFFFFFFF00FFFFFF00FFFFFF00FFFFFF003E92CEFF9AF0FFFF83E4
+ FDFF7EDFFCFF7ADDFBFF76DAFAFF8AE2FEFF4EA9DDFF54ABDCFF8DEDFFFF9FF3
+ FFFF3E92CFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF004094CFFF92F1FFFF85E7
+ FFFF80E1FDFF7ADEFBFF77DBFBFF85E2FFFF3B8DCBFF93F1FFFF96F3FFFF9FF9
+ FFFF4094D0FFFFFFFF00FFFFFF00FFFFFF00FFFFFF004295CEEF58B0DFFF6DC9
+ EFFF7FE2FDFF7EE3FEFF7ADEFCFF80E2FFFF3F92CEFF4094CFFF4093CFFF4094
+ D0FF4396CFF1FFFFFF00FFFFFF00FFFFFF00FFFFFF000000002F326F997C3D8A
+ C1C74092CEFF54ADDEFF66C4EDFF7AE0FEFF4295D0FF1F455F502653725A2859
+ 7A5F0000002FFFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000120000
+ 002500000033326E987A3E8BC1C84396D1FF4496CFF1000000070000000A0000
+ 000B00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000
+ 0000000000000000001200000025000000330000002F00000000000000000000
+ 000000000000FFFFFF00FFFFFF00
+ }
+ end
+end
diff --git a/components/jvcllaz/examples/JvThumbnail/jvthumbnaildatamodule.pas b/components/jvcllaz/examples/JvThumbnail/jvthumbnaildatamodule.pas
new file mode 100644
index 000000000..87b069167
--- /dev/null
+++ b/components/jvcllaz/examples/JvThumbnail/jvthumbnaildatamodule.pas
@@ -0,0 +1,30 @@
+unit JvThumbnailDatamodule;
+
+{$mode objfpc}{$H+}
+
+interface
+
+uses
+ Classes, SysUtils, Controls;
+
+type
+
+ { TDataModule1 }
+
+ TDataModule1 = class(TDataModule)
+ ImageList1: TImageList;
+ private
+
+ public
+
+ end;
+
+var
+ DataModule1: TDataModule1;
+
+implementation
+
+{$R *.lfm}
+
+end.
+
diff --git a/components/jvcllaz/packages/JvPageCompsD.lpk b/components/jvcllaz/packages/JvPageCompsD.lpk
index f9293dd9e..4cb61491e 100644
--- a/components/jvcllaz/packages/JvPageCompsD.lpk
+++ b/components/jvcllaz/packages/JvPageCompsD.lpk
@@ -16,12 +16,20 @@
-
+
+
+
+
+
+
+
+
+
diff --git a/components/jvcllaz/packages/JvPageCompsR.lpk b/components/jvcllaz/packages/JvPageCompsR.lpk
index 522269abf..c25bfee94 100644
--- a/components/jvcllaz/packages/JvPageCompsR.lpk
+++ b/components/jvcllaz/packages/JvPageCompsR.lpk
@@ -15,7 +15,7 @@
-
+
@@ -24,6 +24,10 @@
+
+
+
+
diff --git a/components/jvcllaz/run/JvPageComps/JvPageList.pas b/components/jvcllaz/run/JvPageComps/JvPageList.pas
index 6b2cde1f6..ccc5a9e08 100644
--- a/components/jvcllaz/run/JvPageComps/JvPageList.pas
+++ b/components/jvcllaz/run/JvPageComps/JvPageList.pas
@@ -10,8 +10,8 @@ the specific language governing rights and limitations under the License.
The Original Code is: JvPageList.PAS, released on 2003-04-25.
-The Initial Developer of the Original Code is Peter Thörnqvist [peter3 at sourceforge dot net] .
-Portions created by Peter Thörnqvist are Copyright (C) 2004 Peter Thörnqvist.
+The Initial Developer of the Original Code is Peter Thörnqvist [peter3 at sourceforge dot net] .
+Portions created by Peter Thörnqvist are Copyright (C) 2004 Peter Thörnqvist.
All Rights Reserved.
Contributor(s):
@@ -42,7 +42,6 @@ uses
type
EPageListError = class(Exception);
-(******************** NOT CONVERTED
IPageList = interface
['{6BB90183-CFB1-4431-9CFD-E9A032E0C94C}']
function CanChange(AIndex: Integer): Boolean;
@@ -54,7 +53,6 @@ type
procedure MovePage(CurIndex, NewIndex: Integer);
procedure PageCaptionChanged(Index: Integer; const NewCaption: string);
end;
-******************** NOT CONVERTED *)
TJvCustomPageList = class;
@@ -121,8 +119,8 @@ type
//TODO: 25.09.2007 - SESS - Find a better place...
TCMDesignHitTest = TLMMouse;
- // TJvCustomPageList = class(TJvCustomControl, IUnknown, IPageList)
- TJvCustomPageList = class(TJvCustomControl)
+ TJvCustomPageList = class(TJvCustomControl, IUnknown, IPageList)
+ //TJvCustomPageList = class(TJvCustomControl)
private
FPages: TList;
FActivePage: TJvCustomPage;
@@ -182,7 +180,7 @@ type
property PageCount: Integer read GetPageCount;
end;
-(******************** NOT CONVERTED
+(******************** NOT CONVERTED *)
TJvStandardPage = class(TJvCustomPage)
published
property BorderWidth;
@@ -240,7 +238,7 @@ type
property OnStartDock;
property OnUnDock;
property OnEndDock;
- property OnCanResize;
+// property OnCanResize;
property OnDockDrop;
property OnDockOver;
property OnGetSiteInfo;
@@ -275,7 +273,7 @@ type
property ParentBackground default False;
{$ENDIF JVCLThemesEnabled}
end;
-******************** NOT CONVERTED *)
+(******************** NOT CONVERTED *)
implementation
@@ -323,7 +321,7 @@ end;
destructor TJvCustomPage.Destroy;
begin
- PageList := nil;
+ PageList := nil; // This removes the page from the PageList.
inherited Destroy;
end;
@@ -464,6 +462,13 @@ end;
function TJvCustomPage.DoEraseBackground(ACanvas: TCanvas; Param: Integer): Boolean;
begin
+ exit;
+
+
+
+
+
+
ACanvas.Brush.Color := Self.Color;
ACanvas.Brush.Style := bsSolid;
ACanvas.FillRect(Rect(0, 0, Width, Height));
@@ -512,7 +517,10 @@ end;
constructor TJvCustomPageList.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
- ControlStyle := ControlStyle + [csAcceptsControls];
+ // TNotebook has a comment: "Do not add csAcceptsControls" !!!!
+ // ControlStyle := ControlStyle + [csAcceptsControls];
+ ControlStyle := [];
+
// IncludeThemeStyle(Self, [csParentBackground]);
FPages := TList.Create;
FHiddenPages := TList.Create;
@@ -870,6 +878,7 @@ begin
if FShowDesignCaption <> Value then
begin
FShowDesignCaption := Value;
+ if ActivePage <> nil then ActivePage.Invalidate;
//TODO:
(*
if HandleAllocated and (csDesigning in ComponentState) then
@@ -932,13 +941,13 @@ begin
Pages[Index].Caption := NewCaption;
end;
-(**************
+(************** *)
//===TJvPageList =============================================================
function TJvPageList.InternalGetPageClass: TJvCustomPageClass;
begin
Result := TJvStandardPage;
end;
-*******************)
+(*******************)
end.