Ich bin erstaunt, dass ich das noch nie bemerkt habe.
(Und auch keinen Workaround finde...)
Der Effekt ist jetzt in 10.1 Berlin aufgetreten,
aber ein Versuch mit D5 unter Win7 zeigt dasselbe Ergebnis.
Um was es geht, steht ja schon im Titel:
Ein TPanel auf einem Tabsheet, mit Visible := False statisch erzeugt,
soll in der OnShow-Ereignisroutine des Tabsheets sichtbar werden.
Wird es aber nicht.
Der Versuch, nach Abschluss der OnShow-Routine die Sichtbarkeit
herzustellen. funktioniert nur, wenn vorher das nicht sichtbare
Panel nochmal ein Visible := False bekommt.
Delphi-Quellcode:
procedure TForm1.TabSheet1Show(Sender: TObject);
begin
Panel1.Visible := True; // bewirkt nichts
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Panel1.Visible := False; // nur wenn das vorher aufgerufen wird,
Panel1.Visible := True; // wird das Panel sichtbar.
end;
Hat jemand eine Erklärung oder sogar einen guten Rat?