Форум: "Основная";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];
ВнизВопрос про процедуры Найти похожие ветки
← →
hgd (2004-04-02 22:33) [0]Есть такой текст
//
procedure TForm1.ShapeDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
//?
end;
Shape: array [1..20] of TShape;
Shape[ii].OnMouseDown:=ShapeDown;
//
Как видно в тексте создается компонент Shape и присваивается процедура ShapeDown. Но как потом узнать в процедуре ShapeDown, на какой компонент произведен click.
← →
Девушка (2004-04-02 22:40) [1]Делаешь массив из TMyShape. В TMyShape добавляешь еще свойство, например index, типа целое.
При создании каждого из shap-в в констукторе в свойство index записываешь его номер равный его порядковому номеру в массиве. Потом при вызове любого события обращаешся к index
← →
hgd (2004-04-02 22:57) [2]Не понял..... я начинающий. Этот тект уже есть, но как при нажатии на TShape узнать индекс нажатого
← →
Девушка (2004-04-02 22:59) [3]Попробуй что-то типа with sender as TMyShape do a:=sender.index
← →
hgd (2004-04-02 23:45) [4]Неа не компелирует.
← →
Девушка (2004-04-02 23:49) [5]procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
with sender as TShape do Pen.Color:=clred;
end;
работает.
← →
Девушка (2004-04-02 23:51) [6]Получишь
with sender as TMyShape do begin
то что нужно получить:=index
end;
← →
Dimaxx © (2004-04-03 00:08) [7]При создании запихать номер шейпа в свойство Shape.Tag - он доступен всегда. Вот тебе и индекс. Я всегда Tag использую для таких целей.
← →
Dimaxx © (2004-04-03 00:08) [8]При создании запихать номер шейпа в свойство Shape.Tag - он доступен всегда. Вот тебе и индекс. Я всегда Tag использую для таких целей.
← →
hgd (2004-04-03 13:56) [9]А как потом из процедуры ShapeDown вызвать другую процедуру ShapeMove с тем же Shap"om
//
procedure TForm1.ShapeDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
with sender as TShape
do
Width:=X;
//а дальше что-то вроде: запусти процедуру для TShape
//ShapeMove(.... что указать?)
//ShapeMove с такими же параметрами что и ShapeDown
end;
end;
//
← →
Девушка (2004-04-03 14:37) [10]//ShapeMove(ShapeArray[index])
← →
VMcL © (2004-04-03 15:04) [11]>>hgd (02.04.04 22:33)
>Как видно в тексте создается компонент Shape
Вот чего уж точно в тексте не видно, так это создания компонента. Ну в упор не вижу TShape.Create(...)
>на какой компонент произведен click
А Sender - это, по-твоему, что за зверь?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.052 c