From c73847f18ea54ad5b74da23f994cc3f7200ab298 Mon Sep 17 00:00:00 2001 From: wp_xxyyzz Date: Sun, 25 Nov 2018 22:50:20 +0000 Subject: [PATCH] jvcllaz: New component TJvAnimTitle git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6740 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- .../jvcllaz/design/JvAppFrm/images/images.txt | 1 + .../design/JvAppFrm/images/tjvanimtitle.bmp | Bin 0 -> 1654 bytes .../jvcllaz/design/JvAppFrm/jvappfrmreg.pas | 4 +- .../examples/JvFormAnimatedIcon/main.lfm | 68 +++++++- .../examples/JvFormAnimatedIcon/main.pas | 31 +++- components/jvcllaz/packages/jvappfrmlazd.lpk | 2 +- components/jvcllaz/packages/jvappfrmlazr.lpk | 8 +- components/jvcllaz/resource/jvappfrmreg.res | Bin 5152 -> 6848 bytes .../jvcllaz/run/JvAppFrm/JvAnimTitle.pas | 157 ++++++++++++++++++ 9 files changed, 261 insertions(+), 10 deletions(-) create mode 100644 components/jvcllaz/design/JvAppFrm/images/tjvanimtitle.bmp create mode 100644 components/jvcllaz/run/JvAppFrm/JvAnimTitle.pas diff --git a/components/jvcllaz/design/JvAppFrm/images/images.txt b/components/jvcllaz/design/JvAppFrm/images/images.txt index f42e27267..46481f479 100644 --- a/components/jvcllaz/design/JvAppFrm/images/images.txt +++ b/components/jvcllaz/design/JvAppFrm/images/images.txt @@ -1,3 +1,4 @@ tjvappanimatedicon.bmp tjvformanimatedicon.bmp +tjvanimtitle.bmp tjvformwallpaper.bmp diff --git a/components/jvcllaz/design/JvAppFrm/images/tjvanimtitle.bmp b/components/jvcllaz/design/JvAppFrm/images/tjvanimtitle.bmp new file mode 100644 index 0000000000000000000000000000000000000000..306f9af11614c6f0937e48aa5f0e01e4bfb57c5b GIT binary patch literal 1654 zcmY+^A(PxT6u|M9W~bhkB_*Ab_Rr7v^t_fV&AtBpk1u6wuXZ9oarfo3 zBa3h=DL@fnNN{8ZDF{$R7!n*=gi~^WBEpd1$fCk9C7>J;h6G2hQwxEph%h8La-FsY zq9VeO;K=op#6VO;7!n-0el80{MT8;2k?W^SfvAWuBsg;Y%pQn}2t$G+Z%d##5ET)I z1VQ91zguOb&iFl% zbvtEU%N;mMip$%lSJ&6SZta)S?myHfayU@>?D=;;Uj1D2cXxD&w1bSJw8vU-|A8#$ z;c}#$r&>8uFg)hh^&)L^8INuGIg#!6sbAMohIQUrGtc9vJWnql^Yf>CE0?ADv+sv# zqWf{2>w1u8nNMBUolbq<-#@f6zy0!W*WI4~KJB_4y*p``@glP9r|vY()A>A|cQo0P z=U?Q~3|&7rbHjk>AVI#7!_xHK?fli;OnrG^`*3Aiymoh{xHf|X R>c!PV!OiC#TLHV~`ahw5a)bZ? literal 0 HcmV?d00001 diff --git a/components/jvcllaz/design/JvAppFrm/jvappfrmreg.pas b/components/jvcllaz/design/JvAppFrm/jvappfrmreg.pas index 3ff44ad1d..df533d49d 100644 --- a/components/jvcllaz/design/JvAppFrm/jvappfrmreg.pas +++ b/components/jvcllaz/design/JvAppFrm/jvappfrmreg.pas @@ -16,12 +16,12 @@ implementation uses Classes, //PropEdits, ComponentEditors, JvDsgnConsts, - JvAppAnimatedIcon, JvFormAnimatedIcon, JvFormWallPaper; + JvAppAnimatedIcon, JvFormAnimatedIcon, JvAnimTitle, JvFormWallPaper; procedure Register; begin RegisterComponents(RsPaletteJvcl, [ - TJvAppAnimatedIcon, TJvFormAnimatedIcon, TJvFormWallPaper + TJvAppAnimatedIcon, TJvFormAnimatedIcon, TJvAnimTitle, TJvFormWallPaper ]); end; diff --git a/components/jvcllaz/examples/JvFormAnimatedIcon/main.lfm b/components/jvcllaz/examples/JvFormAnimatedIcon/main.lfm index 34352e4f0..648df04bd 100644 --- a/components/jvcllaz/examples/JvFormAnimatedIcon/main.lfm +++ b/components/jvcllaz/examples/JvFormAnimatedIcon/main.lfm @@ -3,17 +3,24 @@ object Form1: TForm1 Height = 344 Top = 128 Width = 937 - Caption = 'Form1' + Caption = 'F' ClientHeight = 344 ClientWidth = 937 OnCreate = FormCreate LCLVersion = '2.1.0.0' object ListView1: TListView + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = Label1 + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = Owner + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Control = Owner + AnchorSideBottom.Side = asrBottom Left = 8 Height = 305 Top = 31 Width = 921 - Align = alClient + Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 8 BorderSpacing.Right = 8 BorderSpacing.Bottom = 8 @@ -27,12 +34,59 @@ object Form1: TForm1 Left = 8 Height = 15 Top = 8 - Width = 921 - Align = alTop + Width = 233 BorderSpacing.Around = 8 Caption = 'See animation in form and application icons' ParentColor = False end + object CheckBox1: TCheckBox + AnchorSideLeft.Control = Label1 + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = Label1 + AnchorSideTop.Side = asrCenter + Left = 265 + Height = 19 + Top = 6 + Width = 93 + BorderSpacing.Left = 24 + Caption = 'animated title' + Checked = True + OnChange = CheckBox1Change + State = cbChecked + TabOrder = 1 + end + object CheckBox2: TCheckBox + AnchorSideLeft.Control = CheckBox1 + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = Label1 + AnchorSideTop.Side = asrCenter + Left = 382 + Height = 19 + Top = 6 + Width = 127 + BorderSpacing.Left = 24 + Caption = 'Animated form icon' + Checked = True + OnChange = CheckBox2Change + State = cbChecked + TabOrder = 2 + end + object CheckBox3: TCheckBox + AnchorSideLeft.Control = CheckBox2 + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = Label1 + AnchorSideTop.Side = asrCenter + Left = 533 + Height = 19 + Top = 6 + Width = 217 + BorderSpacing.Left = 24 + Caption = 'Animated application icon in task bar' + Checked = True + OnChange = CheckBox3Change + State = cbChecked + TabOrder = 3 + end object JvFormAnimatedIcon1: TJvFormAnimatedIcon Icons = IconImages Delay = 50 @@ -4150,4 +4204,10 @@ object Form1: TForm1 left = 80 top = 129 end + object JvAnimTitle1: TJvAnimTitle + Title = 'Form1' + Delay = 100 + left = 80 + top = 192 + end end diff --git a/components/jvcllaz/examples/JvFormAnimatedIcon/main.pas b/components/jvcllaz/examples/JvFormAnimatedIcon/main.pas index f8774e0d2..7928e66a3 100644 --- a/components/jvcllaz/examples/JvFormAnimatedIcon/main.pas +++ b/components/jvcllaz/examples/JvFormAnimatedIcon/main.pas @@ -6,18 +6,25 @@ interface uses Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ComCtrls, StdCtrls, - JvFormAnimatedIcon, JvAppAnimatedIcon; + JvFormAnimatedIcon, JvAppAnimatedIcon, JvAnimTitle; type { TForm1 } TForm1 = class(TForm) + CheckBox1: TCheckBox; + CheckBox2: TCheckBox; + CheckBox3: TCheckBox; IconImages: TImageList; + JvAnimTitle1: TJvAnimTitle; JvAppAnimatedIcon1: TJvAppAnimatedIcon; JvFormAnimatedIcon1: TJvFormAnimatedIcon; Label1: TLabel; ListView1: TListView; + procedure CheckBox1Change(Sender: TObject); + procedure CheckBox2Change(Sender: TObject); + procedure CheckBox3Change(Sender: TObject); procedure FormCreate(Sender: TObject); private @@ -34,6 +41,9 @@ implementation { TForm1 } +const + FORM_CAPTION = 'JvFormAnimation Demo'; + procedure TForm1.FormCreate(Sender: TObject); procedure AddItem(AIndex: Integer); @@ -50,6 +60,25 @@ begin JvAppAnimatedIcon1.Active := true; for i:=0 to IconImages.Count-1 do AddItem(i); + + Checkbox1Change(nil); +end; + +procedure TForm1.CheckBox1Change(Sender: TObject); +begin + JvAnimTitle1.Enabled := Checkbox1.Checked; + JvAnimTitle1.Title := FORM_CAPTION; + if not JvAnimTitle1.Enabled then Caption := FORM_CAPTION; +end; + +procedure TForm1.CheckBox2Change(Sender: TObject); +begin + JvFormAnimatedIcon1.Active := Checkbox2.Checked; +end; + +procedure TForm1.CheckBox3Change(Sender: TObject); +begin + JvAppAnimatedIcon1.Active := Checkbox3.Checked; end; end. diff --git a/components/jvcllaz/packages/jvappfrmlazd.lpk b/components/jvcllaz/packages/jvappfrmlazd.lpk index dd36e1d11..5991ab170 100644 --- a/components/jvcllaz/packages/jvappfrmlazd.lpk +++ b/components/jvcllaz/packages/jvappfrmlazd.lpk @@ -14,7 +14,7 @@ diff --git a/components/jvcllaz/packages/jvappfrmlazr.lpk b/components/jvcllaz/packages/jvappfrmlazr.lpk index c70bbcdd0..c909731ea 100644 --- a/components/jvcllaz/packages/jvappfrmlazr.lpk +++ b/components/jvcllaz/packages/jvappfrmlazr.lpk @@ -13,11 +13,11 @@ - + @@ -30,6 +30,10 @@ + + + + diff --git a/components/jvcllaz/resource/jvappfrmreg.res b/components/jvcllaz/resource/jvappfrmreg.res index 89d2e938fddc9323f87ba11a52e56caaa31d6e48..f61c2aeb656566e3a296e0491e2c6eb2ab4c4fcb 100644 GIT binary patch delta 436 zcmX|-y-LJD6ot<&!%hUZSi#1|!p6cl6AdgiuuktH}}r_{>RbuX}Eg~K%|d5T;LvOxQ4+MZ-(a*=WjPB zJAnL44JsTc_j`I?K= zh;>~gaoY}HpUy8*AeYdU4xw1{i3sD>zYx}fNQ}DDnRB`KlsnE|A_lq&skJsuopZ~- z5&@#>$J%-Ml`5;KDrga@fGYAf^}&~=FBJ?7&AN1cPHtMx#mG4fp>uR7#4XR;`F+U^QkPnnO*bEVarQj8?VV= Blink then + begin + FBlinking := False; + FBlinked := 0; + end; + end; + end + else + begin + if FSens then + begin + if Length(FCurrentTitle) = Length(Title) then + begin + FSens := False; + if Blink > 0 then + FBlinking := True; + end + else + FCurrentTitle := FCurrentTitle + Title[Length(FCurrentTitle) + 1]; + end + else + if FCurrentTitle = '' then + FSens := True + else + SetLength(FCurrentTitle, Length(FCurrentTitle) - 1); + {$IFDEF UNIX} + if FCurrentTitle = '' then + FForm.Caption := ' ' // else caption becomes <1> + else + {$ENDIF UNIX} + FForm.Caption := FCurrentTitle; + end; +end; + +procedure TJvAnimTitle.SetTitle(const NewTitle: string); +begin + FTitle := NewTitle; + FCurrentTitle := ''; + FSens := True; +end; + +procedure TJvAnimTitle.SetEnabled(NewEnable: Boolean); +begin + FEnabled := NewEnable; + FTimer.Enabled := FEnabled; +end; + +procedure TJvAnimTitle.SetDelay(NewDelay: Integer); +begin + FDelay := NewDelay; + FTimer.Interval := FDelay; +end; + + +end.