Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.029 c
3-1080034605
Yurec66
2004-03-23 12:36
2004.04.18
Вместо DBE использовал ADS


3-1079796062
dendy1
2004-03-20 18:21
2004.04.18
Раскрасить DBGrid связанный через DataSource c Query


1-1080978292
ЛОМАК
2004-04-03 11:44
2004.04.18
Диалоговые окна в моей програме


3-1080116743
Ivan
2004-03-24 11:25
2004.04.18
Master table open operation failed


14-1080017283
Dmitriy_G
2004-03-23 07:48
2004.04.18
Что такое Патч?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский