Вниз
Скачать: CL | DM;

Перемещение по картинкам   Найти похожие ветки 

← →
switch   (2008-03-02 19:07) [0]

На форме есть несколько миникартинок, при нажатии на каждую срабатывает определенная процедура.
procedure TgalForm.Image1Click(Sender: TObject);
begin
 ...
end;

procedure TgalForm.Image2Click(Sender: TObject);
begin
...
end;
Добавила на форму две кнопки Next, Prev.
Можно ли сделать чтобы при нажатии на эти кнопки присходило перемещение по изображениям, то есть перемещение по процедурам?


← →
{RASkov} ©   (2008-03-02 19:15) [1]

> [0] switch   (02.03.08 19:07)

Ты что-то напутала...
Попробуй вот такой вариант:
Сделать общий обработчик OnClick внутри которого "картинку" определять по Sender"у.
procedure TgalForm.AllImageClick(Sender: TObject);
begin
 ...TImage(Sender)...
end;

Сами "картинки" помести в список...
ListImage: TStringList; //в Object храни ссылки на Image"ы
Ну и вызов по кнопкам будет нечто так:
procedure TgalForm.ButtonNextClick(Sender: TObject);
begin
...
 Inc(CurrentImage);
 AllImageClick(TImage(ListImage.Object[Current]);
end;


← →
{RASkov} ©   (2008-03-02 19:17) [2]

> ListImage: TStringList; //в Object храни ссылки на Image"ы

А в строках можно хранить описание картинки....
Как вариант, можно просто TList... еще лучше TObjectList из Contnrs.pas..... ну или array...


← →
switch   (2008-03-02 20:02) [3]

А если все процедуры разные? Забить их в
procedure TgalForm.AllImageClick(Sender: TObject);
при помощи case?


← →
{RASkov} ©   (2008-03-02 20:20) [4]

> [3] switch   (02.03.08 20:02)

Что значит разные? Может и разные.... тогда нет смысла в общем обработчике....
Тогда обработчик кнопки Next, например, будет так:
procedure TgalForm.ButtonNextClick(Sender: TObject);
begin
...
Inc(CurrentImage);
TImage(ListImage.Object[CurrentImage]).OnClick(ListImage.Object[CurrentImage]);
end;


← →
switch   (2008-03-02 20:39) [5]


> Что значит разные?

В  смысле нажатие на каждой кнопке приводит к разным действиям.


> Inc(CurrentImage); TImage(ListImage.Object[CurrentImage]).
> OnClick(ListImage.Object[CurrentImage]);

А вот этот вариант мне подходит -спасибо!!!


← →
switch   (2008-03-02 21:02) [6]

ListImage
А как создать этот список?
Просто никогда не работала с объектами класса TImage...:(


← →
Германн ©   (2008-03-02 21:08) [7]


> switch   (02.03.08 21:02) [6]
>
> ListImage
> А как создать этот список?

ListImage:=TStringList.Create;
ListImage.AddObject("This is the FirstImage",Image1);



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.03 c
15-1202910633
Пробегал...
2008-02-13 16:50
2008.03.30
Функция, возвращающая строку ошибки


3-1193909601
Ega23
2007-11-01 12:33
2008.03.30
Помогите с запросом, уже всю баку сломал


2-1204182102
AlexeyMir
2008-02-28 10:01
2008.03.30
ImageList1 в TreeView


2-1204487900
Lamer666
2008-03-02 22:58
2008.03.30
DBGridEh и поле с авто просчетом


15-1203444046
MonsterHell
2008-02-19 21:00
2008.03.30
Переопределение днс




   Наверх