Форум: "Начинающим";
Текущий архив: 2008.02.17;
Скачать: [xml.tar.bz2];
Внизобработчики на динамически загружаемые image ы Найти похожие ветки
← →
Тоник (2008-01-24 18:23) [0]мастера помогите решить вопрос!
на форме есть scrollbox, в него загружаются и распологаются image(их может быть много).
для того чтобы выделять иконку я делал так(Image1 - рамка при наведении, image2 - рамка при нажатии):
procedure TForm1.ImageEx1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Image1.Visible := false;
Image2.Visible := True;
image2.Left := ImageEx1.Left-4;
Image2.Top := ImageEx1.Top - 4;
end;
procedure TForm1.ImageEx1MouseEnter(Sender: TObject);
begin
Image2.Visible := false;
Image1.Visible := True;
image1.Left := ImageEx1.Left-4;
Image1.Top := ImageEx1.Top - 4;
end;
procedure TForm1.ImageEx1MouseLeave(Sender: TObject);
begin
Image2.Visible := false;
Image1.Visible := false;
end;
procedure TForm1.ImageEx1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Image1.Visible := true;
Image2.Visible := false;
image1.Left := ImageEx1.Left-4;
Image1.Top := ImageEx1.Top - 4;
end;
криво но работает как надо, так вот мне надо сделать так чтобы эти обработчики распространились на все image"ы которые находятся в scrollbox"e
как это сделать?
← →
Семеныч (2008-01-24 18:29) [1]ImageXXX := TImageEx.Create(Self);
ImageXXX.Parent := ScrollBox1;
ImageXXX.SetBounds(...);
ImageXXX.OnMouseDown := ImageEx1MouseDown;
ImageXXX.OnMouseEnter := ImageEx1MouseEnter;
ImageXXX.OnMouseUp := ImageEx1MouseUp;
← →
Тоник (2008-01-24 18:39) [2]эт то да, но ведь будут срабатывать обработчики для imageex1, а должно у вновь созданного,да и вообще у всех
← →
Юрий Зотов © (2008-01-24 18:40) [3]У всех и будут.
← →
clickmaker © (2008-01-24 18:41) [4]
> [2] Тоник (24.01.08 18:39)
для всех будут
только под именем Sender будет конкретный
← →
Тоник (2008-01-24 18:43) [5]делаю
var
new_image:TImageEx;
begin
new_image := TImageEx.Create(Self);
new_image.Parent := ScrollBox1;
new_image.Picture.LoadFromFile("icon.png");
new_image.Left := 10;
new_image.Top := 100;
new_image.OnMouseDown := ImageEx1MouseDown;
new_image.OnMouseEnter := ImageEx1MouseEnter;
new_image.OnMouseUp := ImageEx1MouseUp;
при наведении срабатывает и выделяется imageex1 а не new_image
← →
Семеныч (2008-01-24 19:24) [6]> Тоник (24.01.08 18:43) [5]
Что написано в обработчике, то и выделяется. Написано Image1 - значит и операция будет произведена с Image1.
Используйте Sender - это и будет тот Image, который вызвал обработчик:
with TImageEx(Sender) do
begin
Visible := True;
...
end;
← →
Тоник (2008-01-24 19:36) [7]спасибо то что надо :)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.02.17;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.051 c