TabShow1 wird nur bei einem PageControl1Change ausgelöst und die gewünschte Funktionsweise funktioniert erst nach einem Pagewechsel.
Beim drücken des Buttons funktioniert es eigentlich wie gewollt.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
panel1.Visible := True;
end;
procedure TForm1.TabSheet1Show(Sender: TObject);
begin
Showmessage('Hallo');
panel1.Visible := True;
end;
Persönlich benutze ich das PageControlChange, die Problematik bleibt aber dieselbe.
Aus diesem Grund starte ich das Formular meistens mit einer Startprocedure und initialisiere das ganze nach meinen Bedürfnissen;
Delphi-Quellcode:
procedure TForm1.PageControl1Change(Sender: TObject);
begin
if PageControl1.ActivePage = TabSheet1
then Action1Execute(Self);
end;
procedure start;
begin
Action1Execute(Self);
end;