Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - tornu

Pagine: 1 2 [3] 4 5 ... 57
31
Programmazione / Re:Tasto Caps Lock attivo
« il: 10 Luglio 2018, 20:02:57 »
La mia esigenza è verificare se all'avvio del programma il tasto maiuscole è attivo.

Grazie comunque per i suggerimenti, si apprende sempre qualcosa di interessante.

32
Programmazione / Tasto Caps Lock attivo
« il: 09 Luglio 2018, 12:06:23 »
Buongiorno a tutti,
avendo la necessità in un mio programma di verificare se attivo il tasto Caps Lock (Maiuscole)
ho fatto una ricerca su Google non avendo trovato niente sul nostro Forum, mi sono imbattuto
su un post della Mailing ufficiale dove un utente faceva riferimento ad un vecchio programma di
un utente di questo Forum (Fsurfing) che aveva utilizzato questo codice
Codice: [Seleziona]
PUBLIC SUB Main()
  DIM sShellOutput AS String
  DIM iKeyLocks AS Integer
 
  SHELL "xset q | grep 'LED mask:'" TO sShellOutput
 
  sShellOutput = Replace(sShellOutput, " ", "")
 
  iKeyLocks = Val(Split(sShellOutput, ":")[3])
 
  SELECT iKeyLocks
    CASE 1
      PRINT "Caps Lock is ON"
    CASE 2
      PRINT "Num Lock is ON"
    CASE 3
      PRINT "Caps Lock is ON"
      PRINT "Num Lock is ON"
   END SELECT       
 END
La mia domanda è: si deve ricorrere obbligatoriamente alla Shell per verificarne lo stato?
Non ho trovato altre soluzioni

33
Evvai Sardegna  :ok: :ok:
Scusate il campanilisimo  :D

34
Programmazione / Re:CDate non funziona
« il: 28 Maggio 2018, 22:49:00 »
...
Oltre a tutto con SQL conviene usare le date e non le stringhe, stavo preparando una esemplificazione di questo argomento con l'aiuto di Tornu ma poi mi ha dato buca  ;D

 :ciao:
E' vero, chiedo umilmente scusa a Gianluigi :-[, ma come ho avuto modo di dirvi in altre occasioni è un momento
(dura da un pò purtroppo) veramente complicato.
Comunque volevo dare un mio piccolo contributo al problema che spesso vedo sollevare sulla gestione delle date.
Vi assicuro che in tutti i progetti dove ho avuto a che fare con le date non ho mai avuto problemi nel gestirle, niente
di particolare, ma usando semplicemente le risorse messe a disposizione di Gambas, salvo il caso che qualcuno abbia
avuto esigenze particolari che io non ho incontrato, ma da quello che leggo sul Forum i problemi mi sono sempre sembrati
gli stessi. Nel 99% dei casi uso sempre l'oggetto DateBox che trovo comodissimo e non ho mai avuto l'esigenza di usare
per esempio oggetti di tipo testo da dover poi convertire o formattare con tutte le complicazioni che ne conseguono come
leggo spesso, questi i metodi che uso quasi sempre:
Data in un campo testo
Codice: [Seleziona]
Private $DataOdierna As Date

$DataOdierna = Date(Now)
TextLabel.Text = Format($DataOdierna, "dd/mm/yyyy")
Oggetto DateBox
Proprietà Mode impostata su DateOnly
Proprietà ReadOnly impostata su True se non si vuol dare all'utente la possibilità di digitare
la data ma obbligarlo a selezionarla dal calendario che viene visualizzando cliccando sulla piccola icona a
destra, nella maggior parte dei casi uso questa modalità; in caso contrario l'oggetto inserisce automaticamente
il carattere di separazione "/"
Premetto che io uso sempre nei miei progetti il database MySql con i campi data impostati come tipo Date
Inserimento nel DataBase senza nessuna formattazione
Codice: [Seleziona]
insResult["datatest"] = DateBox.Value
Lettura del campo dal DataBase senza nessuna formattazione
Codice: [Seleziona]
DateBox.Value = mioResult!datatest
Niente di che, ma con questi metodi non ho mai avuto "rogne"
Scusate la semplicità terra terra  :ciao:

35
OpenBar / Re:Che generi di "Gestionali" mancano su Linux?
« il: 23 Maggio 2018, 00:20:04 »
Ciao Michy9393,
mi fa piacere il tuo interessamento, dovrai avere pazienza, lo sviluppo continua, lentamente
ma và avanti. Purtroppo in questo periodo l'unico tempo che riesco a ritagliarmi lo devo "rubare"
al sonno, vi terrò aggiornati... a presto  :ciao:

36
OpenBar / Re:Che generi di "Gestionali" mancano su Linux?
« il: 17 Maggio 2018, 21:37:07 »
Ciao Gianluigi,
uhmmm... interessante, però per come stò impostando la gestione dei vari form è menù non sò se ciò che
mi hai suggerito si "adatta" al progetto, però terrò presente il tuo suggerimento. Anche perchè quel poco
che ho già fatto ti assicuro che prima che sia come l'ho pensato sia in termini grafici ma sopratutto funzionali
lo fatto è rifatto varie volte  specialmente a livello codice (sempre limitatamente alle mie conoscenze) fino a
quando non ho ottenuto un risultato per me soddisfacente, e sarà così fino al termine del progetto.
Comunque come ho detto nel post precedente posterò sul forum il progetto un minimo funzionante prima che
sia troppo avanti nello sviluppo in modo che non sia troppo complicato modificarlo nel caso i vostri suggerimenti
e le critiche mi convincano a riscrivere determinate parti per un suo miglioramento, proprio per quello che tu mi hai
suggerito "Parti con il piede giusto"... ci stò provando  ;D  :ciao:

37
OpenBar / Re:Che generi di "Gestionali" mancano su Linux?
« il: 14 Maggio 2018, 22:38:05 »
Buonasera a tutti,
purtroppo mi manca il tempo per essere più presente sul forum, ma vi leggo quasi ogni giorno, ma vista la domanda
di Michy9393 o rubato qualche minuto al mio poco tempo per dire la mia visto che come ho detto molte volte i gestionali
aziendali sono la "mia passione" anche per il lavoro che svolgo.
Per quanta riguarda il mondo Linux purtroppo è carente di gestionali aziendali degni di questo nome, almeno dal mio punto
di vista e per la mia esperienza sul campo. Diciamo che c'e ne sono di buoni ma non completi, mancano sempre di qualche
funzionalità o sono poco adattabili a seconda del settore in cui vengono utilizzati, alcuni sono "complicati" e poco
intuitivi. I vari gestionali scaricabili dal web gli ho provati praticamente tutti e fino ad esso non ne ho trovato uno
che mi abbia soddisfatto completamente, per esempio:
Promogest - sicuramente il migliore, ma molte funzionalità e personalizzazioni sono a pagamento, potete provare la
versione gratuita
Phasis - per piccole attività senza pretese
OpenSTAManager - ottimo per centri assistenza, ma eventuali personalizzazioni sono a pagamento se non si sà programmare
Invoicex - semplice gestionale
Questi i primi che mi sono venuti in mente, ma c'è ne sono tanti altri.
Qui sul Forum era iniziato un progetto da una piccola idea di Gianluigi, che pian piano stava prendendo corpo a livello
di progettazione, le premesse erano buone poi per motivi vari è stato interrotto.
Da quella idea ho dato vita ad un progetto che mi ero sempre prefisso ma non avevo mai iniziato, sicuramente ambizioso
perchè lo stò portando avanti da solo per il momento.L'idea di massima è quella di costruire un gestionale adattabile
alla maggior parte delle attività non food, cercando di implementare tutte quelle funzionalità che secondo me e la mia
esperienza mancano nei software Open Source che conosco. Non sò quanto tempo ci metterò, ma non è un problema visto che
nessuno mi paga  ;D per terminarlo entro un certo tempo, è solo un'ambizione mia personale. Comunque quando il programma
avrà un minimo di funzionalità implementate lo condividerò comunque con questo Forum, sia per trovare eventualmente
collaborazione, sia per chiedervi aiuto quando mi troverò in difficoltà e vi assicuro che me ne servirà sicuramente
tanto. Volevo dare un mio piccolo contributo e vi saluto tutti. A presto  :ciao:
P.S.: Vi posto la schermata iniziale visualizzata dopo il login

38
OpenBar / Re:Buon Anno a tutti
« il: 03 Febbraio 2018, 12:34:35 »
...
Non ho idea del perchè oggi sia ricapitato qui, chissà, magari è un segno ;D
Ciao Pixel,
forse è vero che i vecchi amori sono duri a morire  :ciao:

39
Programmazione / Re:textbox e Ucase
« il: 14 Gennaio 2018, 22:30:23 »
Ciao naderit,
vedi se questo metodo ti può essere utile
Codice: [Seleziona]
Public Sub TextBox1_Change()
  Dim iPs As Integer

  iPs = Last.Pos

  Last.Text = Upper(Last.Text)

  Last.Pos = iPs
End

40
Programmazione / Re:[Risolto] Intercettazione errori
« il: 04 Gennaio 2018, 20:03:14 »
Giusto, questa la soluzione che ho adottato.
Una piccola premessa sulla logica se qualcuno magari vuol provare il codice:
essendo la Classe pensata per formattare i valori dei campi di un gestionale, questi vanno
digitati interi (senza separatore migliaia) separando solo i decimali con la virgola o il punto,
sarà la Classe a formattarli in modo corretto, in caso contrario sarà sollevato l'errore ed
evidenziato il campo riportando il valore errato.
Classe
Codice: [Seleziona]
Public Sub FormatVal2(sStringa As String, sFlag As String) As String[] '' Formattazione a due decimali e inserimento separatore migliaia
  Dim sReturnVal As New String[]
  Dim iP, iP1, iTemp, iTemp1, iCount, iPunto, iVirgola As Integer
  Dim sInitStringa As String

'''' Sostituzione o aggiunta della virgola
  If InStr(sStringa, ",") <> 0 Then
    sStringa = Replace(sStringa, ",", ".")
  Endif

  If InStr(sStringa, ".") <> 0 Then
      sStringa = Replace(sStringa, ".", ",")
    Else
      sStringa = sStringa & ",00"
  Endif

''''' Controllo quante virgole o quanti punti contiene il valore da formattare
  For iCount = 1 To Len(sStringa)
    If InStr(".", Mid(sStringa, iCount, 1)) Then
      Inc iPunto
    Endif

    If InStr(",", Mid(sStringa, iCount, 1)) Then
      Inc iVirgola
    Endif
  Next

''''' Arrotondamento a due decimali
  If iPunto > 1 Or iVirgola > 1 Then  ' Se il valore da formattare contiene più di un punto o più di una virgola restituisce un'errore
      Message.Error("<B>Uso dei decimali non corretto</B>")
      sFlag = "Err"
      sReturnVal.Add(sStringa)
      sReturnVal.Add(sFlag)
      Return sReturnVal 'stringa
    Else
      iP = InStr(sStringa, ",") ' Assume la posizione della virgola
      iP1 = Len(sStringa) - iP ' Lunghezza della sStringa - la posizione della virgola
      sInitStringa = Left(sStringa, iP - 1)
      If iP = 1 Then
          Message.Error("<B>Uso dei decimali non corretto</B>")
          sFlag = "Err"
          sReturnVal.Add(sStringa)
          sReturnVal.Add(sFlag)
          Return sReturnVal 'stringa
        Else If iP1 = 2 Then
          sStringa = sStringa
        Else If iP1 <= 1 Then
          sStringa = sStringa & "0"
        Else If iP1 > 2 Then
          iTemp = CInt(Mid(sStringa, iP + 1, 2))
          iTemp1 = CInt(Mid(sStringa, iP + 1 + 2, 1))
          ' If iTemp1 >= 5 Then ' Se l'ultimo decimale e uguale o maggiore di 5 viene incrementato di uno
          '   Inc iTemp
          ' Endif
          If iTemp = 100 Then
              sStringa = CString(CInt(sInitStringa) + 1) & ",00"
            Else
              sStringa = sInitStringa & "," & CString(iTemp)
          Endif
      Endif

''''' Aggiunta puntini ogni 1000 (separatore migliaia)
      If Len(sStringa) >= 7 Then
        sStringa = Mid(sStringa, 1, (Len(sStringa) - 6)) & "." & Right(sStringa, 6)
      Endif

      If Len(sStringa) >= 11 Then
        sStringa = Mid(sStringa, 1, (Len(sStringa) - 10)) & "." & Right(sStringa, 10)
      Endif

      If Len(sStringa) >= 15 Then
        sStringa = Mid(sStringa, 1, (Len(sStringa) - 14)) & "." & Right(sStringa, 14)
      Endif

      If Len(sStringa) >= 19 Then
        sStringa = Mid(sStringa, 1, (Len(sStringa) - 18)) & "." & Right(sStringa, 18)
      Endif
     
      sReturnVal.Add(sStringa)
      sReturnVal.Add(sFlag)
   
      Return sReturnVal 'stringa
  Endif
End

Form
Codice: [Seleziona]
Private CFormat_Valori As New CFormatValori
Private ReturnVal As String[]

Public Sub Form_Open()
  Me.Center()

  TextBox1.SetFocus()
End

Public Sub TextBox1_KeyPress()
  TextBox1.Background = Color.Default
End

Public Sub TextBox1_Activate()  '  Public Sub TextBox1_LostFocus()
  Dim sFlag As String

  ReturnVal = CFormat_Valori.FormatVal2(TextBox1.Text, sFlag)

  If ReturnVal[1] = "" Then
      TextBox1.Text = ReturnVal[0]
    Else
      TextBox1.Text = ReturnVal[0]
      TextBox1.Background = Color.RGB(255, 255, 127)
  Endif
End
Saranno bene accetti suggerimenti ed eventuali migliorie.  :ciao:

41
Programmazione / Re:Intercettazione errori
« il: 03 Gennaio 2018, 23:37:20 »
Si hai perfettamente ragione, chiedo scusa   :-[
Nel mentre avevo trovato la soluzione leggendo la nostra grande Wiki di cui spesso mi dimentico
nel capitolo Scrivere una Funzione, dove ho trovato una esauriente spiegazione di come
ritornare più valori da una funzione usando i vettori. Grazie a tutti per l'aiuto  :ciao:

42
Programmazione / Re:Intercettazione errori
« il: 03 Gennaio 2018, 21:44:08 »
...
Comunque ripensando al problema di Tornu io lo affronterei così:
...
In questo modo mi costringi in ogni Form nel quale mi serve utilizzare questi controlli/formattazione dei valori
ripetere le stesse routine, ne ho già varie che svolgono queste funzioni (aggiungo alla mia "collezione"
anche questa da te proposta... non si sà mai  ;)), io cercavo di "centralizzare" tramite una Classe questi
controlli, ma come ho già detto ho il problema che l'errore sollevato dalla Classe mi deve evidenziare la
TextBox che lo ha generato e non sò come fare, le indicazioni datemi da kicco e vuott ancora non ho capito
come implementarle, continuo a studiare...

43
Programmazione / Re:Intercettazione errori
« il: 02 Gennaio 2018, 23:22:54 »
Questa la modalità che stò utilizzando

Classe CFormatValori:
Codice: [Seleziona]
Public Sub FormatVal2(stringa As String) As String '' Formattazione a due decimali e inserimento separatore migliaia
....
codice
....
Return stringa
End
Form:
Codice: [Seleziona]
Private FrmValori As New CFormatValori

Public Sub TextBox1_Activate()
  TextBox1.Text = FrmValori.FormatVal2(TextBox1.Text)
End
Domani rileggerò con attenzione i vostri suggerimenti, vediamo se riesco ad applicarli.

44
Programmazione / Re:Intercettazione errori
« il: 02 Gennaio 2018, 22:25:00 »
Ciao kicco,
certo che sì, era una soluzione che già mi era venuta in mente.
Passare alla Classe qual' è la TextBox che stà analizzando non è un problema,
il problema e come restituire alla Form l'informazione che identifica la TextBox
dopo che la Classe ha sollevato l'errore.
Le varie funzioni della Classe terminano tutte con Return ValoreFormattato

45
Programmazione / [Risolto] Intercettazione errori
« il: 02 Gennaio 2018, 20:57:49 »
Buonasera a tutti,
ho una Form con vari oggetti tra cui delle TextBox che devono contenere dei valori
con decimali controllati da una Classe che ne verifica la corretta digitazione, sia
per quanto riguarda l'uso della virgola o del punto. Nel caso di digitazione di
cifre intere vengono aggiunti automaticamente i decimali e formattati col separatore
delle miglia a partire dalla cifra 1000.
La Classe solleva dei messaggi di errore nel caso siano digitate cifre non conformi
ai controlli impostati, per esempio doppie virgole, doppi punti, etc...
Quello che voglio chiedervi, perchè non ci sono riuscito e sinceramente non sò se
è fattibile, come faccio a sapere quando la Classe solleva l'errore qual'è l'oggetto
della Form che lo ha scatenato?

Pagine: 1 2 [3] 4 5 ... 57