Mach aus der Variable eine Eigenschaft und setze im Setter die Überschrift. Dann ist es egal, wann Du 'KompaktTyp' setzt.
Delphi-Quellcode:
Type
TMyForm = Class (TForm)
...
Property KompaktTyp : Byte Read fKompaktTyp Write SetKompaktTyp;
End;
...
Procedure TMyForm.SetKompaktTyp (Value : Byte);
Begin
If Value <> fKompaktTyp then begin
fKompaktTyp := Value;
Caption := KompaktTypFormUeberschrift[fKompaktTyp] // <<--- hier noch die Überschrift setzen
End
End;
Das Bild hängt schief.