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:
parent
9940c604cc
commit
c714c4749c
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.
|
Loading…
Reference in New Issue
Block a user