Código: Selecionar todos
#include "minigui.ch"
Function Main
Local aHeadClick [2]
private aRows [10] [2]
aRows [1] := {'Simpson' , 'Homer' }
aRows [2] := {'Mulder' , 'Fox' }
aRows [3] := {'Smart' , 'Max' }
aRows [4] := {'Grillo' , 'Pepe' }
aRows [5] := {'Kirk' , 'James' }
aRows [6] := {'Barriga' , 'Carlos' }
aRows [7] := {'Flanders' , 'Ned' }
aRows [8] := {'Smith' , 'John' }
aRows [9] := {'Pedemonti' , 'Flavio' }
aRows [10] := {'Gomez' , 'Juan' }
AEVAL(aHeadClick, {| x, i | aHeadClick[ i ] := { |n| SortColumn( n ) }})
DEFINE WINDOW Form_1 ;
AT 0,0 ;
WIDTH 568 ;
HEIGHT 430 ;
TITLE 'Pesquisa incremental no Grid' ;
MAIN ;
FONT 'Arial' ;
SIZE 9 ;
ON INIT FillGrid()
DEFINE LABEL Label_1
ROW 360
COL 10
WIDTH 80
VALUE 'Pesquisando:'
VCENTERALIGN .T.
END LABEL
DEFINE TEXTBOX Text_1
ROW 360
COL 95
WIDTH 150
ONCHANGE {||SearchChange()}
END TEXTBOX
DEFINE GRID Grid_1
ROW 10
COL 10
WIDTH 420
HEIGHT 330
HEADERS { 'Sobrenome' , 'Nome' }
WIDTHS { 80, 180 }
CELLNAVIGATION .T.
ONHEADCLICK aHEADCLICK
ONDBLCLICK id('Form_1','Grid_1',1)
Value {1,1}
END GRID
END WINDOW
CENTER WINDOW Form_1
ACTIVATE WINDOW Form_1
Return(Nil)
/*********************************************************/
Procedure SearchChange()
/*********************************************************/
Local cTxt, nLen, i
cTxt := GetProperty( 'Form_1' , 'Text_1' , 'Value' )
nLen := Len( cTxt )
nCol:= Form_1.Grid_1.Value [2]
Form_1.Grid_1.DeleteAllItems
//Procura o texto
For i := 1 To Len( aRows )
If Upper( cTxt ) = Upper( Left( aRows [ i ] [ nCol ] , nLen ) )
Form_1.Grid_1.AddItem ( aRows [ i ] )
Endif
Next
Form_1.Grid_1.Value:={1,nCol}
Return
/*********************************************************/
Procedure FillGrid()
/*********************************************************/
Local i
For i := 1 To Len( aRows )
Form_1.Grid_1.AddItem ( aRows [ i ] )
Next
Return
/*********************************************************/
Procedure SortColumn(nColumnNo)
/*********************************************************/
Form_1.Grid_1.Refresh
Asort( aRows, , , { | x, y | x[ nColumnNo ] < y[ nColumnNo ] })
Form_1.Grid_1.DeleteAllItems
Aeval( aRows, { | x | Form_1.Grid_1.AddItem( x ) } )
Form_1.Grid_1.Value:= {1,nColumnNo}
Return (Nil)
E o pior é que não tenho mais a versão anterior de Minigui. Alguém sabe aonde encontrar o download de versões anteriores ?


