Sem problemas;
É isso mesmo, o dfEtapa é quem recebe o FOCUS forçado. Vou te mandar os
códigos mais completos. No dfCodFilialOQ, é feita a leitura de um código de
barras e dependendo do resultado, é FOCUS é forçado para o dfEtapa. Eu nunca
testei colocando o SalPostMsg fora do SAM_Validade, mas acredito que só
funcione ai.
Espero que ajude...
Data Field: dfCodFilialOQ
Message Actions
On SAM_Validate
If Not SalIsNull( hWndItem )
If SalStrLength(
SalNumberToStrX( dfCodFilialOQ, 0 ) ) >= 9
Set sEtiqueta
= SalFmtFormatNumber( dfCodFilialOQ, '0000000000' )
Set dfCodFazenda
= SalStrToNumber( SalStrMidX( sEtiqueta, 2, 5 ) )
Set dfCodFilialOQ
= SalStrToNumber( SalStrLeftX( sEtiqueta, 2 ) )
Set dfTalhao
= SalStrToNumber( SalStrRightX( sEtiqueta, 3) )
!
If Not
SalSendMsg( dfCodFazenda, SAM_Validate, wParam, lParam )
Return VALIDATE_Cancel
Else
Call
SalPostMsg( dfEtapa, SAM_SetFocus, 1, 0 )
Else If SalStrLength(
SalNumberToStrX( dfCodFilialOQ, 0 ) ) <= 2
Return
fValida_Filial_OQ( )
Else
Call
SalClearField( hWndItem )
Return
VALIDATE_Cancel
On SAM_KillFocus
If SalIsNull( dfCodFilialOQ )
Set dfCodFilialOQ =
fSegObtemCodigoFilial( )
On VTM_KeyUp
If ( wParam = VK_Enter ) And (
VisGetKeyState( VK_Control ) & KS_Down )
Call SalSetFieldEdit(
hWndItem, FALSE )
!
If Not SalSendMsg(
picSelFilialOQ, SAM_Click, wParam, lParam )
Call
SalSetFieldEdit( hWndItem, TRUE )
Data Field: dfEtapa
Message Actions
On SAM_SetFocus
If wParam = 1
Call SalSendMsg( dfEtapa,
SAM_Validate, 0, 0 )
! If SalIsNull( dfEtapa )
Set dfEtapa = 1
Call SalSetFieldEdit(
dfEtapa, TRUE )
Call SalSetFocus( dfEtapa )
On SAM_Validate
Set dfIntQueima = NUMBER_Null
!
If Not SalIsNull( hWndItem )
Return fValida_OQ( )
Else
Return VALIDATE_Ok
-----Mensagem original-----
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Em nome
de Sergio Yoshimura
Enviada em: segunda-feira, 10 de dezembro de 2007 16:20
Para: [email protected]
Assunto: RE: [sqlwin] Piscar o cursor
Olá Augusto, pra você o campo dfEtapa é o campo que vai receber o focus? Eu
tentei isso e não consigo, pode confirmar se está correto.
Obrigado pela ajuda e desculpe-me não consigo te ajudar na sua questão.
Sergio
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Em nome
de Augusto
Enviada: segunda-feira, 10 de Dezembro de 2007 13:03
Para: [email protected]
Assunto: RES: [sqlwin] Piscar o cursor
Eu tive esse problema e resolve assim
No campo em que o focus esta na momente em que chamo o DIALOG:
On SAM_Validate
Call SalPostMsg( dfEtapa, SAM_SetFocus, 1, 0 )
No campo em que quero que recebe o focus forçado:
On SAM_SetFocus
If wParam = 1
Call SalSendMsg( dfEtapa, SAM_Validate, 0, 0 )
Call SalSetFocus( dfEtapa )