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 - clabe69

Pagine: 1 2 [3] 4
31
Programmazione (Gambas 2) / Re: [Risolto]invalid object
« il: 30 Luglio 2012, 23:51:43 »
Il codice è nella form, impostata come toolbox, che si chiama NewCli.
Questa si apre tramite un pulsante che stà sulla form FMain ed andrebbe richiusa o tramite il pulsante btnQuit o tramite btnOK, che stanno sulla NewCli.

32
Programmazione (Gambas 2) / Re: [Risolto]invalid object
« il: 30 Luglio 2012, 12:22:21 »
Questo è il codice di una toolbox (NewCli appunto), aperta su una form FMain, per qui quando la chiudo per tornare alla FMain, mi sistemo prima alcune proprietà.....della FMain.

33
Programmazione (Gambas 2) / Re: [Risolto]invalid object
« il: 26 Luglio 2012, 22:50:14 »
Codice: gambas [Seleziona]

PUBLIC SUB btnOK_Click()

  DIM sql AS String
  DIM iListino AS Integer

    IF FMain.gridModo = FALSE THEN
      IF txtCogn.Text = "" THEN
        Message.Error("<b>Il campo Cognome è vuoto!</b>")
      ELSE IF txtNome.Text = "" THEN
        Message.Error("<b>Il campo Nome è vuoto!</b>")
      ELSE
        IF FMain.gridModo = FALSE THEN
            Inserisci
        ELSE
          sql = "SELECT id FROM tclienti WHERE cogn = '" & FMain.gridCogn & "' AND nome = '" & FMain.gridNome & "'"
          MyRes = modConn.$Conn.Exec(sql) 
          sql = "DELETE FROM tclienti WHERE id = " & MyRes!id
          MyRes = modConn.$Conn.Exec(sql)
          FMain.gridModo = FALSE
          Inserisci
        ENDIF
      ENDIF
     
    ELSE
      IF FMain.bLogin THEN
        IF RadioButton1.Value THEN
          iListino = 1
        ELSE IF RadioButton2.Value THEN
          iListino = 2
        ELSE IF RadioButton3.Value THEN
          iListino = 3
        ELSE IF RadioButton4.Value THEN
          iListino = 4
        ENDIF 
        sql = "UPDATE tclienti SET cogn = '" & txtCogn.Text & "', nome = '" & txtNome.Text & "', indir = '" & txtIndir.Text & "', cap = '" & txtCap.Text & "', citta = '" & txtCitta.Text & "', prov = '" & txtProv.Text & "', cell = '" & txtCell.Text &
        "', tel = '" & txtTel.Text & "', fax = '" & txtFax.Text & "', email = '" & txtEmail.Text & "', pi = '" & txtPi.Text & "', cf = '" & txtCf.Text & "', note = '" & txtNote.Text & "', nlist = " & iListino &
        ", pnt = 0, cred = 0.00 WHERE cogn = '" & FMain.gridCogn & "' AND nome = '" & FMain.gridNome & "'"
        MyRes = modConn.$Conn.Exec(sql)
      ENDIF
    ENDIF
   
    sql = "SELECT id FROM tclienti ORDER BY id"
    MyRes = modConn.$Conn.Exec(sql)
    FOR EACH MyRes
      FMain.tbContCli.Text = MyRes!id
    NEXT

  FMain.Enabled = TRUE
  FMain.gridModo = FALSE
  NewCli.Close
 
END


PUBLIC SUB btnQuit_Click()

  FMain.Enabled = TRUE
  FMain.gridModo = FALSE
  ME.Close

END



34
Programmazione (Gambas 2) / Re: [Risolto]invalid object
« il: 25 Luglio 2012, 00:00:37 »
OK; ma perchè se clicco sul pulsante btnQuit, si chiude e invece se clicco sul pulsante btnOk, che prevede prima della chiusura tutta una serie di operazioni, mi da l'errore, tanto che ho dovuto sostituire ME.Close con NewCli.Close (NewCli è il nome della form)?
Inoltre, nel mio programma ci sono 24 form, tutte impostate toolbox = true ed una FMain: tutte e 23 funzionano, mentre la NewCli no.  :hard:

35
Programmazione (Gambas 2) / Re: invalid object
« il: 24 Luglio 2012, 19:19:55 »
Salva a tutti; ho risolto cambiando ME con il nome della form.
Non sò perchè, ma così và.

Codice: gambas [Seleziona]

   
    sql = "SELECT id FROM tclienti ORDER BY id"
    MyRes = modConn.$Conn.Exec(sql)
    FOR EACH MyRes
      FMain.tbContCli.Text = MyRes!id
    NEXT

  FMain.Enabled = TRUE
  FMain.gridModo = FALSE

  NewCli.Close
 
END


PUBLIC SUB btnQuit_Click()

  FMain.Enabled = TRUE
  FMain.gridModo = FALSE
  ME.Close

END

36
Programmazione (Gambas 2) / [Risolto]invalid object
« il: 10 Luglio 2012, 13:39:58 »
Salve a tutti; qualcuno di lor dotti signori può spiegarmi perchè, aprendo una form toobox, su una form FMain, per richiuderla con il pulsante "btnQuit", il comando ME.Close funziona, invece con il pulsante "btnOK", dopo aver eseguito vario codice, il comando ME.Close mi dà l'errore "invalid object".
Eliminando il comando di cui sopra, la form si chiude senza errori.

 
Codice: gambas [Seleziona]

    
    sql = "SELECT id FROM tclienti ORDER BY id"
    MyRes = modConn.$Conn.Exec(sql)
    FOR EACH MyRes
      FMain.tbContCli.Text = MyRes!id
    NEXT

  FMain.Enabled = TRUE
  FMain.gridModo = FALSE
'  ME.Close
  
END


PUBLIC SUB btnQuit_Click()

  FMain.Enabled = TRUE
  FMain.gridModo = FALSE
  ME.Close

END



Grazie.

37
Programmazione (Gambas 2) / Re: [Risolto]Too many constants
« il: 10 Luglio 2012, 12:56:35 »
Citazione
Ma perchè i connotati con li cambi direttamente durante la creazione? perchè cambiarli a creazione avvenuta?

Quando creo i pulsanti, gli dò i connotati che sono salvati in un DB. Ma questi connotati possono essere anche cambiati anche dopo che i pulsanti sono stati creati.

Ti spiego: ho una tabstrip con 6 cartelle, su ogni cartelle c'è una scrollview, su ogni scrollwiew ci vanno creati 50 pulsanti, per un totele di 300 pulsanti.

L'errore sta nel fatto che i children di TabStrip1 non risultano le scrollview, ma i 50 pulsanti che si trovano sulla tab attiva in quel momento.
Per cui con quel codice non riesco a fare la scansione di tutti e 300 i pulsanti, una tab alla volta, ma solo dei 50 sulla tab attiva.

Se vuoi vedere il programma vai sul sito http://www.cbelettronica.altervista.org/progetti.html
Lì ci sono le foto delle schermate, così puoi farti un'idea.

38
Programmazione (Gambas 2) / Re: [Risolto]Too many constants
« il: 02 Luglio 2012, 14:48:33 »
ERRORE ERRORE!!

il codice che ho scritto per la modifica in corsa non và.

Codice: gambas [Seleziona]

' Scorriamo tutte e 6 le tabelle 
 FOR EACH objA IN FMain.TabStrip1.Children 
' Prendiamo in considerazione tutti i Button   
' presenti nell PanelX:   
   
   FOR EACH objB IN objA.Children   
' Quando il codice passa a considerare il Button (Children) num. X, allora...   
     IF objB.name = FMain.inBtn THEN   


La riga 2 non considera le 6 tabelle, ma i 50 pulsanti contenuti nella tabella attiva in quel momento.
per modificare tutti i 300 pulsanti, divisi in 6 tabelle, ho dovuto ripetere il codice seguente 6 volte.

Codice: gambas [Seleziona]

    FOR EACH objB IN FMain.ScrollView1.Children
' Quando il codice passa a considerare il Button (Children) num. X, allora... 
      INC x
'...gli cambiamo qualche connotato...:
        sql = "SELECT * FROM tconfbtn WHERE id = " & x
        MyRes = modConn.$Conn.Exec(sql)
        IF MyRes.Available THEN
       
          IF FMain.RadioButton1.Value THEN
            TRY fList = MyRes!list1
          ELSE IF FMain.RadioButton2.Value THEN
            TRY fList = MyRes!list2
          ELSE IF FMain.RadioButton3.Value THEN
            TRY fList = MyRes!list3
          ELSE IF FMain.RadioButton4.Value THEN
            TRY fList = MyRes!list4
          ENDIF
   
          IF MyRes!text2 = NULL THEN
            objB.Text = MyRes!text & gb.NewLine & " € " & modZero.PiuZero(fList)
          ELSE
            objB.Text = MyRes!text & gb.NewLine & MyRes!text2 & gb.NewLine & " € " & modZero.PiuZero(fList)
          ENDIF
     
          WITH objB
            .Background = MyRes!bkgnd
            .Foreground = MyRes!fognd
            .Font.Name = MyRes!fntno
            .Font.Bold = MyRes!fntbo
            .Font.Italic = MyRes!fntit
            .Font.Size = MyRes!fntsi
            .Font.StrikeOut = MyRes!fntso
            .Font.Underline = MyRes!fntul
          END WITH
        ELSE
          objB.Text = NULL
        ENDIF
    NEXT 


uno per ogn'una delle 6 ScrollView (riga 1) che contengono i 50 pulsanti.

39
Programmazione (Gambas 2) / Re: Too many constants
« il: 29 Giugno 2012, 10:25:41 »
Ciao; ho dovuto rivoluzionare un pò tutto, ma così è fichissimo!

Questa è la creazione:
Codice: gambas [Seleziona]

PUBLIC SUB Set_Buttons()

 DIM sql AS String
 DIM fList AS Float
 DIM btn AS Button
 DIM i AS Integer

  FOR i = 1 TO 300
  
     IF i < 51 THEN btn = NEW Button(Panel4) AS "myBtn"
     IF i > 50 AND i < 101 THEN btn = NEW Button(Panel5) AS "myBtn"
     IF i > 100 AND i < 151 THEN btn = NEW Button(Panel6) AS "myBtn"
     IF i > 150 AND i < 201 THEN btn = NEW Button(Panel7) AS "myBtn"
     IF i > 200 AND i < 251 THEN btn = NEW Button(Panel8) AS "myBtn"
     IF i > 250 THEN btn = NEW Button(Panel9) AS "myBtn"
    btn.Height = 59
    btn.Width = 98
    btn.Name = i
    
    sql = "SELECT * FROM tconfbtn WHERE id = " & i
    MyRes = modConn.$Conn.Exec(sql)
    IF MyRes.Available THEN
      IF RadioButton1.Value THEN
        TRY fList = MyRes!list1
      ELSE IF RadioButton2.Value THEN
        TRY fList = MyRes!list2
      ELSE IF RadioButton3.Value THEN
        TRY fList = MyRes!list3
      ELSE IF RadioButton4.Value THEN
        TRY fList = MyRes!list4
      ENDIF

      IF MyRes!text2 = NULL THEN
        btn.Text = MyRes!text & gb.NewLine & " € " & modZero.PiuZero(fList)
      ELSE
        btn.Text = MyRes!text & gb.NewLine & MyRes!text2 & gb.NewLine & " € " & modZero.PiuZero(fList)
      ENDIF
  
      WITH btn
        .Background = MyRes!bkgnd
        .Foreground = MyRes!fognd
        .Font.Name = MyRes!fntno
        .Font.Bold = MyRes!fntbo
        .Font.Italic = MyRes!fntit
        .Font.Size = MyRes!fntsi
        .Font.StrikeOut = MyRes!fntso
        .Font.Underline = MyRes!fntul
      END WITH
    ELSE
      btn.Text = NULL
    ENDIF
    
  NEXT
END


E questa è la modifica in corsa:
Codice: gambas [Seleziona]

' Scorriamo tutte e 6 le tabelle
  FOR EACH objA IN FMain.TabStrip1.Children
' Prendiamo in considerazione tutti i Button  
' presenti nell PanelX:
  
    FOR EACH objB IN objA.Children
' Quando il codice passa a considerare il Button (Children) num. X, allora...  
      IF objB.name = FMain.inBtn THEN  
'...gli cambiamo qualche connotato...:
        WITH objB
          .Background = btnExe.Background
          .Foreground = btnExe.Foreground
          .Font.Name = btnExe.Font.Name
          .Font.Bold = fntbo
          .Font.Italic = fntit
          .Font.Size = btnExe.Font.Size + 1
          .Font.StrikeOut = fntso
          .Font.Underline = fntul
        END WITH
        IF TextBox2.Text = NULL THEN
          objB.Text = TextBox1.Text & gb.NewLine & " € " & TxtPrezzo1.Text
        ELSE
          objB.Text = TextBox1.Text & gb.NewLine & TextBox2.Text & gb.NewLine & " € " & TxtPrezzo1.Text
        ENDIF
      ENDIF  
    NEXT  
  NEXT


Per quanto riguarda la distruzione, usando
Codice: gambas [Seleziona]

ScrollView1.Children.Clear 


oppure, come mel mio caso
Codice: gambas [Seleziona]

Panel4.Children.Clear


non và, perchè, in entrambi i casi, dopo Children. accetta solo Count.

GRAZIE!

40
Programmazione (Gambas 2) / Re:Too many constants
« il: 28 Giugno 2012, 22:18:29 »
Citazione
io intendevo più una cosa come nell' esempio allegato

Penso che ci proverò, anche se non sarà facile.

Volendo modificare le caratteristiche o il testo di un solo pulsante una volta creati , come faccio?
Nel caso volessi riconfigurare tutto, come faccio ad eliminarli per ricrearli ?

Grazie.

41
Programmazione (Gambas 2) / Too many constants
« il: 26 Giugno 2012, 00:52:51 »
Ciao; si penso che sia proprio quello il problema: l'ho risolto dividendo le configurazioni in due moduli da 150 pulsanto l'uno.
E' un programma per la gestione del banco di presa e consegna per le tintorie e lavanderie.
I pulasanti sono configurabili per i vari tipi di indumenti e sono divisi in 6 cartelle (TabStrip) da 50 l'una.
Comunque Grazie....

42
Programmazione (Gambas 2) / [Risolto]Too many constants
« il: 26 Giugno 2012, 00:26:02 »
Salve; quando provo ad eseguire il mio programma , mi da quest' errore: "Too many constants alla linea 7146 in ModSet.module"
Questo è la parte del codice incriminata

Codice: [Seleziona]
7125  sql = "SELECT * FROM tconfbtn WHERE id = 213"
7126  MyRes = modConn.$Conn.Exec(sql)
7127  IF MyRes.Available THEN
7128    IF FMain.RadioButton1.Value THEN
7129      TRY fList = MyRes!list1
7130    ELSE IF FMain.RadioButton2.Value THEN
7131      TRY fList = MyRes!list2
7132    ELSE IF FMain.RadioButton3.Value THEN
7133      TRY fList = MyRes!list3
7134    ELSE IF FMain.RadioButton4.Value THEN
7135      TRY fList = MyRes!list4
7136    ENDIF
7137
7138    IF MyRes!text2 = NULL THEN
7139      FMain.Button213.Text = MyRes!text & gb.NewLine & " € " & modZero.PiuZero(fList)
7140    ELSE
7141      FMain.Button213.Text = MyRes!text & gb.NewLine & MyRes!text2 & gb.NewLine & " € " & modZero.PiuZero(fList)
7142    ENDIF
7143
7144    WITH FMain.Button213
7145      .Background = MyRes!bkgnd
7146      .Foreground = MyRes!fognd
7147      .Font.Name = MyRes!fntno
7148      .Font.Bold = MyRes!fntbo
7149      .Font.Italic = MyRes!fntit
7150      .Font.Size = MyRes!fntsi
7151      .Font.StrikeOut = MyRes!fntso
7152      .Font.Underline = MyRes!fntul
7153    END WITH
7154  ENDIF

Questa è la configurazione del 213° pulsante, prima con soli 200 andava bene ora che ne ho aggiunti altri 100 da questo problema.
Queste configurazioni sono divise in 6 "PUBLIC PROCEDURE Set_Tab'numero tavola'()" da 50 pulsanti l'una.
Grazie.

43
Programmazione (Gambas 2) / Re: Criptare e decriptare
« il: 14 Febbraio 2012, 17:14:53 »
Ciao; si sicuramente è come dici, ma a me non serve un alto grado di protezione, deve solo evitare che qualche pseudoscenziato smanettone entri nella configurazione del programma che stò scrivendo.
Poi se capita, quello che sà leggere il codice, allora sono certo che non farà danni se riesce ad entrare nel, molto più semplice, settaggio del mio softwere.
Comunque, penso che seguiro il tuo consiglio di aggiungere un campo nascosto da una particolare sequenza di qualcosa, per poter modificare la chiave.
Però poi come la salvo?  :hard:
Potrei nasconderla in un lungo file di testo, oppure nel database del programma.

Che ne pensate?

44
Programmazione (Gambas 2) / Re: Criptare e decriptare
« il: 13 Febbraio 2012, 13:35:50 »
Salve; siccome girando per internet non ho trovato niente che potesse servirmi, mi sono messo alla tastiera ed è uscito questo:

Codice: [Seleziona]
' Gambas class file
' Classe creata per criptare e decriptare per mezzo di chiave piccole stringhe
' By Claudio Bernardini
' claudio69@infinito.it

PUBLIC FUNCTION Cod(testo AS String, chiave AS String) AS String

  DIM aKey AS NEW Integer[]
  DIM aTxt AS NEW Integer[]
  DIM a, b AS Integer
  DIM iCodice AS Integer
  DIM sCodice AS String
  DIM bCodP AS String
   
  'converte chiave in array di numeri
  FOR a = 1 TO Len(chiave)
    aKey.Add(Asc(Mid$(chiave, a, 1)))
  NEXT
 
  'converte il testo in array di numeri
  FOR a = 1 TO Len(testo)
    aTxt.Add(Asc(Mid$(testo, a, 1)))
  NEXT
 
  'crea codice
  FOR a = 0 TO Len(testo) - 1
    FOR b = 0 TO Len(chiave) - 1
      bCodP = (aTxt[a] XOR aKey[b])
      IF Len(bCodP) < 2 THEN
        sCodice &= "0" & bCodP
      ELSE
        sCodice &= bCodP
      ENDIF
    NEXT
   NEXT 
  RETURN sCodice
END


PUBLIC FUNCTION Decod(codice AS String, chiave AS String) AS String
 
  DIM sCod AS NEW Integer[]
  DIM aKey AS NEW Integer[]
  DIM a, b AS Integer
  DIM sTxt AS String
 
  'converte chiave in array di numeri
  FOR a = 0 TO (Len(codice) / 2) - 1
    b = b + 1
  IF b > Len(chiave) THEN
      b = 1
  END IF
    aKey.Add(Asc(Mid$(chiave, b, 1)))
  NEXT
 
  'riempie array con coppie di valori della chiave
  FOR a = 1 TO Len(codice) STEP 2
    sCod.Add(Mid$(codice, a, 2))
  NEXT
 
  'decodifica codice
  b = 1
  FOR a = 0 TO (Len(codice) / 2) - 1
    DEC b
    IF b = 0 THEN
      sTxt &= Chr$(sCod[a] XOR aKey[a])
      b = Len(chiave)
    ENDIF
  NEXT
  RETURN sTxt
END

Questa funzione serve per criptare e decriptare stringhe per mezzo di una chiave.
La metto quì, magari può servire a qualcuno, oppure qualcuno potrebbe provarla e consigliarmi qualche buona modifica.
Grazie.

45
Programmazione (Gambas 2) / Re: Criptare e decriptare
« il: 10 Febbraio 2012, 23:12:03 »
Salve; ti spiego: ho due campi, ID e Password, quello che contengono devo salvarlo, (ho pensato di criptarli e metterli in un file di testo). Oltre che verificarli ad ogni tentativo di accesso, e questo può essere fatto con quello che mi hai proposto, devo anche ripresentarli leggibili ogni volta che apro la form di configurazione, dove tra gli altri settaggi, ho anche questi due campi.
Grazie.

Pagine: 1 2 [3] 4