Du bekommst doch in den Fenstern mit, wenn sie aktiviert werden. (OnActivate-Ereignis).
Mach' Dir eine Variabel, in die ein Formular in dem Ereignis reinschreib: 'Ich bin aktiv'. Also z. B. Self.
Im Klickereignis Deines TrayIcons schaust Du nun in diese Variabel und aktivierst "den Inhalt".
Sowas in der Art:
Delphi-Quellcode:
type
TFormKundenverwaltung = class(TForm)
fLastForm : TForm;
TrayIcon: TTrayIcon;
...
public
{ Public-Deklarationen }
LastFornm : TForm read fLastForm write fLastForm;
...
procedure TFormKundenverwaltung.TrayIconDblClick(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Assigned(fLastForm) then begin
if flastForm is TForm then begin
// Was auch immer hier passieren soll ...
ShowMessage(fLastForm.Caption);
end;
end;
end;
procedure TFormKundenverwaltung.FormActivate(Sender: TObject);
begin
fLastForm := Self;
end;
...
procedure TFormAdressen.FormActivate(Sender: TObject);
begin
FormKundenverwaltung.LastForm := Self;
end;
...
procedure TFormRechnungen.FormActivate(Sender: TObject);
begin
FormKundenverwaltung.LastForm := Self;
end;
(ungetestet hingedaddelt)
Mit 'nem Nachfahren Deines TrayIcon, dem Du ein zusätzliches Attribut "LastForm" gönnst, wäre das vermutlich dann viel eleganter zu lösen.