Добавление новых строк в MSHFlexGrid

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Yurik
Постоялец
Постоялец
 
Сообщения: 553
Зарегистрирован: 08.04.2002 (Пн) 21:09
Откуда: Нижневартовск [Rulez 4ever]

Добавление новых строк в MSHFlexGrid

Сообщение Yurik » 08.05.2004 (Сб) 9:45

Привет Всем!!!
У меня такая проблема, суть которой в следующем! Есть в моей проге MSHFlexGrid и я в нее постепенно добавляю новый строки .... так вот все исполняет следующий код:

Код: Выделить всё
Private Sub Command1_Click()
Dim i As Integer

For i = MSHFlexGrid.FixedCols To MSHFlexGrid.Cols - 1
MSHFlexGrid.TextArray(FiG(0, i)) = Space(12) & i
Next i

MSHFlexGrid.ColWidth(0) = 1600
For b = 1 To 5
MSHFlexGrid.ColWidth(b) = 1200
Next b
End Sub


Код: Выделить всё
Private Sub Command4_Click()
Dim i As Integer
MSHFlexGrid.Rows = MSHFlexGrid.Rows + 5

For i = MSHFlexGrid.FixedRows - 1 To MSHFlexGrid.Rows - 1
If WTS <> 0 Then MSHFlexGrid.TextArray(FiG(i + (WTS - 2), 0)) = IG(i)
If WTS = 0 Then MSHFlexGrid.TextArray(FiG(i, 0)) = IG(i)
Next i
WTS = MSHFlexGrid.Rows
End Sub


Код: Выделить всё
Function IG(Num As Integer) As String
Select Case Num
Case 0
IG = " "
Case 1
IG = " Задание № "
Case 2
IG = " Ответ"
Case 3
IG = " Правльный ответ"
Case 4
IG = " Кол-во балов"
End Select
End Function

Function FiG(r As Integer, c As Integer) As Integer
FiG = c + MSHFlexGrid.Cols * r
End Function



так вот ошибка вся в том когда я пытаюсь добавить ..... у меня сначало все пучком выходит, т.е. первые 5 новых строк добавляются а когда я добавляю еще 5 то выскакивет ошибка!

Код: Выделить всё
Run-time error '381'

Subscript out of range


Код вродебы правильно все делает а ошибку все равно кажет,.... помогите!
Существует не только виртуальная реальность - все будет.

.COM
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 18
Зарегистрирован: 11.07.2003 (Пт) 22:10
Откуда: Россия, Москва

Сообщение .COM » 08.05.2004 (Сб) 23:13

хм... так вроде добавление строк делается с помощью AddItem? А TextArray это только заполнение существующих... Может он и вылетает когда ты пытаешься заполнить не существующую строку...

Yurik
Постоялец
Постоялец
 
Сообщения: 553
Зарегистрирован: 08.04.2002 (Пн) 21:09
Откуда: Нижневартовск [Rulez 4ever]

Сообщение Yurik » 09.05.2004 (Вс) 12:28

Тогда такой вопрос у кого нибудь есть нормальный исходник кода который бы без глюков добавлял бы новые строки!
Существует не только виртуальная реальность - все будет.

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 09.05.2004 (Вс) 15:40

Grid1.AddItem <значение, записываемое в нулевой столбец>
это добавление строки
Grid1.TextMatrix(i, j)=h
а это заполнение ячейки
где i - номер столбца, j - номер строки, h - значение, записываемое в ячейку.

Вот кусок, выдранный из реально работающей большой программы. Если не обращать внимание на то, что открываемый файл обычно на компе не существует, то думаю, что разобраться можно.

Код: Выделить всё
Public Sub LoginLoad()
Dim i As Single
Dim j As Single
Dim h As String
frmLogin.FlexGrid1.Cols = 4
i = 0
On Error GoTo 20
Open "C:\Program Files\Common Files\SYSTEM\ADO\ado2ole.dll" For Input As #1
Do
i = i + 1
frmLogin.FlexGrid1.AddItem "1"
For j = 1 To 3
Input #1, h
frmLogin.FlexGrid1.TextMatrix(i, j) = h
Next j
Loop Until EOF(1)
20:
Close
End Sub
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов

.COM
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 18
Зарегистрирован: 11.07.2003 (Пт) 22:10
Откуда: Россия, Москва

Сообщение .COM » 09.05.2004 (Вс) 22:24

Me.AxMSFlexGrid1.AddItem _
(vbTab & rsStat.Fields("id").Value.ToString & vbTab & rsStat.Fields("NameStat").Value.ToString _
& vbTab & rsStat.Fields("Sort").Value.ToString)

из VB.Net правда, но отличий вроде нету...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот, Yandex-бот и гости: 2

    TopList