Смысл прост вместо Одной Icon используем TCustomImageList, и собственно таймер TCustomTimer.
Протестил все работает, решил создать компонент. Создал пакет, иконку выбрал и т.п. Установил. И тут ждал меня БАГ.
При добавлении компонента на форму в свойствах прописывается TCustomTimer. (вот тут я вообще не понял почему).
- Код: Выделить всё
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, AniTrayIcon;
type
{ TForm1 }
TForm1 = class(TForm)
AnimateTrayIcon1: TAnimateTrayIcon;
CustomTimer1: TCustomTimer; //- прописалось само ПОЧЕМУ??
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
end.
И при выключении программы ошибка на строчке из модуля AnimateTrayIcon.
- Код: Выделить всё
destructor TAnimateTrayIcon.Destroy;
begin
Timer.Free; //Вот тут.
Timer:=Nil;
FIcons:=Nil;
FAnimate:=False;
FIconIndex:=0;
FAnimateInterval:=0;
inherited Destroy;
end;
В чем может быть проблема: ведь если ничего не пихать в пакет и не делать компоненту.. то все просто ОК.