Неподскажете как избавиться от неприятного "мигания" всего ListView-а при обновлении данных в дной из ячеек раз в 0,2 сек
MainForm.ActiveForm.ListView1.ListItems(Select).SubItems(5) = commands
LockWindowUpdate LV.hWnd
For i = 1 To 100
LV.ListItems.Add , , i
Next i
LockWindowUpdate 0
Set itmAdd = ListView1.ListItems.Add(Text:=Text1.Text)
itmAdd.SubItems(1) = Text2.Text
itmAdd.SubItems(2) = Text3.Text
itmAdd.SubItems(3) = Val(Text2.Text) + Val(Text3.Text)
' И объявляешь структуру
Private Type MyRecord
ID as Long
Name as String
Value1 as Single
Value2 as Single
Value3 as Single
end Type
' и создаешь из нее статические массивы
Private MyRec(100) as MyRecord
' ну, понял?
sub AddData(Index as integer, internalID as long, Name as String, value1 as single, value2 as single, value3 as single)
with myrec(Index)
.ID = internalID
.Name = Name
.Value1 = Value1
.Value2 = Value2
.Value3 = Value3
end with
end sub
sub FillArray
dim i as integer
for i = 0 to 100
adddata(i, i, "Foo" & cstr(i), i*1.1, i*2.2, i*3.3)
next
UpdateView
end sub
sub UpdateView
ListView1.clear
dim i as integer
dim A1 as object
for i = 0 to 100
set A1 = ListView1.Add(myrec(i).Name)
A1.subitems(1) = myrec(i).Value1
A1.subitems(2) = myrec(i).Value2
A1.subitems(3) = myrec(i).Value3
next
end sub
'Вот и все, в дальнейшем работаем с массивом, и после операций над ним, вызываем UpdateView
Сейчас этот форум просматривают: AhrefsBot, SemrushBot и гости: 101