Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: Michele - 02 Ottobre 2009, 22:21:50

Titolo: [RISOLTO] Creare struttura
Inserito da: Michele - 02 Ottobre 2009, 22:21:50
Ho dato un occhita alla documentazione ma non riesco a trovare questa informazione

vorrei creare una struttura composta da variabili stringa e integer del tipo

struttura strutt

stringa1 as string
stringa2 as string
valore1 as integer

vorrei poi creare un array di questa struttura

dim miastruttura as struct[10]

Chiedo troppo?

Grazie
Titolo: Re: creare struttura
Inserito da: fsurfing - 02 Ottobre 2009, 22:28:05
puoi farlo tramite una classe

guarda nel wiki le pagine scritte da md93..
Titolo: Re: creare struttura
Inserito da: Ceskho - 02 Ottobre 2009, 23:32:14
Per l'appunto esistono le classi che sono anche più potenti delle strutture perchè permettono di implementare anche delle funzioni.
Titolo: Re: creare struttura
Inserito da: md9327 - 03 Ottobre 2009, 01:44:49
Parlo da vecchi programmatore C/C++...

Le strutture sono una forma molto usata, specialmente in C, per definire una collezione di elementi di diverso tipo. Questo perchè il C permette un capillare controllo della memoria che, a differenza di linguaggi più evoluti, corrisponde all'avere una maggiore efficenza, oltre ad altre cose.

Nei linguaggi moderni, con l'avvento della logica ad oggetti, certe definizioni sono venute quasi a scomparire, e questo è vero per la stragande maggioranza delle applicazioni (in genere gestionali), mentre in alcune nicchie si propende più verso un risparmio delle risorse a favore della velocità.

Comunque, in Gambas, utilizzi sempre e comunque oggetti e classi, come già dichiarato dai miei due colleghi... :-P
Titolo: Re: creare struttura
Inserito da: Michele - 03 Ottobre 2009, 12:12:01
Non è che mi postate un esempio?
sono pricipiante in gambas

anzi

sono un programmatore poco IN..GAMBAs

Grazie per le risposte

mik
Titolo: Re: creare struttura
Inserito da: fsurfing - 03 Ottobre 2009, 12:23:36
se vuoi ti scrivo un esempio, però premetto che io non sono un programmatore professionista e quindi il mio codice non soddisferà i canoni della programmazione ad oggetti ma sarà comunque funzionante
Titolo: Re: creare struttura
Inserito da: Michele - 03 Ottobre 2009, 12:26:33
non è bello ciò che è bello
ma è bello ciò che funziona!

manda pure
Titolo: Re: creare struttura
Inserito da: fsurfing - 03 Ottobre 2009, 12:54:02
detto e fatto eccoti l' esempio.

prego chiunque se ne intendesse di + di oggetti e classi di modificare questo esempio nel caso trovassero qualche inesattezza,  in modo da ottenere un programmino semplice e intuibile per tutti.
Titolo: Re: creare struttura
Inserito da: Michele - 03 Ottobre 2009, 16:49:45
L'esempio è molto chiaro
Penso proprio di aver capito il concetto
Grazie mille
Titolo: Re: creare struttura
Inserito da: Ceskho - 03 Ottobre 2009, 18:34:09
Ti consiglio di studiare il concetto di classe in forma teorica anche...aldilà del suo uso in gambas...

Le potenzialità di una classe sono davvero notevoli e se ne può fare davvero un buon uso se conosciute bene....

Chiedi ad fsurfing quanti cavalieri riesce a creare con un sola classe ;-)
Titolo: Re: creare struttura
Inserito da: Michele - 03 Ottobre 2009, 19:10:05
Ho letto qualche cosa sulle classi in un corso di c++
anche se poi non ho mai avuto occasione di metterle in pratica
tutta la programmazione orientata agli oggetti deriva da concetto di classe
Giusto?
Comunque tutte le volte che imparo qualche cosa su Gambas mi stupisco di quanto sia elaborato e potente

Una manna per chi, come mè, ha lasciato win e VB e non è un programmatore.
Titolo: Re: creare struttura
Inserito da: Ceskho - 04 Ottobre 2009, 01:25:18
L'idea di oggetto è strettamente legata al concetto di classe...l'oggetto è una classe.

Basta pensare che ogni oggetto che usi in gambas (Button, textbox, label) non è altro che una classe.

Quando crei un nuovo button, ad esempio, Gambas non fa altro che creare una nuova classe derivata dal button e non fa altro che accedere ai suoi membri mediante la classica sintassi

Button1.text
Button1.width

etc...
Titolo: Re: creare struttura
Inserito da: Michele - 13 Ottobre 2009, 09:14:06
Ritorno sull'argomento
nella form (o classe) dell'esempio ho creato diverse classi matita
come posso fare per renderle visibili in altre form?

praticamente
devo creare un form per l'inserimento di nomi
ogni nome sarà poi una classe con le sue proprietà
il programma poi si svolgerà nella form principale
ma le classi create dovranno essere visibili in tutte le form del progetto

come fare?
Titolo: Re: creare struttura
Inserito da: fsurfing - 13 Ottobre 2009, 12:24:08
se l' array contenente le classi è dichiarato come public lo puoi vedere da tutti i form a patto che nelle proprieta>>>>opzioni di progetto siano abilitati i controlli e i simboli per essere "public"
Titolo: Re: creare struttura
Inserito da: Ceskho - 13 Ottobre 2009, 15:25:34
Io credo volesse sapere proprio come implementare una classe...in tal caso la sintassi corretta è:

Codice: [Seleziona]
PRIVATE nome_che_userai_nel_codice AS NEW nome_classe
Titolo: Re: creare struttura
Inserito da: fsurfing - 13 Ottobre 2009, 19:18:47
Citazione
Io credo volesse sapere proprio come implementare una classe...in tal caso la sintassi corretta è:


non credo visto che ha già l'esempio a inizio 3d
Titolo: Re: creare struttura
Inserito da: Ceskho - 13 Ottobre 2009, 19:24:47
Dettagli mio caro!!!Semplici ed inutili dettagli!!! :-P
Titolo: Re: creare struttura
Inserito da: Michele - 13 Ottobre 2009, 22:54:28
Elementare Watson, elementare......


Ho risolto così
ma mi sembra poco elegante

apro il form Fmain
clicco su imput e si apre il form FInput
clicco crea classe ed esco
torno in FMain e cliccando "mostra nome " mi appare il nome inserito nella classe che ho appena creato e che è sopravvissuta alla chisura del form input avendola dichiarata static

È possibile evitare di dichiarare l'array di classi in un form e invece dichararlo ad esempio in un modulo?
se si come?
Titolo: Re: creare struttura
Inserito da: fsurfing - 13 Ottobre 2009, 23:42:45
la classe e in un modulo,

l' array delle classi lo puoi dichiarare in un modulo o in fmain così vivrà per tutto il tempo per cui l' applicazione sarà in vita, ma appena chiuderai l' applicazione la tua collezzione sparirà(e questo mi sembra ovvio)

se vui che l' array permanga anche quando chiudi l' applicazione e quindi sia già pronto per il prossimo avvio devi utilizzare un database oppure salvare tutti gli oggetti dell' array in un file.

NOn sono sicuro di aver capito le tue esigenze al limite spiegati meglio
:)
Titolo: Re: creare struttura
Inserito da: fsurfing - 13 Ottobre 2009, 23:47:31
se invece volevi semplicemente sapere se puoi dichiarare l' array in un form o modulo diverso da quello da cui lo crei la risposta e si :)
ti lascio il tuo esempio modificatoù
ciao ciao
Titolo: Re: creare struttura
Inserito da: Michele - 14 Ottobre 2009, 12:43:01
Citazione

fsurfing ha scritto:
se invece volevi semplicemente sapere se puoi dichiarare l' array in un form o modulo diverso da quello da cui lo crei la risposta e si :)
ti lascio il tuo esempio modificatoù
ciao ciao

in effetti era quello che volevo sapere
ci avevo già provato, ma evidentemente avevo sbagliato qualche cosa
ho provato anche a dichiarare l'array in un modulo ma con errore
Se dichiarato un un modulo è visibile in tutta l'applicazione?
come lo devo dichiarare?
Titolo: Re: creare struttura
Inserito da: fsurfing - 14 Ottobre 2009, 23:42:51
certo che poi dichiararlo in un modulo,

lo diachiari esattamnete nello stesso modo in cui nel secondo esempio l' ho dichiarato in fmain

naturalmente poi quando dovrai richiamarlo lo farai con nome_modulo.array.variabile

e non con

fmain.array.variabile

:)
Titolo: Re: creare struttura
Inserito da: Michele - 15 Ottobre 2009, 08:38:15
mannaggia
mi mancava
nome_modulo
sono ancora abbituato a VB
per disintossicarmi sono entrato in comunità........Gambas
Titolo: Re: creare struttura
Inserito da: Michele - 16 Ottobre 2009, 21:32:51
Altra questione

con

oggetto= NEW classe(x,y,z)

creo un nuovo oggetto appartenente all'array di oggetti tipo classe

come posso sapere il suo indice?

il numero dell'indice appena creato deve essere inserito in una listbox insieme a x,y,z
Titolo: Re: creare struttura
Inserito da: fsurfing - 17 Ottobre 2009, 00:01:18
indice= array_di_oggetti.max
Titolo: Re: creare struttura
Inserito da: Michele - 17 Ottobre 2009, 08:48:22
Risolto
Grazie
Titolo: Re: creare struttura
Inserito da: Michele - 19 Dicembre 2009, 20:17:32
Torno sull'argomento
le indicazioni che mi avete dato in precedenza sono preziosissime
da quando uso Gambas ho realmente capito cose che prima erano misteriose
Domanda
se volessi eliminare solo uno degli oggetti creati, ad esempio classe[1] ?
e se invece devo eliminarli tutti e far ripartire l'array di classi da 0?

Grazie
Titolo: Re: creare struttura
Inserito da: fsurfing - 19 Dicembre 2009, 20:21:26
per eliminarne uno:

mome_oggetto.remove(indice)

per cancellarli tutti

nome_oggetto.remove(0,nome_oggetto.max)
Titolo: Re: creare struttura
Inserito da: Michele - 19 Dicembre 2009, 20:27:16
Grazie mille ancora
Titolo: Re: [RISOLTO] Creare struttura
Inserito da: vuott - 13 Marzo 2012, 04:01:50
Ho dato un occhita alla documentazione ma non riesco a trovare questa informazione

vorrei creare una struttura ......
.....
Chiedo troppo?

Grazie

Semplicemente per dire ai lettori di questo messaggio che oggi, ma con Gambas-3, l'uso delle Strutture è possibile:
http://www.gambas-it.org/wiki/index.php/Strutture:_dichiarazione_ed_uso