Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
ConvertitoreMisure - Classe Misure!
Forum - ConvertitoreMisure - Classe Misure! - Pagina 7

Pagine: [ 1 2 3 4 5 6 7 8 ] Precedente | Prossimo
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 8:14
Domenica, 15/04/2018
Era esattamente qui che volevo portarti,
Per questo, te l'ho chiesto apposta ;)

Sebbene entrambi incapsulano metodi è da notare questi fattori importantissimi.


Interfaccia:

L'interfaccia non può avere contenere eventi o delegati.
Ma può ereditare una o più interfacce.
I Metodi contenuti vanno esplicitamente dichiarati nella classe che eredita l'interfaccia.


Classe astratta:

Può contenere eventi e delegati ma non può ereditare più di una classe.
i metodi astratti possono anche non essere implementati nella classe che eredita la classe astratta.
Possibilità di specificare le implementazioni predefinite dei metodi.
Aggiunta di controllo invariante alle funzioni.
Avere un po 'più di controllo su come vengono chiamati i metodi "interfaccia"
Capacità di fornire un comportamento correlato.



https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
Mikelius (Member)
Expert


Messaggi: 525
Iscritto: 14/04/2017

Segnala al moderatore
Postato alle 13:24
Martedì, 24/04/2018
Testo quotato

Postato originariamente da Carlo:


Ho implementato anche la conversione delle temperature, manca ancora il controllo input sui valori minimi e massimi.
Non voglio proseguire perché il mio codice anche se in C#, è procedurale e non somiglia per niente ad un programma oop in C#.
Vorrei che Mikelius utilizzasse il mio approcio (valido) Matrici->indici, che corrispondono con l'indice del ComboBoxInT.SelectedIndex, e l'indice del TabControl.SelectedIndex, ma usando il suo modo di programmare, che vorrei apprendere.



Non mi sono scordato di te, ma sto cercando di capire come potere fare, Ti spiego, con il mio metodo, io ho scritto il programma utilizzando un tipo generico, quindi non ho bisogno di vari indici tranne quello di ComboBoxInT.SelectedIndex che andrà ad instanziare la classe con il tipo adeguato. tutto il resto è uguale per ogni misura. La classe l'ho chiamata IPhysics, poi ad ogni selezione una volta varrà Temperature, una volta Pressure e cosi via. Con il tuo metodo, non c'è più la necessità di avere una classe generica, perchè al variare dell'indice dovrei instanziare e utilizzare tipi diversi. Credo che sia ugualmente fattibile, ma credo si perderebbero i vantaggi del tuo e del mio metodo. (il tuo approccio è validissimo, sotto certi aspetti è migliore, l'unica pecca è il dover modificare la GUI se volessi cambiare o aggiungere delle misure, con il mio scrivo forse 10volte il tuo codice, ma almeno non tocco la GUI e posso modificare solo la dll  ;)

PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1344
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 23:10
Venerdì, 04/05/2018
Chiaro.
Mi sono scaricato la tua nuova versione, e l'ho studiata un po', capisco quello che fai, ma poi se cerco di programmare come te, mi perdo.
Il mio primo programma serio l'ho scritto 40 anni fa (era un programma di contabilità), sono passato per il basic, pascal, fortran, assembler e assembly, quando è uscito VB6, l'ho adottato e non ho cambiato più fino a 2 anni fa.

Edit.
Questo per dire che fai bene a perseguire una disciplina "corretta", cambiare non è semplice.

Ultima modifica effettuata da Carlo il 05/05/2018 alle 16:10


in programmazione tutto è permesso
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1344
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 2:55
Mercoledì, 09/05/2018
@Mikelius

Allego nuova versione convertitore misure.

Dopo aver letto che vorresti rendere il programma espandibile, mi è venuto in mente che un utilizzatore di questo programma, potrebbe avere l'esigenza di convertire altre scale o altre unità.
Mi è sembrato corretto dare all'utente la possibilità di personalizzare e/o aggiungere nuove unità.
Ho inserito un tastino [+] per aggiungere nuove unità di misura e un tastino [edit] per modificare le scale.
Ad esclusione delle temperature l'utente può cambiare tutto, e/o aggiungere tutte le unità di misura che vuole.
Ad ogni [+] si crea una nuova unità composta da 8 scale, con valori nulli, modificabili con [edit].
L'esempio (per ora) non prevede controlli su quanto inserito, e non salva per un utilizzo futuro.

Vedi se ti piace come idea.


Carlo ha allegato un file: ConversioniMisure_VbNET.zip (59118 bytes)
Clicca qui per scaricare il file


in programmazione tutto è permesso
PM Quote
Avatar
Mikelius (Member)
Expert


Messaggi: 525
Iscritto: 14/04/2017

Segnala al moderatore
Postato alle 14:46
Mercoledì, 09/05/2018
Testo quotato

Postato originariamente da Carlo:

@Mikelius

Allego nuova versione convertitore misure.

Dopo aver letto che vorresti rendere il programma espandibile, mi è venuto in mente che un utilizzatore di questo programma, potrebbe avere l'esigenza di convertire altre scale o altre unità.
Mi è sembrato corretto dare all'utente la possibilità di personalizzare e/o aggiungere nuove unità.
Ho inserito un tastino [+] per aggiungere nuove unità di misura e un tastino [edit] per modificare le scale.
Ad esclusione delle temperature l'utente può cambiare tutto, e/o aggiungere tutte le unità di misura che vuole.
Ad ogni [+] si crea una nuova unità composta da 8 scale, con valori nulli, modificabili con [edit].
L'esempio (per ora) non prevede controlli su quanto inserito, e non salva per un utilizzo futuro.

Vedi se ti piace come idea.




l'idea è buona, sto studiando le classi astratte per implementarla come classe padre (ma ho un problemino con membri/proprietà virtual/stati/abstract ecc ecc ), questo però rende difficile aggiungere esternamente altre scale, (per salvare le modifiche si potrebbe creare un file di supporto da dove estrapolare le info per le varie unità di misura (json o XML che sarebbe meglio) non credo sia fattibile modificare direttamente la dll. Onestamente non avevo pensato alla necessità di inserire nuove grandezze di misura, perchè avevo intenzione di inserirle tutte (o per lo meno la spero XD).

Ti faccio una domanda, a livello di programma:
Secondo te, imporre solo 8 unità di misura è giusto? ad esempio le temperature sono 8, ma comunemente vengono usate solo 3, per questo avevo strutturato il programma con 8. ma se ad esempio prendiamo la lunghezza, 8 possono essere anche poche (se dobbiamo includere unità anglosassoni e astronomiche ad esempio). Se strutturassimo il pannello delle conversioni in modo tale da contenerne di più? (al limite con una barra laterale per scorrere l'elenco)



P.s. Se vuoi, inserisci il programma come beta nel progetto, senza problemi, inserisci tranquillamente le tue versioni.

PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1344
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 16:41
Mercoledì, 09/05/2018
Testo quotato

Postato originariamente da Mikelius:
Ti faccio una domanda, a livello di programma:
Secondo te, imporre solo 8 unità di misura è giusto? ad esempio le temperature sono 8, ma comunemente vengono usate solo 3, per questo avevo strutturato il programma con 8. ma se ad esempio prendiamo la lunghezza, 8 possono essere anche poche (se dobbiamo includere unità anglosassoni e astronomiche ad esempio). Se strutturassimo il pannello delle conversioni in modo tale da contenerne di più? (al limite con una barra laterale per scorrere l'elenco)



Avevo pensato a questo problema, per questo la personalizzazione è importante, non si può prevedere cosa vuole l'utente.
1) le unità di misura inseribili devono essere infinite.
2) le scale per ogni unità di misura vanno bene solo 8, perchè se si ha l'esigenza di averne di più, basta inserire due o più Unità.

Es. Distanze1, Distanze2, Distanze3
In Distanze1 ci saranno le scale normali Km, m, piedi, braccia ecc.
In Distanze2 ci saranno le scale astronomiche parsec, UA, anno luce, Km ecc.
In Distanze3 ci saranno le scale micrometriche m, nm, pm, angstrom, femtometro ecc.

Il programma che ho postato, già fa una cosa di questo genere, manca il salvataggio, ma non è un problema salvare un testo o XML.

Ora lo scrivo in C#, poi lo posto.
Naturalmente, lo posto per l'idea, non per l'eleganza della scrittura del codice, che purtroppo sarà sempre procedurale.


Ultima modifica effettuata da Carlo il 09/05/2018 alle 18:20


in programmazione tutto è permesso
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1344
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 18:18
Mercoledì, 09/05/2018
In allegato il programma in C#.
Ho ampliato quello che avevo già scritto, manca ancora la validazione degli input.

P.s. testato poco, è per vedere in pratica l'idea, che ho descritto sopra.


Carlo ha allegato un file: Convertitore-WinForm_2.zip (80781 bytes)
Clicca qui per scaricare il file

Ultima modifica effettuata da Carlo il 10/05/2018 alle 0:59


in programmazione tutto è permesso
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1344
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 1:10
Giovedì, 10/05/2018
Testo quotato

Postato originariamente da Carlo:

In allegato il programma in C#.
Ho ampliato quello che avevo già scritto, manca ancora la validazione degli input.

P.s. testato poco, è per vedere in pratica l'idea, che ho descritto sopra.



Nuova versione in C# (la collocazione dei nuovi buttons è un po' casuale).
Ho implementato il salvataggio, non ho usato niente di preconfezionato, salvo 3 file .txt, nella cartella dell'applicazione, uno per ogni matrice di controllo.
Manca ancora la validazione degli input, la scelta del nome del file (per creare + convertitori personalizzati).
Magari si potrebbero aggiungere dei tastini tipo: [Conv UK], [Conv USA], [Scientifico], [Meccanica], [Astronomia], ecc, e tutto gestibile dall'utente.:k:
Manca un tastino [Reset]
Manca anche un po' di uso per scovare i bug.
1) se si carica un files con N Unità, poi si aggiungono altre unità, e si ricarica il vecchio file che ha meno unità, senza prima salvare, si ha un errore.
E altre cose che mi direte voi.


Carlo ha allegato un file: Convertitore-WinForm_3.zip (220273 bytes)
Clicca qui per scaricare il file

Ultima modifica effettuata da Carlo il 10/05/2018 alle 1:23


in programmazione tutto è permesso
PM Quote
Pagine: [ 1 2 3 4 5 6 7 8 ] Precedente | Prossimo