Стандартную процедуру или функцию можно перегрузить. Это означает, что можно
написать несколько процедур и функций с одинаковыми именами, но эти процедуры
и функции будут разными, а самое главное — они будут обрабатывать разные параметры.
Скажем, для обработки строковых значений будет вызываться одна функция,
а для обработки числовых значений — другая, а для значений еще каких-то типов
(например, вещественных) — третья функция. И все эти три функции могут называться одинаково.
Традиционно привожу пример. Создайте новый проект и разместите на форме три
кнопки Button и одну этикетку Label. Теперь в свойствах Caption кнопок напишите
следующее:для Button1 — Целые числа, для Button2 —Дробные числа и для Button3 —
Строки.
При нажатии первой кнопки на этикетку будет выводиться целое число, при нажатии
второй — дробное, а при нажатии третьей — текстовая строка. Все это будет
выполнять процедура OutOnLabel.
На самом деле получатся три процедуры, но все они будут называться одинаково.
Напишем эти процедуры и обработку событий нажатия кнопок.
Листинг 6.7
procedure TForml.OutOnLabel(s: String);
// вывод на этикетку строки текста
begin
Label 1.Caption := s;
end;
procedure TForml.OutOnLabel(i: Integer);
// вывод на этикетку целого числа
begin
Labe11.Caption := IntToStr(i);
end;
procedure TForml.OutOnLabel(i: Extended);
// вывод на этикетку дробного числа
begin
Labe11.Caption := FloatToStr(i);
end;
procedure TForml. ButtonlCI ick(Sender: TObject);
begin
OutOnLabel(731);
end;
procedure TForml.Button2CI ick(Sender: TObject);
begin
OutOnLabel(255.6);
end;
procedure TForml.ButtonSCIick(Sender: TObject);
begin
OutOnLabel(Опять двадцать пять);
end;