Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    VB6 ADD IN (Gibra ... lo sapevi!!!)

    Ciao Gibra ,
    sto letteralmente impazzendo per costruire quell'ADDIN che cambia le griglie (poi esandibile a sostituire qualunque controllo ).

    I settaggi delle varie variabili o classi sono tutte completamente diverse e .. niente aiuto dopo il punto .

    Ti spiego come intendevo procedere :

    1) Analizzare i forms alla ricerca del controllo DBGRID
    2) Estrarre i dati (nome campo , larghezza colonna, Dx o SX, ecc ecc)
    3) Copiare una griglia vuota e riempire le colonne con i nuovi dati

    (un po' come si puo' fare tra le colonne delle griglie della stessa famiglia) .

    Ma faccio una fatica nera :
    1 - niente debug immediato (perchè perchèèèè???)
    2 - non si settano i controlli come da codice "normale"

    ho letto ogni più piccola riga dell'unico esempio di VB (TabOrders.vbp) ....


    codice:
      For Each ctl In mcmpCurrentForm.Designer.VBControls
        sTmp = ControlName(ctl)
        If ctl.ClassName = "DBGrid" Then ' ( funziona)
          'Lo inserisce nell'elenco
          lstTabIndex.AddItem ctl.ClassName ' ( funziona)
          'Set MyDbGrid = ctl (non funiona)
           For nrFld = 0 To ctl.Properties!Columns.Count - 1 '(non funziona)
             lstTabIndex.AddItem ctl.Properties!Columns(nrFld).DataField '(non funziona)
           Next
          lstTabIndex.Refresh
          On Error GoTo RefreshListErr
        End If
      Next
    Potremo fare un progetto opensource .. ognuno mette la propria correzione ... cosa ne pensi ???
    Mattia

  2. #2
    allego il file del progetto

    mi bastano solo piccoli piccoli ritocchi per procedere ..
    Come estrarrre i nome delle colonne o dei campi ... insomma come estrarre le proprietà dei controlli.

    Files...
    Mattia

  3. #3

  4. #4
    pork ... che figura ...

    adesso c'è ... Files da scaricare
    Mattia

  5. #5
    Ho scaricato il tuo progetto per il multi language ...
    complimenti Giorgio sei veramente in gamba !!!

    Da questo progetto si capisce moooooolto di più rispetto all'esempio della Microsoft TabOrder.
    Mattia

  6. #6
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Sono di fretta, quindi ti riporto solo il pezzo di codice modificato che trova il numero di colonne nel controllo (2):

    codice:
        For Each ctl In mcmpCurrentForm.Designer.VBControls
            sTmp = ControlName(ctl)
            If ctl.ClassName = "DBGrid" Then
            
                'Lo inserisce nell'elenco
                lstTabIndex.AddItem ctl.ClassName ' (l'unico che funziona)
              
                For i = 1 To ctl.Properties.Count  
                    If ctl.Properties.Item(i).Name = "Columns" Then
                        Set p = ctl.Properties.Item(i)
                        If p.NumIndices > 0 Then
                            Debug.Print "Colonne = " & p.NumIndices + 1
                        End If
                    End If
                    'lstTabIndex.AddItem ctl.Properties!Columns(i).DataField '(non funziona)
                Next
                lstTabIndex.Refresh
                On Error GoTo RefreshListErr
            End If
        Next
    Vedi tu se riesci ad andare avanti... Io devo scappare.


  7. #7
    Ciao Giorgio ,
    sto imparando molto usando il sorgente del tuo progetto multilingua .

    Certo che se si facesse avanti qualcuno come nelle migliori famiglie open source potrebbe diventare un tool veramente interessante .

    Perchè uno potrebbe mettere il codice per convertire le DbGrid , un altro quello per .. ecc ecc

    Fra qualche giorno riposto i files e ... vediamo cosa succede .

    Per ora un grazie per tutte le cose che fai (gratis) per noi del forum , sapendo che non sarai mai ripagato se non con un grazie .

    Grazie
    Mattia

  8. #8
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Grazie delle belle parole.

    Nella fretta ho dimenticato di riportarti la dichiarazione

    codice:
    Dim p As Property
    da inserire prima del ciclo For Each/Next


  9. #9
    L'avevo trovata nel progetto LAngSupport.vbp

    Lo conosci ???


    Mattia
    Mattia

  10. #10
    RISOLTO .........

    Come faccio a settare in una variabile l'oggetto che mi interessa ?
    Riesco ad elencare tutte le proprietà dell'oggetto (DBGRID) :

    codice:
                Select Case VBc.ClassName
                   Case "DBGrid"
                      For Each prop In VBc.Properties
                         'elenca tutte le proprietà
                         Debug.Print prop.Name & " - " & prop.Value & prop.NumIndices
                         if prop.name ="Columns" then
                            'qui non riesco ad estrarre i dati dell'oggetto Columns 
                         end if
                      Next
                   Case Else
                      Debug.Print VBc.ClassName
                End Select
    Ma non riesco ad estrarre i nomi delle colonne , i campi corrispondenti ... settare una variabile

    Ho provato a :
    Dim MyCol as Column
    set Mycol = VBc.Properties("Columns").Collection(1) ' Prima colonna ? Non funge !


    Ma come Mattia ? Non sei capace ? Si fa cosi :

    Dim MyGrid as DbGrid


    Set MyGrid = Vbc.ControlObject

    E adesso puoi estrarre tutte le info che vuoi dalla griglia ...
    Azz.. ma fare tutto da solo dicono che renda ciechi
    Mattia

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 © 2026 vBulletin Solutions, Inc. All rights reserved.