![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Одна функция для двух одинаковых компонент, возникла проблема
Вадим © (2010-04-28 16:05:00)В общем проблема в следующем.
Сначала на форме был один компонент Имаже1. Для него я написал длиннющую процедуру ДроуСрн.
procedure DrawSRN;
var
всякие переменные
begin
with Image1.Canvas do
begin
очень длинный список функций и процедур, которые необходимо выполнить на канвасе
end;
end;
Позже появилась надобность в еще одном компоненте-дубликате Имаже2, для которого нужно выполнить ту же процедуру ДроуСРН.
Каким способом поступают в этом случае?
Тупо создают вторую процедуру путем копирования тела DrawSRN, только меняют Image1 на Image2?
procedure DrawSRN_2;
var
всякие переменные
begin
with Image2.Canvas do
begin
очень длинный список функций и процедур, которые необходимо выполнить на канвасе
end;
end;
Или есть какой-то оптимальный вариант?
Например, такой вариант выдал ошибку:
procedure DrawSRN;
var
всякие переменные
begin
with Image1.Canvas and Image2.Canvas do
begin
очень длинный список функций и процедур, которые необходимо выполнить на канвасе
end;
end;
Ну, думаю, понятно объяснил.
Вадим (2010-04-28 17:11:00) [1]Большое спасибо! Как всё просто оказалось.
Lyonux (2010-04-28 16:29:00) [2]
begin
очень длинный список функций и процедур, которые необходимо выполнить на канвасе
end;
данный кусок кода записать в отдельную процедуру и для обоих компонентов писать:
with Image1.Canvas do %procedurename%
with Image2.Canvas do %procedurename%
_Гость_ (2010-04-28 16:26:00) [3]procedure DrawSRN(Image: TImage);
begin
with Image.Canvas do
12 (2010-04-28 16:25:00) [4]procedure DrawSRN(AImage:TImage);
with AImage.Canvas do
begin
очень длинный список функций и процедур, которые необходимо выполнить на канвасе
end;