You've already forked lazarus-ccr
jvcllaz: Add new component JvFormAnimatedIcon
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6736 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
1
components/jvcllaz/design/JvAppFrm/images/images.txt
Normal file
1
components/jvcllaz/design/JvAppFrm/images/images.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
tjvformanimatedicon.bmp
|
1
components/jvcllaz/design/JvAppFrm/images/make_res.bat
Normal file
1
components/jvcllaz/design/JvAppFrm/images/make_res.bat
Normal file
@ -0,0 +1 @@
|
|||||||
|
lazres ../../../resource/jvappfrmreg.res @images.txt
|
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
29
components/jvcllaz/design/JvAppFrm/jvappfrmreg.pas
Normal file
29
components/jvcllaz/design/JvAppFrm/jvappfrmreg.pas
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
unit JvAppFrmReg;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
SysUtils;
|
||||||
|
|
||||||
|
procedure Register;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
{$R ../../resource/jvappfrmreg.res}
|
||||||
|
|
||||||
|
uses
|
||||||
|
Classes, //PropEdits, ComponentEditors,
|
||||||
|
JvDsgnConsts,
|
||||||
|
JvFormAnimatedIcon;
|
||||||
|
|
||||||
|
procedure Register;
|
||||||
|
begin
|
||||||
|
RegisterComponents(RsPaletteJvcl, [
|
||||||
|
TJvFormAnimatedIcon
|
||||||
|
]);
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
||||||
|
|
@ -0,0 +1,84 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<CONFIG>
|
||||||
|
<ProjectOptions>
|
||||||
|
<Version Value="11"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<General>
|
||||||
|
<SessionStorage Value="InProjectDir"/>
|
||||||
|
<MainUnit Value="0"/>
|
||||||
|
<Title Value="JvFormAnimatedIcon_Demo"/>
|
||||||
|
<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"/>
|
||||||
|
</BuildModes>
|
||||||
|
<PublishOptions>
|
||||||
|
<Version Value="2"/>
|
||||||
|
<UseFileFilters Value="True"/>
|
||||||
|
</PublishOptions>
|
||||||
|
<RunParams>
|
||||||
|
<FormatVersion Value="2"/>
|
||||||
|
<Modes Count="0"/>
|
||||||
|
</RunParams>
|
||||||
|
<RequiredPackages Count="3">
|
||||||
|
<Item1>
|
||||||
|
<PackageName Value="JvMMLazR"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<PackageName Value="JvAppFrmLazR"/>
|
||||||
|
</Item2>
|
||||||
|
<Item3>
|
||||||
|
<PackageName Value="LCL"/>
|
||||||
|
</Item3>
|
||||||
|
</RequiredPackages>
|
||||||
|
<Units Count="2">
|
||||||
|
<Unit0>
|
||||||
|
<Filename Value="JvFormAnimatedIcon_Demo.lpr"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
</Unit0>
|
||||||
|
<Unit1>
|
||||||
|
<Filename Value="main.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<ComponentName Value="Form1"/>
|
||||||
|
<ResourceBaseClass Value="Form"/>
|
||||||
|
</Unit1>
|
||||||
|
</Units>
|
||||||
|
</ProjectOptions>
|
||||||
|
<CompilerOptions>
|
||||||
|
<Version Value="11"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<Target>
|
||||||
|
<Filename Value="JvFormAnimatedIcon_Demo"/>
|
||||||
|
</Target>
|
||||||
|
<SearchPaths>
|
||||||
|
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||||
|
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||||
|
</SearchPaths>
|
||||||
|
<Linking>
|
||||||
|
<Options>
|
||||||
|
<Win32>
|
||||||
|
<GraphicApplication Value="True"/>
|
||||||
|
</Win32>
|
||||||
|
</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>
|
@ -0,0 +1,22 @@
|
|||||||
|
program JvFormAnimatedIcon_Demo;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
uses
|
||||||
|
{$IFDEF UNIX}{$IFDEF UseCThreads}
|
||||||
|
cthreads,
|
||||||
|
{$ENDIF}{$ENDIF}
|
||||||
|
Interfaces, // this includes the LCL widgetset
|
||||||
|
Forms, main
|
||||||
|
{ you can add units after this };
|
||||||
|
|
||||||
|
{$R *.res}
|
||||||
|
|
||||||
|
begin
|
||||||
|
RequireDerivedFormResource:=True;
|
||||||
|
Application.Scaled:=True;
|
||||||
|
Application.Initialize;
|
||||||
|
Application.CreateForm(TForm1, Form1);
|
||||||
|
Application.Run;
|
||||||
|
end.
|
||||||
|
|
4147
components/jvcllaz/examples/JvFormAnimatedIcon/main.lfm
Normal file
4147
components/jvcllaz/examples/JvFormAnimatedIcon/main.lfm
Normal file
File diff suppressed because it is too large
Load Diff
54
components/jvcllaz/examples/JvFormAnimatedIcon/main.pas
Normal file
54
components/jvcllaz/examples/JvFormAnimatedIcon/main.pas
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
unit main;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ComCtrls, StdCtrls,
|
||||||
|
JvFormAnimatedIcon, JvBmpAnimator;
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
{ TForm1 }
|
||||||
|
|
||||||
|
TForm1 = class(TForm)
|
||||||
|
ImageList1: TImageList;
|
||||||
|
JvFormAnimatedIcon1: TJvFormAnimatedIcon;
|
||||||
|
Label1: TLabel;
|
||||||
|
ListView1: TListView;
|
||||||
|
procedure FormCreate(Sender: TObject);
|
||||||
|
private
|
||||||
|
|
||||||
|
public
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
Form1: TForm1;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
{$R *.lfm}
|
||||||
|
|
||||||
|
{ TForm1 }
|
||||||
|
|
||||||
|
procedure TForm1.FormCreate(Sender: TObject);
|
||||||
|
|
||||||
|
procedure AddItem(AIndex: Integer);
|
||||||
|
begin
|
||||||
|
with Listview1.Items.Add do begin
|
||||||
|
Caption := 'Image' + IntToStr(AIndex);
|
||||||
|
ImageIndex := AIndex;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
begin
|
||||||
|
for i:=0 to ImageList1.Count-1 do
|
||||||
|
AddItem(i);
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
||||||
|
|
47
components/jvcllaz/packages/jvappfrmlazd.lpk
Normal file
47
components/jvcllaz/packages/jvappfrmlazd.lpk
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<CONFIG>
|
||||||
|
<Package Version="4">
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<Name Value="jvappfrmlazd"/>
|
||||||
|
<Type Value="RunAndDesignTime"/>
|
||||||
|
<Author Value="Various authors - see unit header for details."/>
|
||||||
|
<CompilerOptions>
|
||||||
|
<Version Value="11"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<SearchPaths>
|
||||||
|
<OtherUnitFiles Value="..\design\JvAppFrm"/>
|
||||||
|
<UnitOutputDirectory Value="..\lib\$(TargetCPU)-$(TargetOS)\design\jvappfrm"/>
|
||||||
|
</SearchPaths>
|
||||||
|
</CompilerOptions>
|
||||||
|
<Description Value="JVCL application forms (design time) containing form enhancement components:
|
||||||
|
- TJvFormAnimatedIcon
|
||||||
|
"/>
|
||||||
|
<License Value="The JVCL is released in accordance with the MPL 1.1 license. To get your own copy or read it, go to http://www.mozilla.org/MPL/MPL-1.1.html. "/>
|
||||||
|
<Version Major="1" Release="4"/>
|
||||||
|
<Files Count="1">
|
||||||
|
<Item1>
|
||||||
|
<Filename Value="..\design\JvAppFrm\jvappfrmreg.pas"/>
|
||||||
|
<HasRegisterProc Value="True"/>
|
||||||
|
<UnitName Value="JvAppFrmReg"/>
|
||||||
|
</Item1>
|
||||||
|
</Files>
|
||||||
|
<RequiredPkgs Count="3">
|
||||||
|
<Item1>
|
||||||
|
<PackageName Value="JvAppFrmLazR"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<PackageName Value="JvCoreLazD"/>
|
||||||
|
</Item2>
|
||||||
|
<Item3>
|
||||||
|
<PackageName Value="JvCoreLazR"/>
|
||||||
|
</Item3>
|
||||||
|
</RequiredPkgs>
|
||||||
|
<UsageOptions>
|
||||||
|
<UnitPath Value="$(PkgOutDir)"/>
|
||||||
|
</UsageOptions>
|
||||||
|
<PublishOptions>
|
||||||
|
<Version Value="2"/>
|
||||||
|
<UseFileFilters Value="True"/>
|
||||||
|
</PublishOptions>
|
||||||
|
</Package>
|
||||||
|
</CONFIG>
|
42
components/jvcllaz/packages/jvappfrmlazr.lpk
Normal file
42
components/jvcllaz/packages/jvappfrmlazr.lpk
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<CONFIG>
|
||||||
|
<Package Version="4">
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<Name Value="JvAppFrmLazR"/>
|
||||||
|
<Author Value="Various authors - see unit headers for details."/>
|
||||||
|
<CompilerOptions>
|
||||||
|
<Version Value="11"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<SearchPaths>
|
||||||
|
<OtherUnitFiles Value="..\run\JvAppFrm"/>
|
||||||
|
<UnitOutputDirectory Value="..\lib\$(TargetCPU)-$(TargetOS)\run\JvAppFrm"/>
|
||||||
|
</SearchPaths>
|
||||||
|
</CompilerOptions>
|
||||||
|
<Description Value="JVCL Application Forms (Runtime) containing form enhancement components:
|
||||||
|
- TJvFormAnimatedIcon
|
||||||
|
"/>
|
||||||
|
<License Value="The JVCL is released in accordance with the MPL 1.1 license. To get your own copy or read it, go to http://www.mozilla.org/MPL/MPL-1.1.html. "/>
|
||||||
|
<Version Major="1" Release="4"/>
|
||||||
|
<Files Count="1">
|
||||||
|
<Item1>
|
||||||
|
<Filename Value="..\run\JvAppFrm\JvFormAnimatedIcon.pas"/>
|
||||||
|
<UnitName Value="JvFormAnimatedIcon"/>
|
||||||
|
</Item1>
|
||||||
|
</Files>
|
||||||
|
<RequiredPkgs Count="2">
|
||||||
|
<Item1>
|
||||||
|
<PackageName Value="JvCoreLazR"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<PackageName Value="LCL"/>
|
||||||
|
</Item2>
|
||||||
|
</RequiredPkgs>
|
||||||
|
<UsageOptions>
|
||||||
|
<UnitPath Value="$(PkgOutDir)"/>
|
||||||
|
</UsageOptions>
|
||||||
|
<PublishOptions>
|
||||||
|
<Version Value="2"/>
|
||||||
|
<UseFileFilters Value="True"/>
|
||||||
|
</PublishOptions>
|
||||||
|
</Package>
|
||||||
|
</CONFIG>
|
BIN
components/jvcllaz/resource/jvappfrmreg.res
Normal file
BIN
components/jvcllaz/resource/jvappfrmreg.res
Normal file
Binary file not shown.
133
components/jvcllaz/run/JvAppFrm/JvFormAnimatedIcon.pas
Normal file
133
components/jvcllaz/run/JvAppFrm/JvFormAnimatedIcon.pas
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
{-----------------------------------------------------------------------------
|
||||||
|
The contents of this file are subject to the Mozilla Public License
|
||||||
|
Version 1.1 (the "License"); you may not use this file except in compliance
|
||||||
|
with the License. You may obtain a copy of the License at
|
||||||
|
http://www.mozilla.org/MPL/MPL-1.1.html
|
||||||
|
|
||||||
|
Software distributed under the License is distributed on an "AS IS" basis,
|
||||||
|
WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for
|
||||||
|
the specific language governing rights and limitations under the License.
|
||||||
|
|
||||||
|
The Original Code is: JvFormAnimatedIcon.PAS, released on 2001-02-28.
|
||||||
|
|
||||||
|
The Initial Developer of the Original Code is S�bastien Buysse [sbuysse att buypin dott com]
|
||||||
|
Portions created by S�bastien Buysse are Copyright (C) 2001 S�bastien Buysse.
|
||||||
|
All Rights Reserved.
|
||||||
|
|
||||||
|
Contributor(s): Michael Beck [mbeck att bigfoot dott com].
|
||||||
|
|
||||||
|
You may retrieve the latest version of this file at the Project JEDI's JVCL home page,
|
||||||
|
located at http://jvcl.delphi-jedi.org
|
||||||
|
|
||||||
|
Known Issues:
|
||||||
|
-----------------------------------------------------------------------------}
|
||||||
|
// $Id$
|
||||||
|
|
||||||
|
unit JvFormAnimatedIcon;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
SysUtils, Classes, Controls, Forms, ExtCtrls,
|
||||||
|
ImgList, Graphics;
|
||||||
|
// JvComponentBase;
|
||||||
|
|
||||||
|
type
|
||||||
|
TJvFormAnimatedIcon = class(TComponent) //JvComponent)
|
||||||
|
private
|
||||||
|
FForm: TCustomForm;
|
||||||
|
FActive: Boolean;
|
||||||
|
FDelay: Cardinal;
|
||||||
|
FIcons: TImageList;
|
||||||
|
FTimer: TTimer;
|
||||||
|
FNumber: Integer;
|
||||||
|
procedure SetActive(const Value: Boolean);
|
||||||
|
procedure SetDelay(const Value: Cardinal);
|
||||||
|
procedure Animate(Sender: TObject);
|
||||||
|
procedure SetIcons(const Value: TImageList);
|
||||||
|
protected
|
||||||
|
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
|
||||||
|
public
|
||||||
|
constructor Create(AOwner: TComponent); override;
|
||||||
|
destructor Destroy; override;
|
||||||
|
published
|
||||||
|
property Icons: TImageList read FIcons write SetIcons;
|
||||||
|
property Active: Boolean read FActive write SetActive default True;
|
||||||
|
property Delay: Cardinal read FDelay write SetDelay default 100;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
uses
|
||||||
|
JvJVCLUtils;
|
||||||
|
|
||||||
|
constructor TJvFormAnimatedIcon.Create(AOwner: TComponent);
|
||||||
|
begin
|
||||||
|
inherited Create(AOwner);
|
||||||
|
|
||||||
|
FForm := GetParentForm(TControl(AOwner));
|
||||||
|
FActive := True;
|
||||||
|
FNumber := 0;
|
||||||
|
FDelay := 100;
|
||||||
|
|
||||||
|
FTimer := nil;
|
||||||
|
if not (csDesigning in ComponentState) then
|
||||||
|
begin
|
||||||
|
FTimer := TTimer.Create(Self);
|
||||||
|
FTimer.OnTimer := @Animate;
|
||||||
|
FTimer.Interval := FDelay;
|
||||||
|
FTimer.Enabled := FActive;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TJvFormAnimatedIcon.Destroy;
|
||||||
|
begin
|
||||||
|
FTimer.Free;
|
||||||
|
inherited Destroy;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvFormAnimatedIcon.Notification(AComponent: TComponent;
|
||||||
|
Operation: TOperation);
|
||||||
|
begin
|
||||||
|
inherited Notification(AComponent, Operation);
|
||||||
|
|
||||||
|
if Operation = opRemove then
|
||||||
|
begin
|
||||||
|
if AComponent = FIcons then
|
||||||
|
SetIcons(nil);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvFormAnimatedIcon.Animate(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if (FIcons <> nil) and (FIcons.Count <> 0) then
|
||||||
|
begin
|
||||||
|
FNumber := (FNumber + 1) mod FIcons.Count;
|
||||||
|
FIcons.GetIcon(FNumber, TForm(FForm).Icon);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvFormAnimatedIcon.SetActive(const Value: Boolean);
|
||||||
|
begin
|
||||||
|
FActive := Value;
|
||||||
|
if not (csDesigning in ComponentState) then
|
||||||
|
FTimer.Enabled := FActive;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvFormAnimatedIcon.SetDelay(const Value: Cardinal);
|
||||||
|
begin
|
||||||
|
FDelay := Value;
|
||||||
|
if not (csDesigning in ComponentState) then
|
||||||
|
FTimer.Interval := FDelay;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvFormAnimatedIcon.SetIcons(const Value: TImageList);
|
||||||
|
begin
|
||||||
|
ReplaceComponentReference(Self, Value, TComponent(FIcons));
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
end.
|
Reference in New Issue
Block a user