![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте!
Столкнулся со следующей проблемой. Есть три компонента Image (Image1, Image2, Image3). На каждом компоненте нужно вывести одинаковый рисунок. Пример кода: Код:
with Image1.Canvas do begin MoveTo(xf,yf+round(m*dat[1]*(c2-1)/2)); LineTo(xf+round(m*dat[1]*c1/3),yf); (много-много кода) end; Проще всего скопировать всё три раза, но не хотелось бы раздувать объём кода. Можно ли в строчке with ... do менять название переменной, например, так: Код:
for i:=1 to 3 do with Image[i].Canvas do begin MoveTo(xf,yf+round(m*dat[1]*(c2-1)/2)); LineTo(xf+round(m*dat[1]*c1/3),yf); (много-много кода) end; Понятно, что в таком виде код не работает. Хотел бы узнать, возможно ли это в принципе и как это сделать. Заранее спасибо! P.S. Программу пишу для себя, по образованию не программист, поэтому, по возможности, прошу объяснить на каком-нибудь примере. |
#2
|
||||
|
||||
![]() Код:
var img:TImage; i:integer; begin for i:=1 to 3 do begin img:=FindComponent('Image'+IntToStr(i)) as TImage; if img<>nil then begin with img do begin //много-много кода end; end; end; end; Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
Этот пользователь сказал Спасибо Aristarh Dark за это полезное сообщение: | ||
Egeni (31.07.2013)
|
#3
|
||||
|
||||
![]() 1.
Код:
with TImage(FindComponent('Image'+IntToStr(i))).Canvas do begin // draw end; отрисовку делать в отдельной процедуре, которой параметром передавать TImage из цикла Пишу программы за еду. __________________ |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
Egeni (31.07.2013)
|
#4
|
|||
|
|||
![]() Aristarh Dark, NumLock, Большое спасибо! Всё работает.
|