Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#25

AW: SetFocus will nicht ...

  Alt 19. Aug 2022, 22:23
OnActivate ist, wenn das Fenster den Fokus bekommen hat,
Ich meinte im Prozess des Anzeigens, denn OnActivate wird ansonsten ja auch noch viel öfter beim Fokuswechsel aufgerufen.

Das Problem tritt bei mir auch auf, wenn ich das zweite Fenster direkt im OnActivate anzeige. Das ist aber ja auch logisch, dass man während des Wechsels des Fokus nicht sinnvoll weitere Fokuswechsel in den Griff bekommt...

Wenn ich das Fenster stattdessen wie vorgeschlagen einfach nach der kompletten Anzeige in einer eigenen Message anzeige, klappt es auch mit dem Fokus:
Delphi-Quellcode:
const
  WM_TEST = WM_APP + 100;

type
  TForm235 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  protected
    procedure WmTest(var Msg: TMsg); message WM_TEST;
  public
    { Public-Deklarationen }
  end;

var
  Form235: TForm235;

implementation

{$R *.dfm}

procedure TForm235.FormCreate(Sender: TObject);
begin
  PostMessage(Handle, WM_TEST, 0, 0);
end;

procedure TForm235.WmTest(var Msg: TMsg);
begin
  Form236.Show;
  SetFocus;
end;
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat