Guionardo Furlan schreef:
> The application don't have a main form.
> Look:
>
> program nodort;
>
> {$mode objfpc}{$H+}
>
> uses
> {$IFDEF UNIX} {$IFDEF UseCThreads}
> cthreads,
> {$ENDIF} {$ENDIF}
> Interfaces, // this includes the LCL widgetset
> Forms
> { you can add units after this }, uEvento, uTrayIcon, uResources,
> uConfigura,
> foConfig, uTipos;
>
> {$IFDEF WINDOWS}
> {$R nodort.rc}
> {$ENDIF}
> begin
> Application.Title := uTipos.ProgTitulo;
> Application.Initialize;
> Application.Run;
> end.
>
> The uTrayIcon unit have a class TTray:
>
> TTray = class (TComponent)
> FMenu: TPopupMenu;
> FTrayIcon: TTrayIcon;
> FTimer: TTimer;
> procedure ClickMenu (Sender: TObject);
> procedure TimerEvent(Sender: TObject);
> private
> FUltimaParada,
> FProximoAlarme: TDateTime;
> procedure CriaMenu;
> procedure CriaTray;
> procedure CriaTimer;
> procedure Configura;
> procedure AtualizaDica;
> procedure PedePraParar;
> public
> procedure Cria;
> property Menu: TPopupMenu read FMenu;
> property TrayIcon: TTrayIcon read FTrayIcon;
> end;
>
> In this unit, a global var Tray is defined and instantiated on the
> initialization clause.
>
> initialization
> Tray:=TTray.Create(Application);
> Tray.Cria; // Here comes the second-fase creation task, where have:
>
> FTrayIcon:=TTrayIcon.Create(self);
> FTrayIcon.Icon.Assign(Application.Icon);
> FTrayIcon.PopUpMenu := FMenu;
> FTrayIcon.Visible := True;
> FTrayIcon.BalloonFlags:=bfInfo;
>
> The trayicon is enabled and can be found in the traybar. The popupmenu works.
> But the icon image is empty. This is the problem.
The Application.Icon might not be initialized until you run
Application.Initialize. So you assign an empty icon to your trayicon.
Vincent
_______________________________________________
Lazarus mailing list
[email protected]
http://www.lazarus.freepascal.org/mailman/listinfo/lazarus