Mach aus der Variablen eine Property und überprüfe den Wert im Setter.
Die erlaubten Werte könntest du in einer Array-Konstante zusammenfassen:
Delphi-Quellcode:
procedure TFoo.SetText(const AValue: string);
const
Valid: Array[0..2] of string = ('ha', 'hb', 'hc');
var
i: Integer;
IsValid: Boolean;
begin
IsValid := false;
for i := Low(Valid) to High(Valid) do
if AValue = Valid[i] then
begin
IsValid := true;
Break;
end;
if IsValid then
FText := AValue;
end;