В вашем коде ничего не произойдет, если длина вашего текста не превышает 8 символов.
Кроме того, я не вижу условий, при которых ваша ширина становится меньше. Он становится больше (на 9) с каждой итерацией.
Кстати, вы, похоже, умножаетесь на 9 как средняя ширина символа. Вы можете использовать Canvas.TextWidth, чтобы определить фактическую ширину, необходимую для текста, без оценки.
Если вы все равно хотите использовать «9», вы должны назвать его как константу, чтобы прояснить, что это такое.
Быстро и грязно, используя TextWidth:
const
MAX_EINGABE_WIDTH = 450;
MIN_EINGABE_WIDTH = 191;
procedure THauptform.edtEingabeChange(Sender: TObject);
var Width: Integer;
begin
// Scale
Width := edtEingabe.Canvas.TextWidth(edtEingabe.Text);
if Width > MAX_EINGABE_WIDTH then
Width := MAX_EINGABE_WIDTH
else if Width < MIN_EINGABE_WIDTH then
Width := MIN_EINGABE_WIDTH
edtEingabe.Width := Width;
end;