Objetivo: Passar o Foco para TextBox ( SetFocus não funciona ! )
Como resolver ?
#include <hmg.ch>
* Temporary Table Test by Grigory Filatov
* Slightly modified by Roberto Lopez
Function Main
CreateTemp()
define window winMain ;
at 0, 0 ;
width 800 height 600 main ;
title 'Passando o foco do controle GRID para TextBox : Não funciona !' ;
ON INIT winMain.brwTemp.SetFocus()
DEFINE TEXTBOX Text_1
ROW 10
COL 10
WIDTH 580
VALUE 'Hi!!!'
TOOLTIP 'TextBox'
MAXLENGTH 16
LOWERCASE .T.
ONLOSTFOCUS MsgInfo('Text_1: Why Lost Focus !')
ONENTER MsgInfo('Enter pressed')
END TEXTBOX
DEFINE LABEL Label_1
ROW 70
COL 10
VALUE 'Header Click: muda o foco para o TextBox (ou deveria !)'
WIDTH 580
END LABEL
DEFINE GRID brwTemp
COL 10
ROW 100
WIDTH 520
HEIGHT 420
HEADERS {"Item Code", "Item Description", "Rate"}
WIDTHS {125, 300, 100}
ROWSOURCE "curItem"
COLUMNFIELDS {"itemcd", "itemnm", "rate"}
ONHEADCLICK { {|| winMain.Text_1.SetFocus() }, { || winMain.Text_1.SetFocus() }, { || winMain.Text_1.SetFocus() } }
END GRID
end window
winMain.center
winMain.activate
Return
function CreateTemp()
local i := 0
local aDbf := {}
aadd(adbf, {"itemcd", "c", 10, 0})
aadd(adbf, {"itemnm", "c", 40, 0})
aadd(adbf, {"rate", "n", 8, 2})
if !hb_dbcreatetemp("curItem", adbf)
msgbox("Cannot create temporary table: Item")
RELEASE WINDOW ALL
return nil
endif
if select("curItem") = 0
use curItem new
endif
select curItem
FOR i := 1 To 10
append blank
curItem->itemcd := "CD_" + STRZERO( i, 7)
curItem->itemnm := "Compact Disc Number " + STR( i, 15)
curItem->rate := i
unlock
NEXT
return nil