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

Вниз

Вопрос про процедуры   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.021 c
14-1080201660
Паниковский
2004-03-25 11:01
2004.04.18
Java: Как сделать компонент Beans?


11-1061462101
Экселенц
2003-08-21 14:35
2004.04.18
free pascal


4-1075370514
DVM
2004-01-29 13:01
2004.04.18
Прозрачный фон дочернего окна


7-1076698012
Khabibulin
2004-02-13 21:46
2004.04.18
Display


11-1062573423
savva
2003-09-03 11:17
2004.04.18
Не могу создать картинку с текстом.. Наверное я туплю..