Главная страница
    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.039 c
14-1080097484
Думкин
2004-03-24 06:04
2004.04.18
С днем рождения! 24 марта.


1-1080930925
Феликс
2004-04-02 22:35
2004.04.18
Простой вопрос по переделке кода указанного в хелпе.


1-1080848309
Vit
2004-04-01 23:38
2004.04.18
ini-файл


1-1080291841
KSergey
2004-03-26 12:04
2004.04.18
Надо созда 2000 объектов TShape. Как ускорить?


9-1066817546
misterix
2003-10-22 14:12
2004.04.18
Исходник загрузки Half-Life mdl





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский