|
|
|
Написать свое OnMouseDown.
|
|||
|---|---|---|---|
|
#18+
Подскажите как в C++Builder 6 написать свою функцию для события OnMouseMove и OnMouseDown. Т. е. у меня динамически создаются компоненты TImage, у всех должно быть одинаковые события OnMouseMove и OnMouseDown. Пытался сделать так: Код: plaintext 1. 2. 3. 4. А потом Код: plaintext Выдает ошибку: Cannot convert ... Создал невидимый TImage, для него написал MouseMove и сделал Код: plaintext Но все же хотелось бы обойтись без лишнего Image. Подскажите как описать MyMouseMove и MyMouseDown чтобы можно было сделать Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 10:21 |
|
||
|
Написать свое OnMouseDown.
|
|||
|---|---|---|---|
|
#18+
void __fastcall TForm1:: MyMouseMove(TObject *Sender, TShiftState Shift, int X, int Y) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 11:17 |
|
||
|
Написать свое OnMouseDown.
|
|||
|---|---|---|---|
|
#18+
Спасибо, ZrenBy. А нельзя ли сделать MyMouseMove без привязки к какому либо конкретному компоненту при проектировании? Ведь Код: plaintext 1. все равно привязывается к компоненту Form1. Мне бы хотелось написать процедурку обработки этого события, а при создании компонента просто указывать, что при OnMouseMove выполняется такая-то процедура. Проблема в том что я не знаю как описать тип этой процедуры, чтобы была совместимость типов. Конечно можно сделать как предложил ZrenBy, но все же хотелось бы сделать процедуру без привязки к конкретному компоненту. Помогите, кто знает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 12:44 |
|
||
|
Написать свое OnMouseDown.
|
|||
|---|---|---|---|
|
#18+
Метод здесь\r \r TMethod Mth;\r Mth.Data = this \r Mth.Code = MyMouseMove\r \r /topic/50734 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 13:04 |
|
||
|
Написать свое OnMouseDown.
|
|||
|---|---|---|---|
|
#18+
Что-то не работает... Написал Код: plaintext 1. 2. 3. Пишет ошибку: Cannot convert 'void (__fastcall * (__closure)(TObject *))(TObject *)' to 'void (__fastcall * (__closure)(TObject *,TShiftState,int,int))(TObject *,TShiftState,int,int)' хотя MyMouseMove: Код: plaintext 1. 2. 3. 4. Что-то не понял в чем дело? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 13:25 |
|
||
|
Написать свое OnMouseDown.
|
|||
|---|---|---|---|
|
#18+
>>MyMouseMove(TObject *Sender, TShiftState Shift,int X, int Y) MyMouseMove(TObject *AFake,TObject *Sender, TShiftState Shift, int X, int Y) В AFake передается Mth.Data = this ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 13:48 |
|
||
|
Написать свое OnMouseDown.
|
|||
|---|---|---|---|
|
#18+
//void __fastcall MyMouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall (__closure *TMouseEvent)(System::TObject* Sender, TMouseButton Button, Classes::TShiftState Shift, int X, int Y); void __fastcall MyMouseMove(TObject *AFake,TObject *Sender, TShiftState Shift,int X, int Y){ Form1->ListBox1->Items->Add(IntToStr(X)); } void __fastcall TForm1::Button2Click(TObject *Sender){ TMethod Mth; Mth.Data = this; Mth.Code = MyMouseMove; Form1->OnMouseMove = *(TMouseMoveEvent*)&Mth; } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 13:57 |
|
||
|
Написать свое OnMouseDown.
|
|||
|---|---|---|---|
|
#18+
Покрасивше Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 14:01 |
|
||
|
|

start [/forum/topic.php?fid=57&tid=2035897]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
33ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
25ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 291ms |

| 0 / 0 |
