Newsgroup: it.comp.lang.vo-clipper
Titolo: chiusura finestre

a chiunque possa aiutarmi,
in VO come posso fare a chiudere delle finestre sottostanti ?
Mi spiego:
arrivo alla finestra di stampa (datadialog) e chiudendo questa vorrei anche
chiudere la sottostante datawindows (da cui ho aperto la finestra di
stampa).
Nella stessa fase vorrei svuotare l'archivio di stampa.
Grazie a tutti
Francesco

 ha scritto nel messaggio
news:AtK68.18186$om6.4...@news1.tin.it...


stampa).
Un modo per risolvere potrebbe essere questo:
method ApriDataDlg() class MyDataWindow
....
oDDlg:show()	// data dialog modale
....
....
self:endWindow()	//a questo punto la data dialog è già chiusa
			//non resta che chiudere la datawindow stessa
return
===============================================
Antonello Negrone - Biella - Italy
anto...@anc-software.it
www.anc-software.it

 ha scritto nel messaggio
news:3c5bbadc...@news.aruba.it...


 ha scritto nel messaggio
news:3DO68.18466$om6.4...@news1.tin.it...


> return
ciao

 ha scritto nel messaggio
news:1t4o5ucv2letspdnc...@4ax.com...


Allora...
nel bottone della datawindow dal quale apri la dialogwindow immagino che
avrai scritto del codice simile a questo :
METHOD PushButton1( ) CLASS NewWindow1
 LOCAL OWIN AS StampaWindow    // finestra della stampa
owin := StampaWindow{SELF:owner,,,SELF}
 owin:Show()
RETURN NIL
se guardi queste righe vedrai che quando creo l'oggetto owin, gli passo come
ultimo parametro
(importante) l'oggetto SELF il quale non è altro che la finestra NewWindow1.
Nella dichiarazione di classe della dialog (stampaWindow) devi dichiarare
una variabile istanza
CLASS StampaWindow AS DATADIALOG
 {{%UC%}} USER CODE STARTS HERE (do NOT remove this line)
  HIDDEN oOwner AS OBJECT    // variabile istanza
nel metodo PostInit della Finestra StampaWindow() devi memorizzare il
parametro detto prima in questa variabile. In tal modo la finestra
StampaWindow "riconosce" la sua finestra "madre":
METHOD PostInit(oWindow,iCtlID,oServer,uExtra) CLASS StampaWindow
 SELF:oOwner := uextra
 RETURN NIL
A questo punto risulterà molto semplice chiudere la "figlia" e la "madre".
METHOD PushButton1( ) CLASS StampaWindow
SELF:oOwner:EndWindow()
 SELF:EndWindow()
RETURN NIL
Va bene ?
Ciao
Enio

 RETURN NIL
SELF:owner in questo caso a cosa si riferisce? Alla Shell che č l'owner di
NewWindow1 ? Passando come primo parametro solo SELF che č l'oggetto della
classe NewWindow1 cosa cambierebbe?  NewWindow1 non sarebbe comunque l'owner
di oWin?
Ciao.
Roberto Cordini
Roberto Cordini


Self:Owner si riferisce alla ShellWindow, lasciando solo self si indica che
l'owner è la finestra chiamante. In effetti in questo caso se si indica self
si può evitare di passare l'ultimo parametro, poiché l'owner sarà la
finestra chiamante.
Quindi se nel metodo di uscita della finestra StampaWindow si scrive :
METHOD PushButton1( ) CLASS StampaWindow
SELF:Owner:EndWindow()
 SELF:EndWindow()
RETURN NIL
si ottiene lo stesso risultato
Ciao
Enio

Per essere più precisi :
nel caso di una datawindow che chiama una dialog può andare bene "SELF" come
owner
ma se una datawindow chiama un'altra datawindow, si deve scrivere
"SELF:Owner" altrimenti la finestra chiamata non viene visualizzata, questo
probabilmente è dovuto alla natura stessa delle datawindow  (provare per
credere !!)


In altre parole vuoi dire che per una volta ci ho preso? Me la segno sul
calendario!
Ciao e grazie.
Roberto Cordini

Io voglio chiudere le due finestre partendo dalla datadialog
Immagino che la datadialog avrà due pushbutton tipo "Chiudi" e
"Conferma".
Entrambi chiuderanno la datadialog stessa con
SELF:EndWindow()
giusto? Se è così,  utilizzando un metodo come quello proposto,
l'esecuzione passa all'istruzione successiva alla oDDlg:Show(),
dopo la quale con SELF:endwindow() chiudi anche la datawindow.


 ha scritto nel messaggio
news:Jkb78.23294$3J1.7...@news2.tin.it...

... direi che viene visualizzata, ma sulla stessa finestra chiamante,
creando un gazzabuglio di oggetti.
Per quanto riguarda la chiusura della datawindow chiamante una dialog,
vorrei solo precisare che la chiusura di ogni ogni dialog può essere letta
dalla chiamante: posso chiuderla con EndDialog(0) oppure con EndDialog(1)
... sono nel metodo della datawindow chiamante:
oDlg := mydialog{self,mieiparametri}
oDlg:show()
if oDlg:result  = 0
    self:EndWindow()
    return nil
endif
se la dialog si è chiusa con EndDialog(0) la chiamante si chiude, altrimenti
(se la dialog si è chiusa con EndDialog(1)) resta aperta e continua codice
sotto.
mi è sembrata una cosa semplice che meritava di essere scritta
Ciao
Massimo

 ha scritto nel messaggio
news:a3mpof$1tb$1...@pegasus.tiscalinet.it...


 >
[snip Enio]
