Newsgroup: it.comp.lang.visual-basic
Titolo: Parametri di configurazione

Ciao a tutti,
Ho bisogno di un suggerimento per sapere quale e' la strada da migliore da
intraprendere per un progetto che sto realizzando senza appesantirlo troppo.
Provo a spiegarmi:
Ho salvati nel registro di configurazione dei parametri che mi indicano i
'filtri' da applicare ai controlli che uso nei form (TextBox, DBCombo,
ComboBox ecc..)
Per ogni controllo ho la lunghezza max accettata (per i text box posso usare
MaxLength, ma per gli altri controlli no), ed un altro parametro che indica
se l'input dell'utente deve essere Alfanumerico, Numerico, Alfabetico ecc...
Ho una mia Function che viene richiamata dall'evento KeyPress di ogni
controllo che riceve in input il codice del tasto premuto (KeyAscii), il
Controllo stesso ed un indice che punta al parametro presente nel registro
Ora vengo alla domanda : e' piu' efficace leggere ogni volta dal registro il
valore del parametro che mi interessa e fare il test sulla validità del
carattere digitato, oppure è meglio creare una matrice visibile in tutto il
modulo contenente tutti i parametri presenti nel registro che inizializzo
una volta per tutte e fare il test di validità usando questa.
Oppure e' meglio che questa matrice sia locale alla funzione di filtro e
definita statica ?
Un'altra breve domanda
In questa applicazione ho un form MDI con alcuni form figli (al momento 12
ma non ho ancora finito)
Il form MDI deve essere sempre a schermo intero, oppure iconizzato, ma non
ridimensionato, lo stesso dicasi per alcuni dei form figli.
L'unica soluzione che ho trovato al momento e' quella di inserire
nell'evento Resize del form questo codice:
if WindowState = vbNormal then WindowState = vbMaximized
Il tutto funziona, ma vedo comunque il form restringersi e riaprirsi per un
attimo ed e' tutto meno che bello.
Se qualcuono ha dei suggerimenti in merito ....
Grazie a tutti e scusate per il msg un po' lungo.
===========================================
gio...@newsoft.it
===========================================
--
Posted from 
ro...@saturno.ipernet.it
 [195.223.56.2]
via Mailgate.ORG Server - 
http://www.mailgate.org

Perchè utilizzi il registro per salvare dei parametri che indicano i
'filtri' da applicare? Mi spiego: ci sarà una prima volta in cui viene
mandato in esecuzione il programma nella quale questi parametri non
esistono nel registro; dovrà essere quindi essere il programma che va a
memorizzare i "filtri" nel registro...conclusione: che motivo c'è di andare
nel registro se i dati li hai nel programma?
Il discorso cambia invece se textbox ecc...non accettano sempre lo stesso
tipo di dati.
Qui sotto a titolo di esempio trovi il codice per una textbox di tipo data
nell'evento lost_focus viene controllato se il tipo è time
Public Sub chkforTimeType(txtTime As TextBox)
 If (txtTime.Text <> blank) Then
  If IsDate(txtTime.Text) Then
    txtTime.Text = TimeValue(txtTime.Text)
   Else
    Beep
    txtTime.Text = blank
  End If
 End If
End Sub
nell'evento keypress viene controllato se il tasto premuto è un tasto
valido per l'ora
Public Sub chkKeyTime(ByRef keyT As Integer, txtTime As TextBox)
 If (Len(txtTime.Text) > (lenTime - 1)) Or (keyT < Zero) Or (keyT > Nine)
Then
   If (keyT <> backspace) And (keyT <> TimeSepar) Then
       If (keyT = 13) Then			//lentime=lunghezza della stringa             
   	SendKeys "{TAB}"		//dell'ora=len(10.09.11)=8
       Else				//timesepar= "." , ":" ecc dipende
        Beep				//dal sistema
      End If
      keyT = Nulla // Nulla=""
   End If
 End If
End Sub
La cosa più bella sarebbe quella di creare una classe a cui delegare tutte
queste cose...
Per la seconda domanda: nell'evento form_load: WindowState = vbMaximized
e la proprietà borderstyle=fixedialog
Ciao!

Utilizzo il registro perchè i filtri da applicare possono essere diversi per
i vari campi e vengono impostati con un programma di configurazione che
utilizza chi installa il software e non l'utente finale, altrimenti mi puo'
incasinare anche delle altre cose...
--
=========================================
XXgio...@newsoft.it
per rispondere togliere le doppie XX
ICQ UIN : 14495862
=========================================
Marco Rodriquez ha scritto nel messaggio
<01bddbd9$cbcae5a0$LocalHost@rodry>...
