Форум » FiveWin » Не отрабатывает TGet:bValid » Ответить

Не отрабатывает TGet:bValid

Pasha: Если я TGet размещаю не прямо в диалоге (окне), а в отдельном TWindow (oPan), который находится в основном окне, то bValid в таких TGet ловится только при перемещении фокуса внутри oPan, а если клацнуть мышкой на контрол за пределами oPan, то bValid у TGet, находящегося в данный момент в фокусе, не вызывается Вот пример, вызов Valid сопровождается звуковым сигналом Если в момент нахождения фокуса внутри панели клацнуть на одиночный Get справа, сигнал не срабатывает Как поправить ? #include "FiveWin.ch" function Main() LOCAL oDlg, oGet, oPan LOCAL cCad:=pad("Testing Gets",40) LOCAL nNum:=0, nNum2 := 0 LOCAL dDat:=Date() Set century On Set Date Ansi SET _3DLOOK ON DEFINE WINDOW oDlg TITLE "TGet from " + FWDESCRIPTION oPan := TWindow():new(5, 5, 80, 200,,; nOR( WS_CHILD, WS_VISIBLE, WS_BORDER ),,,, oDlg,,, CLR_BLACK, CLR_HGRAY,,,,,,, .t.) @ 1, 2 SAY "Text..:" OF oPan @ 1, 6 GET oGet VAR cCad OF oPan SIZE 100, 20 PICTURE "@!" VALID {|| Tone(200,1),.t.} @ 2, 2 SAY "Number:" OF oPan @ 2, 6 GET oGet VAR nNum OF oPan SIZE 100, 20 PICTURE "999.99" VALID {|| Tone(400,1),.t.} @ 3, 2 SAY "Date:" OF oPan @ 3, 6 GET oGet VAR dDat PICTURE "@D" OF oPan SIZE 100, 20 VALID {|| Tone(600,1),.t.} @ 2, 42 SAY "Number:" OF oDlg @ 2, 46 GET oGet VAR nNum OF oDlg SIZE 100, 20 PICTURE "999.99" @ 5, 7 BUTTON "&Ok" OF oDlg SIZE 30, 12 ACTION oDlg:End() @ 5, 16 BUTTON "&Cancel" SIZE 30, 12 OF oDlg ACTION oDlg:End() CANCEL ACTIVATE WINDOW oDlg return nil

Ответов - 3

mmk: Не очень понятно зачем ЭТО :)) Но работает все правильно. У тебя создаются два набора Get'ов . При переходя на другое окно ты не заканчиваешь жет , а теряешь фокус окна . Т.е. потеря фокуса первична :) Что бы было понятней попробуй перемещаться стрелками.

Pasha: Логично, хотя мне так не походит Я Valid использую для обязательного выполнения некоторых действий при изменении значения переменной, а получается дырка, действия не выполняются

mmk: Паша извини, это не логично :))) Дырки нет :) Так , как ты написал ошибка только в одном- переменная "двоится" Не понимаю задачи :) Напиши на мыло :)




полная версия страницы