Paul McNett wrote:
> Uwe Grauer wrote:
>> Paul McNett wrote:
>>> Uwe Grauer wrote:
>>>> Paul McNett wrote:
>>>>> Uwe Grauer wrote:
>>>>>> Which event is best to use if a Form gets called (shown)?
>>>>>> Is it onActivate or is there something better?
>>>>>> I asking to find a better place to initialize my called form with the
>>>>>> parameters which got set from  the parentform.
>>>>> onActivate will get called whenever the form (re)takes the focus. So if 
>>>>> you use that you should set a flag so that you don't call the same init 
>>>>> code over and over again.
>>>>>
>>>> I do this now, with a flag.
>>>>
>>>>> You can also try overriding afterInit() or afterInitAll(), which are 
>>>>> hook methods that get called rather late in the init cycle.
>>>>>
>>>> Overriding?
>>>> I thought that afterInit[All] is called after the createForm.
>>>>
>>>> This is called to show a childform:
>>>> def callEditEtyp(self, newrec=False):
>>>>    frmclass = "EditEtyp.cdxml"
>>>>    frm = dabo.ui.createForm(frmclass)
>>>>    frm.parentform = self
>>>>    if newrec:
>>>>            frm.newrec = True
>>>>            frm.etypiid = None
>>>>    else:
>>>>            frm.newrec = False
>>>>            currow = self.dGridEtyp.CurrentRow
>>>>            curiid = self.PrimaryBizobj.getDataSet(rowStart=currow, 
>>>> rows=1)[0]['iid']
>>>>            frm.etypiid = curiid
>>>>    self.hide()
>>>>    frm.showModal()
>>>>
>>>> May i ask some more on how to do it when i come back from my childform?
>>> You know, you are basically wanting to set properties on your child form 
>>> from the main form, so the best way in your case may be to define 
>>> properties in the child form, and then just pass those properties to the 
>>> constructor. For example:
>>>
>>> class ChildForm(dabo.ui.dForm):
>>>     def _getNewRec(self):
>>>             return getattr(self, "_newRec", None)
>>>     def _setNewRec(self, val):
>>>             self._newRec = bool(val)
>>>     NewRec = property(_getNewRec, _setNewRec)
>>>
>>> class MainForm(dabo.ui.dForm):
>>>    ...
>>>    def callEditEtyp(self, newrec=False):
>>>      frmclass = "EditEtyp.cdxml"
>>>      frm = dabo.ui.createForm(frmclass, NewRec=newrec)
>>>      ...
>>>      self.hide()
>>>      frm.showModal()
>>>     
>>>
>> Ok, will do.
>>
>> Now what's best if i come back from my childform?
>>
>> This is called to leave a childform:
>> def onHit(self, evt): # btnSave
>>      self.Form.save()
>>      parent = self.Form.parentform
>>      parent.dorecquery = True
>>      parent.show()
>>      self.Form.close()
> 
> Ooh, you are wishing for truly-modal forms I bet. That way, all that 
> parent code goes in the parent just under the showModal() call. We'll 
> get that modal stuff working soon, I'm sure (I'm going to want it for my 
> current project).
> 
> In the meantime, I think you have it pretty much how I'd do it, except I 
>   don't think I would hide/show the parent form.
> 

Ok, thank's Paul.
And i really want to hide the parentform.
It looks very ugly when you move the child and you some a
notfunctioning form beneath.

Uwe


_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev

Reply via email to