Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Tworzenie nowych rzędów (Rows) w kontrolce DataGrid w trybie Run-Time
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004
Tworzenie nowych rzędów (Rows) w kontrolce DataGrid w trybie Run-Time

Witam

Mam pytanie.

W jaki sposób można dodawać nowe rzędy (Rows) do kontrolki DataGrid (lub FlexGrid) w trybie uruchomieniowych (Run-Time - gdy już odpaliliśmy program) bez korzystania z obiektu ADODB.


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

17-06-2004 11:47
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
darsos




Typ: neutral
Postów: 32
Zarejestrowany: Dec 2003
Nowe rzedy w MSHFlexGrid

Najlepiej jest uzywac MSHFlexGrid albo MSFlexGrid. Wlasciwosc MSHFlexGrid.Rows=[ilosc rzedow] np. MSHFlexGrid.Rows=5 stworzy 5 rzedow.

17-06-2004 13:58
Pokaż profil darsos  Wyślij email do darsos   
karolinavb




Typ: neutral
Postów: 468
Zarejestrowany: Jan 2003

Przykładowe wypełnienie:

Private Sub AddRowsHGrid()
Dim c As Long
Dim r As Long
Dim Rows As Long
Dim Cols As Long
Cols = 4
Rows = 1
With MSFlexGridAddRows
.Rows = 2
    .FixedRows = 1
    .FixedCols = 0
    .Rows = Rows
    .Cols = Cols
    For c = 0 To Cols - 1
        '''' nagłówki przykładowe wypełnienie
        .TextMatrix(0, c) = "pole" & CStr(c)
    Next c
    ''''  wartości dla rzędów przykładowe.
    r = 1
  For r = 1 To 10
        .Rows = .Rows + 1
        For c = 0 To Cols - 1
            .TextMatrix(r, c) = "Wiersz=" & CStr(r) & " Kolumna=" & CStr(c)
            '''' dopasowanie szerokości
            If .ColWidth(c) < TextWidth(.TextMatrix(r, c)) Then
                .ColWidth(c) = TextWidth(.TextMatrix(r, c))
            End If
        Next c
    Next
    End With
End Sub


_____________________________________________
Karolina

17-06-2004 14:33
Pokaż profil karolinavb  Wyślij email do karolinavb   
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Dzięki za odpowiedź ale nie wiem jak wpisywać coś do komórek w trybie RunTime i jak opisywać Rzędy

Chodzi mi o to że chciałem dane zawarte w FlexGrid lub jakiejś innej przekopiować do zmiennej Array(x,y) tylko trzeba je najpierw wpisać do tabelki (FlexGrid)

Co radzicie

Z Góry dzięki


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

17-06-2004 14:49
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
karolinavb




Typ: neutral
Postów: 468
Zarejestrowany: Jan 2003

Poniższy fragmentz poprzednio przysłanego przykładu:

...
For r = 1 To 10
        .Rows = .Rows + 1
        For c = 0 To Cols - 1
            .TextMatrix(r, c) = "Wiersz=" & CStr(r) & " Kolumna=" & CStr(c)
              End If
        Next c
Next

wpisuje wartości do kontrolki MSFlexGrid  (hierarchical też tak samo)

1.  .Rows = .Rows + 1 zwiększa liczbę rzędów (wierszy) o 1
2.  .TextMatrix(r, c) = "Wiersz=" & CStr(r) & " Kolumna=" & CStr(c) , do wiersza r, kolumny c wpisuje wartość
"Wiersz=" & CStr(r) & " Kolumna=" & CStr(c), może być np "Ala"

3. Chcąc przekopiować dane z kontrolki MSFlexGrid do tablicy wystarczy ustalić rozmiar tablicy  zgodny liczbą kolumn i wierszy kontrolki , należy przy tym pamiętać o ustawieniach właściwości FixedRows oraz  FixedCols kontrolki i jeśli np w poprzednio wysłanym przykładzie
.FixedRows=1
.FixedCols=0
to dane faktycznie rozpoczynją się od wiersza 1, ale od 0-wej kolumny zapis do tablicy mógłby przebiegać tak


With MSFlexGridAddRows
  ReDim MojaTablica(0 To .Cols - 1, 1 To .Rows - 1)
  For r = 1 To .Rows - 1
    For c = 0 To .Cols - 1
        MojaTablica(c, r) = .TextMatrix(r, c)
    Next c
  Next r
End with


_____________________________________________
Karolina

17-06-2004 16:36
Pokaż profil karolinavb  Wyślij email do karolinavb   
Wszystkich odpowiedzi: 4 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1