Newsgroup: it.comp.lang.vo-clipper
Titolo: Ricerche su RichEdit

Ciao a tutti
In una DialogWindows di un'applicazione scritta con VO2.6 c'era un controllo 
RichEdit che popolavo con un file ti testo.
All'interno di questo controllo l'utente poteva cercarvi i contenuti 
desiderati tramite una SINGLELINEEDIT, per il testo da cercare, e un 
PUSHBUTTON per avviare la procedura di ricerca. Tutto funzionava 
perfettamente.
Ho migrato l'applicazione in VO2.7b e il metodo Seek del controllo RichEdit 
non mi trova piů nulla !!!
Vi posto alcuni pezzi
-------------------- Per popolare il controllo RichEdit --------------
METHOD CarattereNormale( ) CLASS ListPag
 SELF:oDCRichEdit1:Font(Font{,8,"Courier New"}, FALSE)
 SELF:oDCRichEdit1:LoadFromFile(SELF:sNomeFile, 1)
 SELF:oDCRichEdit1:Show()
 SELF:MaxTesto := SELF:oDCRichEdit1:Length
RETURN NIL
--------------------- Per cercare la stringa all'interno del 
controllo -----------
METHOD Cerca( ) CLASS ListPag
  SELF:iTrovato := SELF:oDCRichEdit1:Seek(SELF:oDCTesto:TextValue, Range{1, 
SELF:MaxTesto}))
  IF SELF:iTrovato > 0
      SELF:oDCRichEdit1:SetFocus()
      SELF:oDCRichEdit1:Selection := Selection{SELF:iTrovato, SELF:iTrovato}
      SELF:oCCAncora:Enable()
  ELSE
        WarningBox{SELF, "Cerca ...", SELF:oDCTesto:TextValue + ;
        CHR(10) + CHR(10) + "non trovato !"}:Show()
      SELF:iTrovato := 0
      SELF:oDCTesto:TextValue := NULL_STRING
      SELF:oDCTesto:SetFocus()
  ENDIF
RETURN NIL
----------------------------------------------------------------------
C'č qualcuno che ha risolto il problema ? Oppure sbaglio qualcosa ?
Grazie
Claudio

 ha scritto nel messaggio 
news:44d34f58$0$47970$4faf...@reader3.news.tin.it...


 ha scritto nel messaggio 
news:qYIAg.14039$ZJ6....@tornado.fastwebnet.it...


Per tutti coloro che non hanno l'esperienza di Luigi ma hanno bisogno di 
fare comunque delle ricerche all'interno di un controllo RichEdit.
Vi suggerisco di:
// memorizzare il contenuto del controllo in una variabile di classe, nel 
mio caso era un file di testo
  SELF:sTesto := MemoRead(SELF:sNomeFile)
// trasformare i carriage return/linefeed in _Chr(141)
  SELF:sTesto := StrTran(SELF:sTesto, _Chr(13) + _Chr(10), _Chr(141))
// trasformare in maiuscolo, se non si vuole fare una ricerca sensibile al 
maiuscolo/minuscolo
  SELF:sTesto := Upper(SELF:sTesto)
effettuare le ricerche su questa variabile di classe invece che sul 
controllo RichEdit.
---------------------- Per la ricerca ... ----------------------------
METHOD Cerca( ) CLASS ListPag
  SELF:iTrovato := At2(Upper(SELF:oDCTesto:TextValue), SELF:sTesto)
  IF SELF:iTrovato > 0
  SELF:oDCRichEdit1:SetFocus()
  SELF:oDCRichEdit1:Selection := Selection{SELF:iTrovato, SELF:iTrovato + 
Len(SELF:oDCTesto:TextValue)}
  SELF:oCCAncora:Enable()
  ELSE
   WarningBox{SELF, "Cerca ...", SELF:oDCTesto:TextValue + ;
        CHR(10) + CHR(10) + "non trovato !"}:Show()
  SELF:iTrovato := 0
  SELF:oDCTesto:TextValue := NULL_STRING
  SELF:oDCTesto:SetFocus()
  ENDIF
RETURN NIL
------------------------ per la ricerca di altre 
occorrenze... ------------------------
METHOD Ancora( ) CLASS ListPag
  SELF:iTrovato := At3(Upper(SELF:oDCTesto:TextValue), SELF:sTesto, 
SELF:iTrovato + Len(SELF:oDCTesto:TextValue))
  IF iTrovato > 0
  SELF:oDCRichEdit1:SetFocus()
  SELF:oDCRichEdit1:Selection := Selection{SELF:iTrovato, SELF:iTrovato + 
Len(SELF:oDCTesto:TextValue)}
  ELSE
   WarningBox{SELF, "Ancora ...", SELF:oDCTesto:TextValue + ;
        CHR(10) + CHR(10) + "nessun'altra occorrenza"}:Show()
  SELF:iTrovato := 0
  SELF:oDCTesto:TextValue := NULL_STRING
  SELF:oDCTesto:SetFocus()
  ENDIF
RETURN NIL
Riposatevi, se potete !!!
Claudio Carletta