Page 1 of 1

COMBOBOX

Posted: Fri Dec 30, 2005 8:28 pm
by Ugo
Ho dei combobox con degli elenchi abbastanza lunghi, vorrei sapere se esiste qualche modifica per cercare l'item digitando più caratteri.
Il combo std al carattere successivo digitato sposta l'indice sul primo che soddisfa il secondo carattere.

Grazie per le risposte.

Re: COMBOBOX

Posted: Fri Dec 30, 2005 9:28 pm
by Enrico Maria Giordano
Io per questo motivo e soprattutto per il fatto che i normali combo diventano presto inusabili a causa della lentezza del caricamento quando i records sono tanti, mi sono fatto un simil combo realizzato con una GET più una TWBrowse.

EMG

Re: COMBOBOX

Posted: Fri Dec 30, 2005 10:21 pm
by Ugo
EnricoMaria wrote:Io per questo motivo e soprattutto per il fatto che i normali combo diventano presto inusabili a causa della lentezza del caricamento quando i records sono tanti, mi sono fatto un simil combo realizzato con una GET più una TWBrowse
Enrico,
ci avevo pensato ma fai apparire il TWBrowse o dedichi uno spazio apposta nella dialog?
e, se lo fai apparire come fai a farlo stare sopra il resto?

Ciao e Grazie.

Re: COMBOBOX

Posted: Fri Dec 30, 2005 10:24 pm
by Enrico Maria Giordano
Uso una dialog senza il bordo. Praticamente come fa il metodo TWBrowse:lEditCol() che fa apparire una GET sulla cella di una TWBrowse.

EMG

Posted: Fri Dec 30, 2005 10:39 pm
by Ugo
Sai se ci sono degli esempi già fatti?
Almeno per fare qualche prova?

Posted: Fri Dec 30, 2005 11:34 pm
by Enrico Maria Giordano
Non che io sappia.

EMG

Posted: Tue Jan 03, 2006 8:08 am
by juanito
Ciao Ugo,
io faccio così:
****************
FUNCTION Main()
****************
.....................................
....................................
REDEFINE GET oLDL VAR cLDL ID 109 OF oFld:aDialogs[6] READONLY FONT oFont2
REDEFINE BTNBMP oBtnLDL ID 110 OF oFld:aDialogs[6] RESOURCE "search" ;
ACTION IIF(TabeSea("Legali","Ricerca Legali",2),(cLDLCod:=Legali->CodLeg,;
cLDL:=Legali->NomLeg,oLDL:Refresh()),)
oBtnLDL:cTOOLTIP:="Apre finestra Legali"
..............................
...........................
RETURN( nil )
*************************************************
FUNCTION TabeSea( cFile,cTit,nTab ) // RICERCA TABELLE
*************************************************
LOCAL oDlg, oBtnExt, oBtnNew, oBtnAll, oBtnPrn, oBtnHlp, oLbx, oBmp, oIco
LOCAL cCerca:= ""
LOCAL lSave := .f.

(cFile)->(DBSETORDER(2))
SELECT (cFile)
(cFile)->(DBGOTOP())
DEFINE FONT oFont1 NAME "MS SANS SERIF" SIZE 0, -8 BOLD
DEFINE ICON oIco RESOURCE "ricerca"
DEFINE DIALOG oDlg RESOURCE "win" TITLE cTit FONT oFont1 ICON oIco
REDEFINE BITMAP oBmp ID 101 OF oDlg RESOURCE "scritta"
REDEFINE LISTBOX oLbx FIELDS (cFile)->TabCod,(cFile)->TabDes;
ID 102 OF oDlg HEADERS "Codice", "Descrizione" ;
FIELDSIZES 80,200 COLOR "B*/W+" FONT oFont2
oLbx:aJustify := {.F.,.F.}
oLbx:nClrForeHead:= CLR_HRED
oLbx:bKeyDown := {|nKey|IIF(nKey == VK_RETURN,(lSave := .t.,oDlg:End() ) ,;
(cCerca+=UPPER(CHR(nKey)),IIF(!(cFile)->(DBSEEK(cCerca)),;
(cCerca:="",oLbx:GoTop()),))),oLbx:Refresh()}
oLbx:bLDblClick := {||cCerca:="",lSave:=.t.,oDlg:End()}
REDEFINE BUTTON oBtnExt ID 580 OF oDlg ACTION (oDlg:End())
oBtnExt:cTOOLTIP:="Esce senza selezione"
REDEFINE BUTTON oBtnNew ID 510 OF oDlg ACTION (Tabelle(nTab),;
oLbx:GoTop(),oLbx:Refresh())
oBtnNew:cTOOLTIP:="Nuovo Record"
REDEFINE BUTTON oBtnAll ID 670 OF oDlg
REDEFINE BUTTON oBtnPrn ID 590 OF oDlg
REDEFINE BUTTON oBtnHlp ID 730 OF oDlg
oBmp:lTransparent:=.t.
ACTIVATE DIALOG oDlg CENTERED ON INIT oLbx:GoTop()
(cFile)->(DBSETORDER(1))
RETURN( lSave )

Spero possa esserti di aiuto.
Giovanni Cacciotti

Posted: Tue Jan 03, 2006 9:11 pm
by Ugo
Ciao Giovanni,
iniziato bene l'anno?
spero di si!

Lo provo e ti dico...
...sicuramente è meglio di niente. ;)

Ciao e grazie,
Ugo