Autore Topic: [RISOLTO] Form inserito in un contenitore  (Letto 1170 volte)

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
[RISOLTO] Form inserito in un contenitore
« il: 28 Gennaio 2017, 20:45:49 »
Buonasera a tutti,
lo so nel Forum ci sono varie discussioni sull'argomento, eccone alcune
http://www.gambas-it.org/smf/index.php?topic=2558.msg27108#msg27108
http://www.gambas-it.org/smf/index.php?topic=168.msg1535#msg1535
http://www.gambas-it.org/smf/index.php?topic=1544.0
ho letto anche ciò che è stato pubblicato in merito nella Wiki, ma con tutte le prove che ho
fatto non sono riuscito ad applicare la logica spiegata nelle discussioni sopra elencate.
Vi allego l'esempio su cui stò facendo i test.
« Ultima modifica: 01 Febbraio 2017, 10:51:13 da tornu »
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Form inserito in un contenitore
« Risposta #1 il: 28 Gennaio 2017, 21:42:40 »
No, aspe', non giochiamo ad indovinello.  :hard:
Puoi spiegare cosa intendi fare e quale è il problema che incontri ?
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re:Form inserito in un contenitore
« Risposta #2 il: 28 Gennaio 2017, 22:50:27 »
Ciao vuott,
hai provato l'esempio che ho postato ?
Praticamente la FMain ha un Panel che ingloba altri Form, vorrei che gli oggetti della FMain, nel mio esempio un DataChooser,
dalla quale selezionando una data aggiorni il DataBox della Form visualizzata (Form1 o Form2).
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Form inserito in un contenitore
« Risposta #3 il: 29 Gennaio 2017, 00:08:57 »
Non so se può essere utile: faccio notare che se inseriamo per un controllo la riga:
Codice: [Seleziona]
Panel2.Children.Count
quella restituisce zero.



« Ultima modifica: 29 Gennaio 2017, 15:07:15 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Form inserito in un contenitore
« Risposta #4 il: 29 Gennaio 2017, 14:39:10 »
Se l'intento è quello che hai detto, senza offesa, ma per me è proprio la strategia che è sbagliata.
E poi fammi capire se devi inglobare un form in un panel è li che lo devi inserire.

Ti allego un file di esempio di come vedo io la questione.

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re:Form inserito in un contenitore
« Risposta #5 il: 29 Gennaio 2017, 18:18:21 »
Non so se può essere utile: faccio notare che se inseriamo per un controllo la riga:
Codice: [Seleziona]
Panel2.Children.Count
quella restituisce zero.
E non ti sembra strano, visto che il Panel2 contiene una Form.

Se l'intento è quello che hai detto, senza offesa, ma per me è proprio la strategia che è sbagliata.
.....
Puoi spiegarmi che c'è secondo te di sbagliato nella "strategia".

Naturalmente l'esempio che ho postato come sempre è una piccola parte di un progetto più grande,
mi serve per approfondire ed apprendere nuovi concetti.
Il mio intento è quello di avere una Form principale con un Panel (Panel1) che conterrà vari oggetti, nell'esempio
un DateChooser, ed un Panel (Panel2) che ingloberà vari Form di volta in volta secondo necessità, gli oggetti del
Panel1 devono avere la possibilità di "interagire" con gli oggetti della Form in quel momento attiva nel Panel2.

.....
E poi fammi capire se devi inglobare un form in un panel è li che lo devi inserire.

Ti allego un file di esempio di come vedo io la questione.

 :ciao:
Sì, i vari Form devono essere inglobati nel Panel2.
Grazie per l'esempio, lo provo e ti faccio sapere.

« Ultima modifica: 29 Gennaio 2017, 18:20:46 da tornu »
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Form inserito in un contenitore
« Risposta #6 il: 29 Gennaio 2017, 21:54:26 »
.... Panel2 contiene una Form.
Scusami per la mia confusione: non riesco :-\ a vedere dove viene stabilito che Panel2 assume la paternità di un Form secondario.
« Ultima modifica: 29 Gennaio 2017, 21:55:02 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Form inserito in un contenitore
« Risposta #7 il: 29 Gennaio 2017, 22:47:58 »
Ok Tornu,
assecondo la tua strategia  :P
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re:Form inserito in un contenitore
« Risposta #8 il: 30 Gennaio 2017, 20:54:51 »
.... Panel2 contiene una Form.
Scusami per la mia confusione: non riesco :-\ a vedere dove viene stabilito che Panel2 assume la paternità di un Form secondario.

Qui
Codice: [Seleziona]
Public Sub Button1_Click()
  Dim Frm1 As Form1

  Panel2.Children.Clear()
  Frm1 = New Form1(Panel2)
End
Stò seguendo questa strada, quando tempo fà ho preso  spunto da questa discussione
http://www.gambas-it.org/smf/index.php?topic=2252.msg24753
dove anche tu vuott avevi preso parte, rileggiti ciò che dissero allora md9327 e fsurfing

« Ultima modifica: 30 Gennaio 2017, 20:56:32 da tornu »
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re:Form inserito in un contenitore
« Risposta #9 il: 30 Gennaio 2017, 21:08:03 »
Ok Tornu,
assecondo la tua strategia  :P
Grazie tante Gianluigi, questa soluzione penso si adatti meglio al progetto che stò realizzando.
Faccio le prove e vi faccio sapere. :ciao:
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Form inserito in un contenitore
« Risposta #10 il: 30 Gennaio 2017, 21:14:37 »
Stò seguendo questa strada, quando tempo fà ho preso  spunto da questa discussione
http://www.gambas-it.org/smf/index.php?topic=2252.msg24753
Sì, il tuo intento l'ho capito, ma continuo a non capire  :-\ la questione del Parent, poiché nel tuo codice sopra allegato (FormPanel-0.0.1) il Genitore di Form1 e Form2 è FMain.


« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re:Form inserito in un contenitore
« Risposta #11 il: 30 Gennaio 2017, 23:08:13 »
Sì, il tuo intento l'ho capito, ma continuo a non capire  :-\ la questione del Parent, poiché nel tuo codice sopra allegato (FormPanel-0.0.1) il Genitore di Form1 e Form2 è FMain.
Sicuramente hai ragione tu, perchè io insistevo su questa sequenza piramidale FMain ->Panel2 -> Form1 o Form2,
pensando erroneamente che fosse Panel2 il contenitore padre delle altre Form, mentre guardando il codice ultimo che mi
ha postato Gianluigi mi ha fatto capire quello che tu mi hai fatto notare, che è la FMain
Codice: [Seleziona]
  For Each ob In FMain.Controls
    If Object.Type(ob) = "DateBox" Then
'     If ob.Name = "DateBox1" Then ' Riga commentata
      ob.Value = dMyDate
    Endif
  Next
Ho interpretato bene oppure ho detto una cavolata ?
« Ultima modifica: 30 Gennaio 2017, 23:12:31 da tornu »
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Form inserito in un contenitore
« Risposta #13 il: 31 Gennaio 2017, 13:47:06 »
Ritengo vada comunque tenuta presente questa pagina:

http://www.gambas-it.org/wiki/index.php?title=Differenza_fra_la_propriet%C3%A0_%22.Children%22_e_la_propriet%C3%A0_%22.Controls%22_di_un_oggetto

Giusto è da li che avevo tratto ispirazione per l'ultimo codice.
Va detto che, nella discussione indicata nel primo post, Sotema ci mette in guardia dal semplificare troppo le situazioni in quanto poi ti ritroveresti con del codice non funzionante nella realtà più complessa.
È per questo che ho disegnato così le finestre e ad esempio nel mio caso ho inserito i form nel panel, ma se cicli i figli del panel troverai solo il contenitore (il form) come ben spiegato nella wiki.

Insomma è bene porre le domande in modo stringato per isolare il problema, ma in certi casi può essere un errore.
E di contro, non sempre l'esempio esemplificativo poi rispecchia la realtà.

 :ciao:
« Ultima modifica: 31 Gennaio 2017, 13:48:52 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re:Form inserito in un contenitore
« Risposta #14 il: 01 Febbraio 2017, 10:50:45 »
Ritengo vada comunque tenuta presente questa pagina:

http://www.gambas-it.org/wiki/index.php?title=Differenza_fra_la_propriet%C3%A0_%22.Children%22_e_la_propriet%C3%A0_%22.Controls%22_di_un_oggetto

 :ok:

Ritengo vada comunque tenuta presente questa pagina:

http://www.gambas-it.org/wiki/index.php?title=Differenza_fra_la_propriet%C3%A0_%22.Children%22_e_la_propriet%C3%A0_%22.Controls%22_di_un_oggetto

Giusto è da li che avevo tratto ispirazione per l'ultimo codice.
Va detto che, nella discussione indicata nel primo post, Sotema ci mette in guardia dal semplificare troppo le situazioni in quanto poi ti ritroveresti con del codice non funzionante nella realtà più complessa.
È per questo che ho disegnato così le finestre e ad esempio nel mio caso ho inserito i form nel panel, ma se cicli i figli del panel troverai solo il contenitore (il form) come ben spiegato nella wiki.

Insomma è bene porre le domande in modo stringato per isolare il problema, ma in certi casi può essere un errore.
E di contro, non sempre l'esempio esemplificativo poi rispecchia la realtà.

 :ciao:

Completamente d'accordo con te, il fatto che di solito pongo quesiti "stringati" mi serve
1) ad utilizzare i vostri suggerimenti per capire logiche e apprendere nuove tecniche per poi applicarle ai miei progetti
2) come ho avuto modo di dire altre volte postare un intero progetto per chiedere suggerimenti o per risolvere
    un determinato problema può essere complicato (a mio parere) in quanto dovresti spiegare l' intera logica
    per far capire a chi vuole darti una mano cosa vuoi ottenere, specialmente nel mio caso dove c'è sempre di mezzo
    un database (MySql) pieno di dati. E' ovvio che se dovesse servire non c'è problema ma fino ad ora con i suggerimenti
    del Forum sono sempre riuscito a risolvere apprendendo sempre nuove informazioni ed avendo spunti per approfondire.
 :ciao:
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)