Newsgroup: it.comp.lang.visual-basic
Titolo: [VB6] - Creare oggetto FlexGrid da codice

Salve a tutti,
vorrei creare un oggetto MSFlexGrid da codice.
Ho fatto un pò di ricerche ed ho trovato questo
codice per la creazione di label:
Dim ctrl as control
set ctrl = Me.controls.add("VB.label", "label")
with ctrl
    .autosize = true
    .caption = "Label1"
    .visible = true
end with
Quello che vorrei creare è però una MSFlexGrid,
ma non riesco a trovare il nome che devo dichiarare
nella clausola del Set al posto di VB.Label.
Inoltre vorrei sapere dove si può trovare un elenco dei
nomi di tutti i comandi.
Grazie
WS 

 nella clausola del Set al posto di VB.Label.
Dim ctrl As Control
Set ctrl = Me.Controls.Add("MSFlexGridLib.MSFlexGrid", "MsFlexGrid1")
With ctrl
    .Visible = True
End With
Ma rispetto alla label ne devi avere almeno nella form.
Per vedere come si chiama, io apro un file .frm con blocco note che ha
quell'oggetto e vedo come si chiama es.:
   Begin MSFlexGridLib.MSFlexGrid Grid1 

 nomi di tutti i comandi.
Puoi aggiungere il riferimento/componente al progetto e da F2 trovi il nome.
Ciao 


Perfetto, avevo già provato a guardare il visualizzatore di oggetti, adesso
ho capito che sbagliavo la sintassi poichè non inserivo il nome dell'insieme
prima del comando.


Un altra questione !!
Dopo aver creato diversi controlli FlexGrid con questo codice
--------------------------------------------
For i = 1 To 8
        NomeFlx = Flx
        Set ctrl = Me.Controls.Add("MSFlexGridLib.msflexgrid", "flexGrid" & 
i)
        With ctrl
            .Width = 2900
            .Height = 4095
            If x < 12121 Then
                .Move x, 480
            Else
                .Move x - 15000, 5160
            End If
            .Visible = True
            .FixedCols = 0
            .Cols = 4
              x = x + 3000
        End With
    Next i
--------------------------------
di conseguenza mi ritrovo a video una sierie di griglie chiamate
flexGrid1
flexGrid2
flexGrid3
flexGrid4
flexGrid5
flexGrid6
flexGrid7
flexGrid8
e mi sono reso conto che non riesco a popolarle con i dati.
Ho per esempio una lista:
AGENTE  CLIENTE  FATTURATO
quando cambia il nome dell'agente voglio cambiare Griglia
ma non sò come fare riferimento alle varie griglie.
Avrei pensato a creare le flexGrid tipo Array ma non so come
fare da codice. Mi sapete indicare come fare?
Grazie
WS

 fare da codice. Mi sapete indicare come fare?
Secondo me stai facendo un casino per niente.
Ma perchè non tieni una sola griglia e la riempi con i dati giusti di volta 
in volta?
Ciao 

 in volta?
Infatti, trall'altro per l'utente vedersi in una maschera una volta 1
griglia, una volta 3 griglia, una volte 8 griglie; č quanto di piů
disorientante si possa fare.
Se gli servono 8 griglie (ma dubito), ne metterei 8 in progettazione.
Altrimenti quando cambia AGENTE ripopola la griglia con i dati relativi.
Anche perchč se un'azienda ha 50 Agenti? Non č molto comodo fare 50 griglie
:)


Vorrei poter vedere contemporaneamente a video i risualti di tutti.

 Vorrei poter vedere contemporaneamente a video i risualti di tutti.
Allora cambia la griglia con una colonna agente, e da lě per ogni agente
vedono i dati.
Il fatto č che l'utente guarda una griglia alla volta cmq :)


Forse ho capito, a te serve aggiungere al progetto il componente Microsoft 
Repeater Control.
Sinceramente mai usato, ma se il tutto arriva da un DB con quello dovresti 
poter mettere i controlli che verranno fuori per ogni record e lui si 
occuperà della moltiplicazione.
Altrimenti fai prima a mettere una griglia con Index = 0, poi per ogni 
record successivo fai una
Load DataGrid(i)
DataGrid(i).Visible = True
DataGrid(i). Top = DataGrid(i - 1).Top + DataGrid(i - 1).Height
Ciao 


E' questo quello che stavo cercando come fare, ma non sapevo come.
Grazie
WS