Newsgroup: it.comp.lang.visual-basic
Titolo: Non esce il form fino alla fine del loop

Ciao,
ho messo un tasto in un form che ne apre un'altro con una textbox semplice e
questo codice:
Dal primo form apro il secondo con:
prova.frm show
Nel secondo form ho:
---cut---
    Open "pippo.txt" For Input As #2
    Do While Not EOF(2)
        Line Input #2, Linea
       If UCase(Linea) Like "*ABCD*" Then
          Txtprova.Text = Txtprova.Text + vbCrLf + Linea
          DoEvents
      End If
    Loop
    Close #2
---cut---
Sono circa 2000 linee da passare.
Il problema che non ho risolto è che, pur mettendo anche form in "alway on
top" con una api (ma anche senza), questo non appare finchè il loop di
ricerca non ha terminato la sequenza di ricerca.
Anche inserendo qualche doevent, niente da fare.
Anche togliendo la ricerca niente da fare.
Provvisoriamente ho ora risolto facendo partire il "loop" con un ulteriore
tasto nel secondo form che però mi obblica a due click al posto di uno...
[?]
Sarebbe possibile far uscire nel senso di apparire in primo piano il form
quindi senza intervento far partire la sequenza del loop che con il doevent
mi mostra i risultati volta per volta?
Grazie per qualche consiglio!
Anto
-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com
 - The #1 Newsgroup Service in the World!
-----==  Over 80,000 Newsgroups - 16 Different Servers! =-----


Accidenti... proprio mentre postava nella news... mi č venuto in mente di:
form.nomeform.visible=true
doevents
quindi nel frmload e ho risolto senza attendere lo show!
MA!!!!
riprovo con un'altro rallentamento....
se nella sequenza inserisco un contatore che mi conta le linee e lo stesso
numero lo faccio uscire in una lbl, il rallentamento č bestiale...
Tipo precedente con contatore...
---cut---
    Open "pippo.txt" For Input As #2
    Do While Not EOF(2)
        Line Input #2, Linea
        x=x+1
        lblprova.caption = x : doevents '*** (senza non aggiorna)
       If UCase(Linea) Like "*ABCD*" Then
          Txtprova.Text = Txtprova.Text + vbCrLf + Linea
          DoEvents
      End If
    Loop
    Close #2
---cut---
Con il "counter" impiega un tempo molto alto, che senza fa in un paio di
secondi.
Grazie!


 ---cut---
Primo: Ma non č prova.show?
Secondo: Hai messo quelle istruzioni nell'evento Load? Mettile nell'evento
Activate.
Terzo: Verifica anche le istruzioni che seguono prova.frm show (o, meglio,
prova.show), visto che, non essendo prevista l'esposizione modale
(prova.show vbModal) e a causa dei Doevents, vengono eseguite subito e
possono interferire con quanto ti aspetti.
Quarto: Il Doevents messo lě rischia di non essere eseguito se la condizione
di If non si verifica.

 di If non si verifica.
Si questo l'avevo messo solo per la parte "stampata" sulla txtbox, senza non
usciva nulla fino alla fine.
ciao grazie


 ---cut---
ho provato ad inserire questa linea, contando unicamente centinaia o
migliaia... risolvo in parte ma non mi piace molto:
---
If x Like "*[0-9]000" Then ....
---
ciao


 ---
Aaargh! Che è 'sta roba? :)
If (x Mod 1000) = 0 then
Ciao

Urka... Tnx for all!
Quella del "If (x Mod 1000) = 0 then" che ti ha spaventato...hi... :-))) non
la conoscevo, mi sono letto anche il suo l'help ma non ho tradotto tale
uso... ottimo!
Nella ricerca ho usato quella del "seltext" e ho migliorato di 1 secondo sui
6...
Sia con stampa numero che senza tutto ok, stesso tempo lasciando il counter
a 1000 se diminuisco, aumentano di conseguenza i tempi  a dismisura....
Grazie mille!
ps: quella del "*ABCD*" è messa casuale nel NG :-))),
inserisco una ricerca del tipo "*" & testo & "*" dove testo è la parola da
cercare nelle singole linee... spero non spaventarti di nuovo... hi... :-)))
non trovo più quel comando che mi sembra di ricordare che cercasse una
stringa in un'altra...
Ora sto anche provando a capire se posso aumentare i ~32000 caratteri nella
textbox, ma mi sembra di aver letto che non sia possibile...
Tnx! saluti
Anto


 stringa in un'altra...
InStr() o InStrRev() (la seconda funziona solo con vb6)
ciao, assa.
--
Sito Comune
http://www.it-lang-vb.net/