Newsgroup: it.comp.lang.visual-basic
Titolo: Info tecniche ..ci riprovo: FORM MDI e prg (lunghetto) ..Per i GURU del NG

Provo a chiedere in maniera diversa:
In una window normalmente metto una applicazione.
Vb ha le form per interagire e mostare le finestre.
Ora ogni window ha un handle.
Posso monitorare una finestra con le API ed ho bisogno di un handle.
Con un po' di Api posso far si che l'applicazione di una finestra
aspetti il termine di
un processo ( o posso forzarlo a terminare) che gira in un'altra window.
OK
ma... nel caso di form MDI il form principale serve da contenitore per
altre finestre che mandano in esucuzione pezzi di codice di una STESSA
applicazione.
PERO'
mi immagino che le finestre child abbiano comunque un handle e che da
qualche parte esista una struttura.
Se voglio aspettare il termine di una elaborazione di un'altra finestra
(.... a che mi serve? beh!.. ho un DB con una form dati ... lancio la
ricerca su un particolare campo ...la ricerca la fa in una finestra,..
mi presenta i dati ..scelgo... e li inserisce nel form...) ho risolto da
codice:
.............flusso prg normale
' SIMULAZIONE DI MODALE
   Dim aret As Long
    While (aret = 0)
        DoEvents
            If CHIUDEricerca = 1 Then aret = 1
    Wend
' FINE SIMULAZIONE MODALE
.......riprende flusso prg normale
nel form in frm.unload ho il set di CHIUDEricerca
 tutto funge ... ma non mi soddisfa...vorrei trovare il pelo nell'uovo
Ossia:
    ' Posso far diventare (subclassing o qualcosa tramite API) le form
child modali (non trasformarle in form normali!)
ossia posso far diventare asincrona il qualche punto preciso (a mio
comando) l'esecuzione del mio prg senza andare ad eseguire
cicli come sopra?
Per la cronaca: ho provato a modificare i vari esempi di prg che
aspettavano la fine di un processo di una finestra ma non
funzionano...penso perchč qui c'č il solito processo distribuito in piů
finestre (MDI + child).
Perň se il codice di sopra funziona non dovrebbe essere impossibile
studiare qualcosa per intercettare eventi provenienti dalla finestra
child e sospendere l'esecuzione in qualche pezzo di codice
GURU del NG che faccio? Sono un pazzo a bacarmi le palle per roba del
genere(tanto piů che il prg funziona)??Mi sembra solo una soluzione poco
elegante!
Grazie per la pazienza!
Marco

 ha scritto nel messaggio news:3A1E2481...@dg.uk...

Devo avere perso una puntata!
Scusa ma se lo scopo č quello di fare la ricerca su un'altra child, non ti
conviene mettere fuori un bello VbHourGlass come Puntatore-Topo, dichiarare
la seconda finestra come Modale e Non-child e fare aspettare pazientemente
il tuo utente per il decimo di secondo che ci mette un motore Sql a
rispondere?
ciao
ugo

Se l'utente č inesperto ( e non tutti quelli che chiedono programmi sono
esperti....anzi la maggioranza sono dei veri "brodi" come si dice in Toscana) li
apro solo un form MDI e dentro le varie finestre che si aprono e chiudono...non
solo ma il mdi lo blocco a tutto schermo cosě li sembra di essere in una sola
applicazione vecchio stile.
Fanno tutto li dentro e sono contenti perchč non vedono altro .
Se li apro altre finestre vedono i pulsanti nella barra delle applicazioni e
vanno in panico
Lo sai che uno mi ha chiamato perchč era apparsa la finestra di un altro colore?
Ugo Mangini ha scritto:


 vanno in panico
Beh, non e' vero. Se apro una finestra modale da una MDI non mi viene
visualizzata della taskbar (almeno questo su w2k, e' tanto che non
riaggeggio con VB), in ogni caso se la memoria non mi inganna c'e' una
proprieta' che si chiama "ShowInTaskbar".

Abbi pazienza forse mi son fuso il cervello:
rileggi il messaggio originale
io ho vb6 ed ho win nt4 sp4
se dico formname.show vbmodal
in un form MDI per un form mdichild=true NON me lo fa!Errore!
se mdichild=false
lo fa ma si vede nella taskbar
è qui il problema:
sotto form mdi puoi aprire quante finestre vuoi e vedi nella taskbar solo quella
mdi MA (a meno che non abbia una versione pisquana solo per me) normalmente
non puoi aprire form child modali
Lo so che è discussione quasi del sesso degli angeli
ed infatti nel msg originale ho anche la soluzione (grezza ma perfettamente
funzionante) ma volevo
sapere dai guru del ng anche per progredire come programmatore se si può forzare
(tramite API o quant'altro) a fare
quello che mi piacerebbe avere:
form child che si aspettano (asincrone)
ZER0 ha scritto:


Confermo quello che ha detto Pakor: se tu imposti la ShowInTaskbar a false,
il tuo form modale non compare sulla taskbar.
A quel punto visto che mi dici di usare un Mdi a tutto schermo, vorrei
vedere quale dei tuoi utenti "inesperti" saprà distinguere il tuo form
modale non child da un form child.
A parte queste considerazioni, esiste sempre la posibilità di usare un form
child non-modale...
Normalmente io lavoro proprio così sulla ricerca dati: apro una seconda
MdiChild con la griglia dati filtrata che pilota i dati del form di
dataentry.
ciao
ugo

 form child che si aspettano (asincrone)
Capisco, quel che io avevo invece "recepito" era avere una finestra modale
che non si vedesse nella taskbar.