Главная страница
    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.46 MB
Время: 0.039 c
6-1076854734
Vladimir Bolotin
2004-02-15 17:18
2004.04.18
Работа с открытими спамерскими базами (типа ORDB)


1-1080326176
ser_ega
2004-03-26 21:36
2004.04.18
Печать текста!!!


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


4-1076160216
kentavr
2004-02-07 16:23
2004.04.18
Помоги с Handle


1-1080563401
Анна
2004-03-29 16:30
2004.04.18
Цветные строки в TMemo





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