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 Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus