Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#2

AW: Get Last Active Window

  Alt 22. Okt 2016, 12:23
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.
  Mit Zitat antworten Zitat