Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.01.25;
Скачать: CL | DM;

Вниз

Как работать с компонентом на который я нажал   Найти похожие ветки 

 
ivak ©   (2008-12-11 21:55) [0]

у меня общий обработчик на 5 компонентов Image: надо загрузить в компонент, на который кликнул юзер картинку.


procedure TForm1.ImageClick(Sender: TObject);
begin
(sender as TControl).picture.loadfromfile("mypicture.bmp");


только свойства picture у (sender as TControl) не имеется.
Вопрос: как загрузить? может есть какие-то методы или свойства?


 
CodeMaster ©   (2008-12-11 21:57) [1]

Делай TImage(Sender)


 
korneley ©   (2008-12-11 23:19) [2]


> CodeMaster ©   (11.12.08 21:57) [1]
> Делай TImage(Sender)

if Sender is TImage then...
А то, мало ли куда этот эвент назначить можно :)


 
ivak ©   (2008-12-12 00:15) [3]

а можно так:

if Sender is TImage.image1 then image1.picture.loadfromfile(...);
?


 
ivak ©   (2008-12-12 00:24) [4]

аа нет нельзя..
у меня на форме 5 компонентов TImage!!
как мне определить куда именно юзер нажал. на 1й, 2й, 3й, 4й или пятый?
if Sender is TImage это только класс, а мне сам компонент определить


 
Германн ©   (2008-12-12 00:52) [5]

Паровозик! Вот то что спасёт ОРД в данной ситуации.
P.S. Для тех кто не знаком с творчеством P.McCartney сообщаю, что "паровозик" - это tag.


 
sniknik ©   (2008-12-12 00:56) [6]

> if Sender is TImage это только класс,
нет, класс это TImage

> а мне сам компонент определить
не требуется, Sender это собственно сам компонент от которого событие, и есть
проверь
if Sender is TImage then ShowMessage(TImage(Sender).Name);


 
sniknik ©   (2008-12-12 00:57) [7]

Германн ©   (12.12.08 00:52) [5]
а смысл?


 
codemaster ©   (2008-12-12 10:35) [8]

Лучше будет сделать вот так
if Sender.ClassType = Timage then
TImage(Sender).Picture ...............


 
Anatoly Podgoretsky ©   (2008-12-12 11:11) [9]

> codemaster  (12.12.2008 10:35:08)  [8]

Не стоил, что будет если Sender = nil, лучше классика

Sender is Timage или Sender = TImage


 
ivak ©   (2008-12-12 21:41) [10]


> if Sender.ClassType = Timage then

этого не надо ибо обработчик сразу на Image стоит

> TImage(Sender).Picture

а вот это - то что я искал. спасибо большое.


 
Palladin ©   (2008-12-12 21:54) [11]


> этого не надо ибо обработчик сразу на Image стоит

да что ты... а ведь поставить можно не только на Image


 
ivak ©   (2008-12-12 22:04) [12]

одно дело куда ты его поставил в своём воображении
а другое дело - то что я его поставил именно на image а значит реагировать оно будет исключительно если я кликну на image и проверка неуметна.


 
Сергей М. ©   (2008-12-12 22:20) [13]


> проверка неуметна


Какого ж лешего ты тогда ее пытался реализовать в [3] ?


 
sniknik ©   (2008-12-12 22:39) [14]

>> TImage(Sender).Picture
> а вот это - то что я искал. спасибо большое.
плохо искал...
> проверь
> if Sender is TImage then ShowMessage(TImage(Sender).Name);
чем отличается? по принципу, а не содержанию конечно. хотя... если "упереться" в слово Picture и игнорировать смысл... повезло еще, что всего один день искал...


 
ivak ©   (2008-12-12 23:21) [15]


> Сергей М. ©   (12.12.08 22:20) [13]

то по невминательности


 
Германн ©   (2008-12-13 01:12) [16]


> sniknik ©   (12.12.08 00:57) [7]
>
> Германн ©   (12.12.08 00:52) [5]
> а смысл?
>

Смысла никакого. Но это буквальный и наиболее простой ответ на
> как мне определить куда именно юзер нажал. на 1й, 2й, 3й,
>  4й или пятый?

Тем более что сам сабж подразумевал возможность небольшого флуда. :)
Ибо с какого такого перепуга нужно было в обработчике OnClick приводить Sender к TControl?  Имхо, скорее всего сей обработчик был "творчески (но не грамотно) преобразованным" чужим кодом.


 
SCL ©   (2008-12-13 20:52) [17]

if OpenDialog1.Execute then
 (Sender as TImage).Picture.LoadFromFile(OpenDialog1.FileName);


 
ivak ©   (2008-12-13 20:54) [18]

TControl - это я лоханулся.))

а вот что такое tag? влияет ли его изменение на что нибудь??? потому что проще можно зделать так:

If TImage(Sender).Tag = 1 then ...



Страницы: 1 вся ветка

Текущий архив: 2009.01.25;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.02 c
2-1229259498
neveGreen
2008-12-14 15:58
2009.01.25
FTP Client


2-1229087384
webpauk
2008-12-12 16:09
2009.01.25
Скорость


15-1227078519
Андрей Алекс.
2008-11-19 10:08
2009.01.25
Внешний IP


8-1190127135
S7r
2007-09-18 18:52
2009.01.25
Загрузка миниатюр как в GDIPlus


2-1229183526
gulya
2008-12-13 18:52
2009.01.25
база данных в Delphi