>>If the form is not modal (frm_Ticket) How do you know when the user do an action in it and after that closes it? Also, If the form is not modal loParameter going out of scope soon after you DoForm() unless you made it public (Grrrrr).
>
>Yes, that's exactly the question I'm trying to figure out the solution for <g> I'm thinking with wexist I should have some success (as I recall, I used this technique before). I haven't tried it yet, though, trying to solve in my head first, as always <g>
I just started to update my answer :-)
UPDATE:
I just read more carefully your answer :-)
You can't, but with something like:
LOCAL loParameter
loParameter = CREATEOBJECT('oParameter')
loParameter.cMode = 'Edit'
loParameter.lChanged = .f.
loParameter.iTicket_ID = crsSearchResults.iTicket_ID
lcFormInstance = [frmTicket]+TRANSFORM(thisform.frmTicket)
thisform.frmTicket = thisform.frmTicket + 1
thisform.AddProperty(lcFormInstance,NULL)
DO FORM frm_Ticket WITH loParameter NAME thisform.&lcFormInstance LINKED NOSHOW
thisform.&lcFormInstance..Name = lcFormInstance
BINDEVENT(EVAL(thisform.]+lcFormInstance),[Hide],thisform,[ChekWhatTheFormIsDone])
LOCAL oForm, laEvents[1]
AEVENTS(laEvents,0)
oForm = laEvents[1]
IF oForm.oParameter.lChanged
ENDIF
oForm.Release()
oForm = NULL
thisform.RemoveProperty(oForm.Name)
What you need:
1. Add a property in the main form named frmTicket = 0
2. Create a Method in the main form named ChekWhatTheFormIsDone
3. In the frm_Ticket Save the parameter you pass to some property in that form
4. Instead of Releasing the form, just HIDE it.
5. TEST THIS!!! I DIDN'T :-)
Against Stupidity the Gods themselves Contend in Vain - Johann Christoph Friedrich von Schiller
The only thing normal about database guys is their tables.