Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    26

    [VB6] Bottoni in serie con proprietà da DB

    Salve a tutti.

    Tempo fa ho creato un programmino per un cliente in VB6 , questo programmino è composto da una sola schermata composta da molteplici bottoni. Questi bottoni sono personalizzabili , ovvero ho realizzato un Form dal quale , tramite l'ID del bottone è possibile cambiarne le proprietà. Funziona tutto bene , è praticamente 4 5 mesi che lo usa , e non ha problemi , quello che mi chiedo è , il codice che io sto utilizzando ovvero questo è uno spaccato
    codice:
     rs.MoveFirst
       If rs("caption") = 0 Then
       bt1.Caption = bt1.Caption
       Else
       bt1.Caption = rs("caption")
       End If
       If rs("colore") = 0 Then
       bt1.BackColor = &H8000000F
       End If
       If rs("colore") = "ROSSO" Then
       bt1.BackColor = &HC0&
       bt1.ForeColor = &HFFFFFF
       End If
        If rs("colore") = "GIALLO" Then
       bt1.BackColor = &HFFFF&
       bt1.ForeColor = &H0&
       End If
        If rs("colore") = "AZZURRO" Then
       bt1.BackColor = &HEBA736
       bt1.ForeColor = &HFFFFFF
       End If
        If rs("colore") = "VERDE" Then
       bt1.BackColor = &HC000&
       bt1.ForeColor = &HFFFFFF
       End If
        If rs("colore") = "ARANCIONE" Then
       bt1.BackColor = &H40C0&
       bt1.ForeColor = &HFFFFFF
       End If
       If rs("immagine") <> 0 Then
       Dim immagine As String
       immagine = rs("immagine")
       Set bt1.Picture = LoadPicture(immagine)
       End If
       bt1.Width = rs("larghezza")
       rs.MoveNext
    Ha una migliore soluzione , c'è un modo migliore per sviluppare questo tipo di sistema? E' un po che giro , programmo in VB6 ma non sono uno dei più esperti , mi hanno mollato questo compito perchè gli altri si sono rifiutati =P. Quello che chiedo è , cosa dovrei studiare per migliorare questo codice ? con quale strumento posso magari evitare di copiarlo 89 volte nel form , visto che i bottoni sono + di 89 ?

    Spero possiate consigliarmi ^^
    grazie in anticipo e buona giornata

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    758

    Re: [VB6] Bottoni in serie con proprietà da DB

    Originariamente inviato da Wanny
    Ha una migliore soluzione , c'è un modo migliore per sviluppare questo tipo di sistema?
    Un primo miglioramento consisterebbe nell'utilizzare una struttura Select Case anziché una sequenza di If. Però, anche immaginando che i gusti cromatici siano soggetti a cambiare nel tempo, si potrebbe anche creare una tabella nel database con una chiave "TipoBottone" e una serie di campi che specificano il ForeColor, il BackColor ed eventuali altre proprietà del pulsante.

    Originariamente inviato da Wanny
    con quale strumento posso magari evitare di copiarlo 89 volte nel form , visto che i bottoni sono + di 89 ?
    Creando una matrice di controlli, cioè 89 bottoni con lo stesso nome ma con proprietà Index diversa.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    26
    Creando una matrice di controlli, cioè 89 bottoni con lo stesso nome ma con proprietà Index diversa.
    ok mi vedo la matrice di controlli. Grazie mille =)

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    26
    ho fatto la mia matrice di controlli , ovvero ho inserito in un progetto di prova 10 bottoni , con lo stesso nome ma con indice diverso e ho scritto questo nel From Load

    codice:
    k = Index
    
    For i = 0 To 10
    k = i
    Command1(k).Caption = "ciao"
    Next i
    ora fa esattamente quello che deve fare, quello di cui mi sono accorto ovviamente , è che se io mettessi come evento click di uno dei bottoni

    codice:
    msgbox " ciao"
    lo stesso effetto viene applicato a tutti i bottoni presenti nella matrice , avendo ovviamente tutti lo stesso nome. C'è un modo per ovviare a questo ?
    Lo scopo è quello di dare una funzione diversa a ogni controllo della matrice , ovvero Command1(index = 0) deve aprire un msgbox , Command2(index = 1) deve aprire un form.

    ho pensato a una cosa così
    codice:
    k = Index
    If k = 0 Then
    
    MsgBox "ciao"
    End If
    è giusto ? questo significa che io devo copiare nella sub di Command1 un if che contolla l'id e che quindi assegna una funzione in base all'id rilevato.

    forse è troppo contorto xD

    Spero di essermi spiegato bene.


    Ciao a tutti e grazie ancora

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.