Gambas-it

Gambas3 => Programmazione => Topic aperto da: Raffa50 - 29 Novembre 2011, 19:05:26

Titolo: creare controlli dinamicamente
Inserito da: Raffa50 - 29 Novembre 2011, 19:05:26
salve

vorrei fare un programma che l'utente clicca su un bottone e l'utente può disegnare un altro controllo (per esempio un bottone) sulla form
come posso fare?
Titolo: Re: creare controlli dinamicamente
Inserito da: Ceskho - 29 Novembre 2011, 19:13:17
https://docs.google.com/viewer?a=v&q=cache:jx0pHXptahEJ:www.emanuelelatorre.altervista.org/documentazione/informatica/gambas/capitolo_4.pdf+&hl=it&pid=bl&srcid=ADGEESiUZbvC4J9WfBOllQ95ADigdAl4Ag-BPN86SgFlBtyPA_QZPF1S7pdgXoUsglZXIKJ0WRt5ikUJR8q5uK3Mur6783383OeQ-SGI7iWbus4ZQ5-zNsDbzyiRMxfQePXn3hZzFUlz&sig=AHIEtbR7J5Ak0gaBW8Ghu5NBMlv7qaE0mw

Pagina 3
Titolo: Re: creare controlli dinamicamente
Inserito da: Raffa50 - 29 Novembre 2011, 20:39:42
eh si ma come faccio per farlo creare come fà gambas e renderlo ridimensionabile?
e per muoverlo?
(stò creando un IDE si chiama sly, cercate su launchpad)
Titolo: Re: creare controlli dinamicamente
Inserito da: Ceskho - 30 Novembre 2011, 09:28:35
eh si ma come faccio per farlo creare come fà gambas e renderlo ridimensionabile?
e per muoverlo?
(stò creando un IDE si chiama sly, cercate su launchpad)

hButton poi diventa a tutti gli effetti un button come gli crea gambas e perciò lo gestisci come faresti con un button normalissimo....
Titolo: Re: creare controlli dinamicamente
Inserito da: milio - 30 Novembre 2011, 12:22:40
Io penso che Raffa50 voglia creare un IDE di gambas e quindi la sua domanda era riferita al fatto di spostare e ridimensionare graficamente un button creato...
Titolo: Re: creare controlli dinamicamente
Inserito da: Raffa50 - 30 Novembre 2011, 17:57:29
eh già.. per ora sn riuscito a creare il bottone e a spostarlo...
xò devo creare + ogetti no... devo usare un array di ogetti... ma come gestisco il click sui singoli oggetti? (cioè al click li sposto nel nuovo punto dove clicco, rudimentale ma và)
Titolo: Re: creare controlli dinamicamente
Inserito da: Raffa50 - 01 Dicembre 2011, 22:34:11
aiutoo
Titolo: Re: creare controlli dinamicamente
Inserito da: fsurfing - 02 Dicembre 2011, 11:18:50
una volta che hai creato i vari bottoni , questi sono dei "figli" del form o del container in cui li hai messi , per cui puoi scorrere con un ciclo for tutti i figli del genitore fino a trovare quello su cui hai fatto click.

oppure se hai creto i bottoni indicandoli tutti cone appartenenti alla stessa classe , puoi leggerne gli eventi con un semplice  nomeBottoni_click().

Non posso scriverti altro codice , perchè mi sono tagliato un tendine  efatico a scrivere, però se ti scarichi ghbar(vedi sito gesthotel in firma), vedrai nel modulo disegno alla riga 231 la creazione dei bottoni e alla riga 428 l' evento click.

il metodo dei figli  è comunque stato trattato più volte in quest forum , per cui fai una ricerca
Titolo: Re: creare controlli dinamicamente
Inserito da: milio - 02 Dicembre 2011, 15:02:37
Non posso scriverti altro codice , perchè mi sono tagliato un tendine  efatico a scrivere...

Pusteria... ma fai il falegname pure tu?
Titolo: Re: creare controlli dinamicamente
Inserito da: fsurfing - 02 Dicembre 2011, 16:26:59
no no faccio l' elettricista :)

la falegnameria come "hobby" alla casa in montagna
Titolo: Re: creare controlli dinamicamente
Inserito da: Raffa50 - 03 Dicembre 2011, 22:38:42
Citazione
scorrere con un ciclo for tutti i figli del genitore fino a trovare quello su cui hai fatto click

è quello che dovrei fare visto che ogni volta che l'utente crea un bottone si perde la referenza a quello precedente...
peccato che nel tuo sorgente non ci sia ciò...
Titolo: Re: creare controlli dinamicamente
Inserito da: fsurfing - 04 Dicembre 2011, 10:39:17
forse un piccolo esempio è l' ideale
Titolo: Re: creare controlli dinamicamente
Inserito da: Raffa50 - 04 Dicembre 2011, 22:07:24
si era quello che volevo... peccato che il bottone quando lo si trascina salta di qua e di là...
Titolo: Re: creare controlli dinamicamente
Inserito da: fsurfing - 04 Dicembre 2011, 22:52:13
be certo era un esempio , devi affinare il cvodice :) mica posso fare tutto io!  :hatecomputer:
Titolo: Re: creare controlli dinamicamente
Inserito da: Raffa50 - 06 Dicembre 2011, 20:48:05
non sn riuscito a trovare un metodo... vabbè mi accontento del tuo
Titolo: Re: creare controlli dinamicamente
Inserito da: Raffa50 - 09 Dicembre 2011, 19:16:16
allora ho realizzato il mio form designer, quando crei o modifichi un controllo l'oggetto finisce in un array di ogetti...
il problema è... come faccio a sapere se l'oggetto è un textbox o un bottone?

mioarrayogettiform.Class non funzia

RISOLTO

Codice: [Seleziona]
Object.Type(FDesfrm.afrmobj[i])
Titolo: Re: creare controlli dinamicamente
Inserito da: md9327 - 14 Dicembre 2011, 10:30:04
Tieni conto che il metodo .Type() ritorna il tipo ma solo se è un oggetto valido (non null, ad esempio).
Per testare in modo sicuro l'oggetto sotto esame, dovresti verificare dapprima che sia un oggetto valido e attivo, e quindi verificarne il tipo.
Codice: [Seleziona]
IF (oggetto) AND IF (Object.Type(oggetto) = "Object") THEN
...
ENDIF
Un'altra alternativa è usare il metodo .Is():
Codice: [Seleziona]
IF (Object.Is(oggetto, "Object")) THEN
...
ENDIF
Titolo: Re: creare controlli dinamicamente
Inserito da: Raffa50 - 22 Dicembre 2011, 16:49:17
ora voglio includere la finistra in un contenitore

faccio: FDesfrm.Reparent(fdcont)

ma i bordi della finistra e la barra del titolo spariscono
Come faccio (vorrei fare una cosa del genere che fà gambas che visualizza la form dentro la form nella proggettazione) ?

grazie
Titolo: Re: creare controlli dinamicamente
Inserito da: fsurfing - 23 Dicembre 2011, 19:21:00
non cè un componente mdi ?
Titolo: Re: creare controlli dinamicamente
Inserito da: Raffa50 - 24 Dicembre 2011, 11:50:41
che? no mi interessa sapere come si fà... perchè se faccio reparent la form prende la grandezza del contenitore... invece deve fare una cosa come il designer di gambas!
Titolo: Re: creare controlli dinamicamente
Inserito da: Raffa50 - 26 Dicembre 2011, 14:55:38
aiuto
Titolo: Re: creare controlli dinamicamente
Inserito da: Ceskho - 27 Dicembre 2011, 10:25:32
aiuto

È Natale...se nessuno ti risponde un motivo ci sarà non ti sembra? Invocare aiuto difficilmente farà sì che qualcuno ti risponda... ;)
Titolo: Re: creare controlli dinamicamente
Inserito da: md9327 - 27 Dicembre 2011, 17:21:21
Che ne sai? Magari c'è qualche matto (tipo me) che stà lì a lavorare di gambero... :-)
Titolo: Re: creare controlli dinamicamente
Inserito da: Ceskho - 27 Dicembre 2011, 18:23:26
Che ne sai? Magari c'è qualche matto (tipo me) che stà lì a lavorare di gambero... :-)

Carbone per te quest'anno!
Titolo: Re: creare controlli dinamicamente
Inserito da: Raffa50 - 29 Dicembre 2011, 12:42:27
aiutino?

cmq come faccio a lanciare una nuova istanza del mio programma???
Titolo: Re: creare controlli dinamicamente
Inserito da: md9327 - 29 Dicembre 2011, 16:35:35
Come fai? A mezzanotte del 31, ti affacci al balcone, e la lanci di sotto, più o meno come si faceva una volta. L'importante è che non siano lavandine, frigo o roba pesante. Perlomeno guarda dove lo lanci...

[for Ceskho]
Una volta avrei accettato, poi mi sono caduti tutti i denti, e ora stò evitando...  ;D

Ehehehe, scherzi a parte, che vuol dire che sparisco i margini?
Io credo sia necessario analizzare il codice che utilizzi. Può darsi che non setti qualche proprietà essenziale.
Titolo: Re: creare controlli dinamicamente
Inserito da: Raffa50 - 01 Gennaio 2012, 10:42:20
-.-

no sono due cose che voglio fare

1) includere la form in un contenitore senza far sparire i suoi bordi

2) fare in modo che il programma apra se stesso...
Titolo: Re: creare controlli dinamicamente
Inserito da: md9327 - 02 Gennaio 2012, 10:45:16
Sulla prima non ho ben capito il perchè ti spariscono i bordi...

Sulla seconda, forse un pò lo spumante... ma che vuol dire "aprire se stesso"?

Perdona, ma mi sono perso un pò in questa discussione...
Il discorso del Reparent è ok, infatti io lo uso per gestire dinamicamente le TabStrip, stando attenti però a non cancellare l'ultimo tab, altrimenti và tutto in crash...
Quello che non ho ben capito, è cosa intendi per una gestione simil IDE_Gambas... Se non ricordo male, dovrei riandare a leggere i sorgenti, l'ambiente viene gestito con Workarea, per cui se desideri fare la stessa cosa devi usare quell'oggetto.
Come si identificano gli oggetti te l'ho descritto, inoltre posso aggiungere che nella versione stabile, appena uscita, di Gambas3 sono state aggiunte alcune altre funzioni per l'analisi delle classi/oggetti in runtime.
Titolo: Re: creare controlli dinamicamente
Inserito da: fsurfing - 02 Gennaio 2012, 12:23:11
come suggerito da md per il punto uno devi usare il componente workarea, o il componente mdi , per il punto due devi per forza avere il binario del tuo programma e a questo punto lo lanci con shell ,se poii non vuoi perderne completamente il controllo dovrai usare un processo
Titolo: Re: creare controlli dinamicamente
Inserito da: Ceskho - 02 Gennaio 2012, 16:58:06
-.-

non è un atteggiamento idoneo da rivolgere a coloro che stanno cercando di aiutarti!
Titolo: Re: creare controlli dinamicamente
Inserito da: md9327 - 02 Gennaio 2012, 17:03:13
Bè, me lo meritavo...  :D

Titolo: Re: creare controlli dinamicamente
Inserito da: milio - 02 Gennaio 2012, 19:49:41
-.-

non è un atteggiamento idoneo da rivolgere a coloro che stanno cercando di aiutarti!

Confesso che per mia ignoranza son dovuto andare a sbirciare su wikipedia...  :-[

Non ti sfugge nulla, e' Ceskho ? :)

Titolo: Re: creare controlli dinamicamente
Inserito da: md9327 - 04 Gennaio 2012, 12:25:44
Quando volano elefanti, quelli non li deve...  ;D
Titolo: Re: creare controlli dinamicamente
Inserito da: Raffa50 - 04 Gennaio 2012, 13:50:57
ho provato col workspace

fdcont.Add(FDesfrm)

ma non và...
Titolo: Re: creare controlli dinamicamente
Inserito da: Raffa50 - 05 Gennaio 2012, 16:16:59
aiuto
Titolo: Re: creare controlli dinamicamente
Inserito da: Raffa50 - 08 Gennaio 2012, 11:28:03
aiuto! come cavolo la metto una form dentro la workspace facendo in modo che i bordi della form nn spariscano?
aiutatemi dai!
Titolo: Re: creare controlli dinamicamente
Inserito da: Raffa50 - 10 Gennaio 2012, 17:06:32
 :'( aiuto !
Titolo: Re: creare controlli dinamicamente
Inserito da: fsurfing - 10 Gennaio 2012, 18:08:49
mi sembra ormai chiaro che qui nussuno sappia risponderti, probabilmente è un campo mai esplorato da nessuno.

per cui hai tre  possibilità
1) te ne freghi dei bordi
2) le finestre invece di essere integrate nella tua applicazione sono svincolate e quindi avranno i bordi
3) ti spulci i sorgenti di gambas per capire come fanno ad avere ciò che vuoi ottenere
Titolo: Re: creare controlli dinamicamente
Inserito da: Raffa50 - 13 Gennaio 2012, 17:50:22
scelgo la 2
cmq come faccio a fare in modo che una finestra sia sempre in primo piano rispetto ad un altra?
Titolo: Re: creare controlli dinamicamente
Inserito da: Ceskho - 13 Gennaio 2012, 18:04:36
scelgo la 2
cmq come faccio a fare in modo che una finestra sia sempre in primo piano rispetto ad un altra?

Codice: gambas [Seleziona]
TuoForm.Stacking = Window.Above
Titolo: Re: creare controlli dinamicamente
Inserito da: Raffa50 - 13 Gennaio 2012, 18:06:14
cmq volevo una cosa del genere:

(http://img85.imageshack.us/img85/82/forminform.png)

ps: ho creato un hsplit con tre oggetti come mai i tre oggetti si allargano a loro piacimento e nn mantengono la larghezza che gli ho daato? voglio che la larghezza sia quella di partenza e ke se mai si possano allargare dopo!
Titolo: Re: creare controlli dinamicamente
Inserito da: Raffa50 - 13 Gennaio 2012, 18:26:49
ho creato un hsplit con tre oggetti come mai i tre oggetti si allargano a loro piacimento e nn mantengono la larghezza che gli ho daato? voglio che la larghezza sia quella di partenza e ke se mai si possano allargare dopo!

aiutino?
Titolo: Re: creare controlli dinamicamente
Inserito da: Ceskho - 13 Gennaio 2012, 19:32:48
ho creato un hsplit con tre oggetti come mai i tre oggetti si allargano a loro piacimento e nn mantengono la larghezza che gli ho daato? voglio che la larghezza sia quella di partenza e ke se mai si possano allargare dopo!

aiutino?

Sorvoliamo sul fatto che nel forum siamo tutti anziani e la demenza senile avanza a palate, sorvoliamo sul fatto che qui nessuno di noi sa leggere perchè siamo analfabeti, sorvoliamo sul fatto che ti ho dato una risposta e non mi hai detto se va bene o se va male, se funziona o ti fa esplodere il pc, sorvoliamo anche sul fatto che come vedi a modo suo ognuno ti sta dando una mano però postare la stessissima domanda a distanza di 20 minuti e 35 secondi proprio non si può sorvolare. In un forum la gente è fatta di carne ed ossa e non è fisicamente dall'altra parte del pc ad attendere che ci siano domande a cui rispondere.

Come fan tutti, per cortesia, posta la domanda ed attendi la risposta per tutto il tempo necessario affinchè l'illuminazione arrivi perchè tanto ripetere la domanda ogni giorno o ogni venti minuti non fa venire la soluzione in testa a chi non c'è la. Spero vivamente questa volta di essere stato chiaro. Capisco la foga di andare avanti nello sviluppo ma un po' di rispetto per un minimo di netiquette ci vuole.
Titolo: Re: creare controlli dinamicamente
Inserito da: fsurfing - 13 Gennaio 2012, 19:45:32
credo che tu abbia usato un vsplit il cui compito è proprio creare l' effetto che si presenta nel tuo form, forse ti conviene usare un panel o un toolpanel .

comunque un hsplit o un vsplit cercano di riempire tutto lo spazio suddividendolo tra i vari componenti, al limite puoi provare anche con un hpanel o un vpanel
Titolo: Re: creare controlli dinamicamente
Inserito da: Raffa50 - 14 Gennaio 2012, 18:46:08
come faccio a fare in modo che una form non possa essere mossa (ma i suoi bordi nn devono scomparire!)
Titolo: Re: creare controlli dinamicamente
Inserito da: fsurfing - 14 Gennaio 2012, 18:47:57
prova a mettere all' interno dell' evento move la riga

stop event
Titolo: Re: creare controlli dinamicamente
Inserito da: Raffa50 - 14 Gennaio 2012, 18:57:18
non và..

Codice: [Seleziona]
Public Sub Form_Move()
  Stop Event
End Sub

aiut!  :hatecomputer:
Titolo: Re: creare controlli dinamicamente
Inserito da: fsurfing - 14 Gennaio 2012, 19:04:26
e se in move gli metti i valori x e y che deve mantenere?

non è molto bello ma...
Titolo: Re: creare controlli dinamicamente
Inserito da: milio - 14 Gennaio 2012, 19:09:51
Prova questo

 :ciao:
Titolo: Re: creare controlli dinamicamente
Inserito da: Raffa50 - 14 Gennaio 2012, 20:23:57
si sarebbe fantastico (il tuo esempio) se si vedessero i bordi della form...
Titolo: Re: creare controlli dinamicamente
Inserito da: milio - 14 Gennaio 2012, 21:18:03
Tipo in questo modo?
Titolo: Re: creare controlli dinamicamente
Inserito da: Raffa50 - 14 Gennaio 2012, 22:25:27
a me pare uguale a prima faccio add form e si aggiunge un rettangolo bianco che posso redimensionare...
Titolo: Re: creare controlli dinamicamente
Inserito da: milio - 14 Gennaio 2012, 22:53:37
Maledette gtk...  >:(  prova adesso!
Titolo: Re: creare controlli dinamicamente
Inserito da: Raffa50 - 15 Gennaio 2012, 13:28:42
WARCRAFT FUNZIA!

cm faccio a fare qualcosa se una form viene abassata?
vorrei fare in modo che se abasso una form anche le altre aperte si abassino
Titolo: Re: creare controlli dinamicamente
Inserito da: Raffa50 - 17 Gennaio 2012, 14:29:19
aiut

cm faccio a fare qualcosa se una form viene abassata?
vorrei fare in modo che se abasso una form anche le altre aperte si abassino
Titolo: Re: creare controlli dinamicamente
Inserito da: Ceskho - 17 Gennaio 2012, 17:12:28
aiut

cm faccio a fare qualcosa se una form viene abassata?
vorrei fare in modo che se abasso una form anche le altre aperte si abassino

Inizio a credere che tu mi stia prendendo in giro. Del precedente messaggio, quale parte della frase:

Citazione
Come fan tutti, per cortesia, posta la domanda ed attendi la risposta per tutto il tempo necessario affinchè l'illuminazione arrivi perchè tanto ripetere la domanda ogni giorno o ogni venti minuti non fa venire la soluzione in testa a chi non c'è la. Spero vivamente questa volta di essere stato chiaro. Capisco la foga di andare avanti nello sviluppo ma un po' di rispetto per un minimo di netiquette ci vuole.

Non era chiara?

Inoltre hai ripetuto lo stesso errore grammaticale e ciò evidenzia un netto copia incolla che denota come la tua priorità sia spingere gli utenti alla risposta e non scrivere richieste che chiarifichino i tuoi dubbi. Spero sia l'ultima volta che mi ripeto.