Страница 1 из 1

EVENT для динамически создаваемых контролов

Добавлено: 02 Октябрь 2005, 17:08
m0uSE
Здравствуйте.

создаю кнопку:

ctrl=create(0,CREATE:BUTTON)
...
ctrl{prop:hide} = false

и таких кнопок около 80 штук :shock:

как отлавливать нажатие на каждую из них в отдельности и выполнить соответствуеше номеру кнопки действие...

Добавлено: 03 Октябрь 2005, 0:06
Admin
CASE ACCEPTED()
OF ctrl
! do action
OF ctrl+1
! do action
OF ctrl+2
! do action
OF ctrl+3 OROF ctrl+4
! do action
ELSE
IF ACCEPTED() = ctrl+5
! do action
END
IF ACCEPTED() = ctrl+5
! do action
END
END

Добавлено: 03 Октябрь 2005, 0:07
Admin
ctrl = номер первого созданного контрола

Добавлено: 03 Октябрь 2005, 1:46
StillZero
так IMHO попроще будет

Код: Выделить всё

CtrlFEQ LONG,DIM(80)

 code
 ...
 CtrlFEQ[1]=CREATE(0,CREATE:Button)

 ACCEPT
    CASE EVENT()
       OF EVENT:ACCEPTED
          LOOP counter=1 to 80
             IF FIELD()=CtrlFEQ[counter]
                message('нажали кнопку с номером '&counter)
             END
           END
    END
 END
PS
опять "Сапера" делаешь?

Добавлено: 03 Октябрь 2005, 3:44
m0uSE
CASE ACCEPTED()
OF ctrl
! do action
OF ctrl+1
! do action
OF ctrl+2
! do action
OF ctrl+3 OROF ctrl+4
! do action
ELSE
IF ACCEPTED() = ctrl+5
! do action
END
IF ACCEPTED() = ctrl+5
! do action
END
END
так зделал но чуть башня не съехала пока на все 80 прописал :)

Код: Выделить всё

CtrlFEQ LONG,DIM(80)

 code
 ...
 CtrlFEQ[1]=CREATE(0,CREATE:Button)

 ACCEPT
    CASE EVENT()
       OF EVENT:ACCEPTED
          LOOP counter=1 to 80
             IF FIELD()=CtrlFEQ[counter]
                message('нажали кнопку с номером '&counter)
             END
           END
    END
 END 
подобное не проходило хотя по другому делал... может наворотил :)
PS
опять "Сапера" делаешь?
нет... это учет по запуску игр в клубе... запускает и записывает в базу + 1 :) но так как неизвестно у кого скоко игр то приходится создавать кнопки динамически :) всем спосибо за ответы вобшем проблема решена...

Добавлено: 03 Октябрь 2005, 12:44
Admin
Судя по всему ты что то криво сделал... или продумал.
По идее в твоем варианте Var +=1
можно код очень компактным сделать...
Типа заюзать смещение контрола и смещение переменной в файле, или еще как ...