A me sembra un non problema, occorre semplificare al massimo l'intervento del nostro codice sul comportamento della grafica.Benissimo, però, come avrai certamente capito quello del DateBox è solo un esempio; il problema si può presentare alla fine di una digitazione qualsiasi all'interno di una TextBox o di una TextArea o ancora diun a ComboBox, ...
Se, come succede ad esempio in DBSpeedyTest, dopo aver scritto la/le date devi agire su un widget (abitualmente un Button) il controllo dell'esattezza dei dati lo fai li e se qualcosa non va metti a Null il valore e gli dai il SetFocus
Public Sub Form_Open()
TextBox1.Text = "Un testo qualunque"
End
Public Sub Button1_Click()
Dim s As String
s = Left(TextBox1.Text, 8)
If s <> "Una voce" Then
Balloon.Delay = 1500
Balloon("L'inserimento è sbagliato", TextBox1)
TextBox1.SetFocus
TextBox1.Select(0, 8)
Return
Endif
Print "INSERIMENTO CORRETTO!"
End
Public Sub DatIniz_LostFocus()
Dim TstDtDig As TestData
Dim $AA As String
Dim $GG As String
Dim $MM As String
Dim $Data As String
'------------------------------------------------------------------------------
Debug "Evento 'DatIniz_LostFocus' - apertura"
$Data = DatIniz.value 'formato della data: MMggAAAA
$GG = Mid($Data, 4, 2)
$MM = Left($Data, 2)
$AA = Mid($Data, 7, 4)
$Data = Mid($Data, 7, 4) & Left($Data, 2) & Mid($Data, 4, 2)
TstDtDig = New TestData($GG, $MM, $AA) 'Testa validità data e se data errata pone bSwVeFa = False
If TstDtDig.bSwVeFa = False Then
Message.ERROR("<CENTER>data immessa ERRATA O INCOMPATIBILE <BR> <BR> --- C O R R E G G I --- </CENTER>") '''
Stop Event
DatIniz.SetFocus
Endif
Sto diventando come Vuott.
ogni programmatore ha un suo stile
Beh, se LostFocus ti provoca acidità, allora... :D
In ogni caso non mi sembra una maniera sbagliata di gestire la cosa e se funziona... ;)
Ahéééé ! Allora ti servirà il bicarbonato di sodio !;D
Form11.DatIniz_GotFocus.294: Evento 'DatIniz_GotFocus' - aperturaL'evento DatIniz_LostFocus viene schedulato dopo AggiListPuls1_MouseUp
Form11.AggiListPuls1_MouseUp.183: Evento AggiListPuls1_MouseUp
Form11.DatIniz_LostFocus.301: Evento 'DatIniz_LostFocus' - apertura
Form11.DatIniz_GotFocus.270: Evento 'DatIniz_GotFocus' - apertura
Form11.DatIniz_LostFocus.277: Evento 'DatIniz_LostFocus' - apertura
Form11.DtIniFinLostFocus_mio.289: metodo 'DtIniFinLostFocus_mio' - apertura
Form11.PulsAggiList_MouseUp.323: Evento PulsAggiList_MouseUp - apertura
Form11.PulsAggiList_GotFocus.318: Evento PulsAggiList_GotFocus - apertura
Form11.DatIniz_GotFocus.270: Evento 'DatIniz_GotFocus' - apertura
A me sembra un non problema, occorre semplificare al massimo l'intervento del nostro codice sul comportamento della grafica. ...Scusate l'intervento, vedo che ciclicamente sul Forum si aprono post sulla gestione delle date e gli oggetti a disposizione
Va rimarcata una cosa, Gambas permette con pochi passaggi e un sapiente uso dei contenitori (Container) di creare finestre che si mostrano uguali in tutti i desktop.Uno dei miei cruci da sempre, non ci sono mai riuscito, come il ridimensionamento quando si tratta di progetti composti non da una
Quindi per delle buone finestre occorrerebbe poco codice e giusta grafica.
... impostando la proprietà ReadOnly a True ti eviti gli errori formali e al massimo sbagli solo la dataConcordo pienamente :ok:
intesa come periodo.
Uno dei miei cruci da sempre, non ci sono mai riuscito, come il ridimensionamento quando si tratta di progetti composti non da una
semplice Form e con più oggetti contenuti, sarebbe interessante aprire una discussione ad hoc...
Picavbg, mi spieghi per quale motivo (solo per mia curiosità) usando una DateBox lasci libertà di digitazione della dataL'oggetto stampa caricava nella ListBox tutte le date contabili presenti nella tabella riepilogativa delle giornate di registrazioni. Ciò comportava un inutile perdita tempo nel caricamento di tutte quelle date (oggi sono 9033). Ho pensato allora di caricare solamente quelle riguardanti l'ultimo anno.
quando impostando la proprietà ReadOnly a True ti eviti gli errori formali e al massimo sbagli solo la data
intesa come periodo.
... Si tratta semplicemente di una scelta mia...Certamente, non mi permetto di discuterla.