Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2011, 14:00   #1
ros.pro
Пользователь
 
Регистрация: 24.05.2011
Сообщений: 39
По умолчанию Обратиться из функции к определенной форме и определенному компоненту.

Доброго времени суток!
Есть такая проблема.
На форме есть несколько timage в которые надо подгрузить картинки. Теоретически, они могут в дальнейшем могут находиться на разных формах.

Пишу универсальную процедуру для обращения к нужной форме, к нужному Timage, все это пишется в отдельном юните для процедур

Т.е. примерно так:
Код:
procedure loadImg(formName:TForm; imageName: Timage);
begin
   formName.imageName.Picture.LoadFromFile:='C:\123.bmp'; //ругается вот на эту строку, 
   //а именно на imageName, говорит неизвестный компонент. На formName не ругается...
end;
Помогите плиз, советом! Заранее спасибо за помощь!
ros.pro вне форума Ответить с цитированием
Старый 03.06.2011, 14:09   #2
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Можно при вызове передать:

Код:
* := Sender As TControl;
А в функции проверить что это:

Код:
If (*.ClassNameIs('TForm')) Then
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 03.06.2011, 14:41   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

imageName: Timage
если это имя компонента типа Timage то тогда это string
imageName: string
и тогда его надо будет ИСКАТЬ на указанной форме.
Код:
r:=formName.Findcomponent(imagename);
if r<>nil // iдальше проверять нашили или нет 
 then if r is Timage // это точно image
   then r as Timage.Load('C:\123.bmp'); А что грузить будешь всегда одну и ту же
картинку.
А если еще formName то же имя формы.
то это тогда тоже string
и тогда ее тоже надо будет искать.
все созданные формы собраны в Screen.forms
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Старый 04.06.2011, 09:37   #4
ros.pro
Пользователь
 
Регистрация: 24.05.2011
Сообщений: 39
По умолчанию

Спасибо за помощь! Сделал вот так:
Код:
(formName.FindComponent(drawName) as TDXDraw).Left:=50;
Только от timage избавился =)
ros.pro вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обратиться к компоненту на форме? AlkaloiD Общие вопросы по Java, Java SE, Kotlin 10 10.04.2011 21:43
обратиться к label на форме borik120 Windows Forms 8 16.09.2010 22:33
обратиться к компоненту Memo, на активной вкладке PageControl dr.Chas Общие вопросы Delphi 11 29.04.2010 17:10
Почему из метода класса нельзя обратиться к компоненту на форме? Дима я Общие вопросы Delphi 2 28.03.2010 13:21
как обратиться к невидемой форме Scorpeon Общие вопросы Delphi 3 29.06.2007 16:16