Ti rispondo in italiano così è più semplice. Crei una tua classe per esempio:
CLASS MiaDialog INHERIT DataDialog
METHOD Init(oOwner,oSource,nResourceID) CLASS MiaDialog
IF SysObject():SettoModale // qualsiasi altra variabile o metodo per partire la finestra come dialog o window
SELF:SymTipoClasse := #DATADIALOG
ELSE
SELF:SymTipoClasse := #DATAWINDOW
ENDIF
return self
Poi crei il metodo activate:
METHOD Activate(oE) CLASS MiaDialog
IF SELF:SymTipoClasse == #DATADIALOG
SUPER:Activate(oE)
ELSE
SendClass(SELF,#ACTIVATE,#DATAWINDOW,oE)
ENDIF
return nil
In sostanza nelle init devi dirgli in qualche modo che la finestra si deve aprire modale.
Puoi anche gestirti un campo personalizzato da passare come per es:
METHOD Init(oOwner,oSource,nResourceID,Partomodale) CLASS MiaDialog