Newsgroup: it.comp.lang.visual-basic
Titolo: [?] form modeless

riCiao a tutti,
scusate la domanda forse banale, ma non sono riuscito a trovare un qualche
cosa in msdn che ne parlasse (sono certo che si sia, tuttavia...). Il mio
problema e' questo: ho una form main che mi regge in piedi il programma ed
un'altra che deve essere visualizzata (a discrezione dell'utente) o modeless
rispetto alla prima, oppure normale. Il passaggio da un-modeless a modeless
e' semplice (basta nasconderla con hide e poi richiamare show con i giusti
parametri), ma non sono riuscito a capire come sia possibile il passaggio
inverso (se nascondo con hide e riporto a video con show... rimane
modeless...). Eventualmente (forse meglio) anche una funzione API che mi
permetta di farlo, ditemi anche solo il nome, la documentazione me la vado a
pigliare.
Qualche idea?
grazie in anticipo, assa.

modeless...).
Non basta fare form.show vbModal ??
Oppure non ho capito cosa devi fare...
Ciao,
Aran

 Non basta fare form.show vbModal ??
no, io non voglio una form modale, ma una form modeless (scusatemi, ma il
corrispondente in italiano non lo so), ovvero una form che rimanga sempre su
un piano superiore rispetto ad un'altra. da codice vb si ottiene con:
form.show vbModeless, Owner
dove owner e' la form su cui quella visualizzata rimane in ogni caso sopra.
piu' chiaro, ora?
ciao, assa.

ciao, assa.
Ah, ok....
in questo caso non saprei ^__^; sorry.
Aran

 modeless...).
un semplice unload, con salvataggio e reload di eventuali parametri (p.e.
left, top ecc.) che con hide conservavi ?


 left, top ecc.) che con hide conservavi ?
semplice? :)
ci ho pensato pure io, ma il fatto e' che la form che devo visulizzare e'
una sorta di chat. sulla form e' presente un controllo fatto da me, tipo una
textbox, che possiede al suo interno un buffer in cui memorizza tutti i
messaggi visualizzati nella chat. capisci che se eseguo un unload mi si
cancella pure il buffer e con esso tutta la conversazione avuta fino a quel
momento...
certo e' che se non trovo altra soluzione mi salvero' altrove il buffer per
poi eseguire l'unload e ripristinarlo, ma possibile che non ci sia un metodo
piu' immediato? esiste almeno un'api per visualizzare forms come modeless?
grazie, assa.
--
Sito Comune
http://www.it-lang-vb.net/

 momento...
sull'api non ti so aiutare, ma un buffer, a meno che non l'hai fatto a
colori diversi ecc., ci metti un paio di ms a salvarlo/ricaricarlo.
ciao, a.


 grazie in anticipo, assa.
CUT
Causa un attacco acuto di Format ,Seek & Destroy son con 3 HD fuori uso e
con questi di emergenza su 2 slitte...
quindi non ho provato nulla ed ho perso i miei preziosissimi link! SIGH!
:-(
per farla modeless
http://www.avdf.com/multimedia/samp_modeless.html
...ma guarda che più in su dice anche come farla modal...
non ho testato nulla! prendilo con beneficio di inventario....e fammi sapere
se funge!
ciauz!

Wodka4U <marc_AnTiSpaM_o@ma_1Togliere451_rtek.it> wrote in message
fd0Q8.63800$5i1.2...@news2.tin.it...

a integrazione....
 cmq io me ne frego....
 vado giù di  "forza bruta"....
se proprio serve, la metto sempre in primo piano!
te lo riposto proprio se non l'hai sotto mano questa vecchia faq
Public Const SWP_NOACTIVATE = &H10
Public Const SWP_SHOWWINDOW = &H40
Public Const HWND_TOPMOST = -1
Public Const HWND_NOTOPMOST = -2
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal
hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long,
ByVal cy As Long, ByVal wFlags As Long) As Long
Public Sub FinestraOnTop(X As Form, Y As Boolean)
Select Case Y
Case Is = True
SetWindowPos X.hwnd, HWND_TOPMOST, 0&, 0&, 0&, 0&, SWP_NOACTIVATE Or
SWP_SHOWWINDOW
Case Is = False
SetWindowPos X.hwnd, HWND_NOTOPMOST, 0&, 0&, 0&, 0&, SWP_NOACTIVATE Or
SWP_SHOWWINDOW
End Select
End Sub
RIciauz

 se funge!
FUNGE! :)
grazie mille :)
le api utilizzate in quell'esempio sono obsolete e sconsigliate, ma mi hanno
portato sulla strada giusta (ce l'avevo stto il naso, poi...). in definitiva
per settare una form a modeless si fa cosi':
SetWindowLong Me.hwnd, GLW_HWNDPAREN, frmParent.Hwnd
e naturalmente per farla tornare normale:
SetWindowLong Me.hwnd, GLW_HWNDPAREN, 0


 SetWindowLong Me.hwnd, GLW_HWNDPAREN, frmParent.Hwnd
si tratta di GLW_HWNDPARENT.
scusate, colpa del caldo :)
ciao, assa.
