Con Gambas puoi fare in modo che qualsiasi form venga racchiuso in un altro form!
Per fare una cosa così utile devi soltanto inizializzare il form passando un contenitore padre come ultimo argomento nel costruttore.
Per esempio :
DIM hForm AS MyDialog
DIM hSuperControl AS MyForm
' Crea un dialogo
hForm = NEW MyDialog
' Inserisce un form in questo dialogo
' Nota che questo form riceve due parametri prima del contenitore
hSuperControl = NEW MyForm(Param1, Param2, MyDialog)
' Muove e ridimensiona il form
hSuperControl.Move(8, 8, 128, 64)
Ricorda che: un form racchiuso in un altro continua ad essere un form e quindi osservatore di eventi di se stesso.
ciao raga
vorrei provare a creare un progetto MDI con i form children inseriti nel Main, su Gambas nei suggerimenti al n° 12 c'èCitazioneCon Gambas puoi fare in modo che qualsiasi form venga racchiuso in un altro form!
Per fare una cosa così utile devi soltanto inizializzare il form passando un contenitore padre come ultimo argomento nel costruttore.
Per esempio :
DIM hForm AS MyDialog
DIM hSuperControl AS MyForm
' Crea un dialogo
hForm = NEW MyDialog
' Inserisce un form in questo dialogo
' Nota che questo form riceve due parametri prima del contenitore
hSuperControl = NEW MyForm(Param1, Param2, MyDialog)
' Muove e ridimensiona il form
hSuperControl.Move(8, 8, 128, 64)
Ricorda che: un form racchiuso in un altro continua ad essere un form e quindi osservatore di eventi di se stesso.
Non riesco a capire cosa sono: Param1, Param2
@dex
dopo il tuo post precedente mi sono messo a cercare, ho trovato l'help a cui accennavi e ho provato...mi esce una form nella form, ma senza bordo..e nessuna capacità di spostamento
@Ceskcho
Si l'esempio è chiaro e per l'ultimo argomento basta passargli il Main.
Ma i parametri che siano 2 0 10 cosa sono? coordinate x e y oppure W e H, le ho provate tutte ma andavano in errore, ho provato anche a non passare nessun parametro solo l'ultimo argomento ma nada.
frmForm as Form
frmForm = NEW FormBase(5, 8)
frmForm.Show()PUBLIC SUB _new($x As Integer, $y As Integer)
Me.ScreenX = $x
Me.screenY = $y
ENDPUBLIC SUB Button1_Click()
DIM hSuperControl AS Form
hSuperControl = NEW Form(FMain)
WITH hSuperControl
.Width = 100
.Height = 100
.Background = &H0000FF00&
.Border = 2
.Text = "test"
.top = 100
.Left = 100
.Show
END WITH
ENDRaga niente da fare, usando questo codice il form inserito nel main perde il bordo e la possibilità di spostarlo. diventa simile a un Panel.
A questo punto meglio utilizzare direttamente un Panel e spostarlo da codice.