Изменить идексацию массива элементов во время выполнения - VB
Формулировка задачи:
Собственно вопрос в теме. Как изменить идекцию массива управления во время выполнения программы? Поясню: в программе динамически создается массив из элементов, например MSFlexGrid, т.е. изначально есть MSFlexGrid1(0), далее с помощью процедуры Load(MSFlexGrid1(k)) можно создать любое количество этих таблиц (процедуры переключения между ними я уже написал), где k-счетчик. Предположим, что пользователь создал массив и с индексами 0,1,2,3,4. Пользователь по нажатию кнопки может удалить любой из массива с помощью процедуры UnLoad(MSFlexGrid1(i)), где i - номер удаляемого элемента из массива. Например, если i=2 у него остается массив с индексами 0,1,3,4. Как переидексировать этот массив, чтобы у него остался массив из 0,1,2,3 (т.е. изменить индексы для элементов 3 и 4 на 2 и 3 соответственно)?
Решение задачи: «Изменить идексацию массива элементов во время выполнения»
textual
Листинг программы
<font color="00AA00">'Форма</font> <font color="blue">Dim</font> mCol <font color="blue">As</font> Collection <font color="blue">Private</font> <font color="blue">Function</font> NewTab() <font color="blue">Dim</font> x <font color="blue">As</font> <font color="blue">Integer</font> <font color="blue">Dim</font> c <font color="blue">As</font> <font color="blue">New</font> <font color="blue">MyClass</font> x = mnuWindow.Count Load mnuWindow(x) mnuWindow(x).Caption = Timer <font color="blue">Set</font> c.Menu = mnuWindow(x) <font color="blue">Set</font> c.CTab = TabStrip1.Tabs.Add(, , Timer) <font color="blue">Set</font> c.Strip = TabStrip1 mCol.Add c <font color="blue">End</font> <font color="blue">Function</font> <font color="blue">Private</font> <font color="blue">Sub</font> mnuWindow_Click(Index <font color="blue">As</font> <font color="blue">Integer</font>) <font color="blue">Dim</font> c <font color="blue">As</font> <font color="blue">MyClass</font> <font color="blue">For</font> <font color="blue">Each</font> c <font color="blue">In</font> mCol <font color="blue">If</font> c.Menu.Index = Index <font color="blue">Then</font> c.CTab.Selected = True <font color="blue">Exit</font> <font color="blue">Sub</font> <font color="blue">End</font> <font color="blue">If</font> <font color="blue">Next</font> <font color="blue">End</font> <font color="blue">Sub</font> <font color="00AA00">'Класс MyClass</font> <font color="blue">Dim</font> <font color="blue">WithEvents</font> lStrip <font color="blue">As</font> TabStrip <font color="blue">Dim</font> lMenu <font color="blue">As</font> Menu <font color="blue">Dim</font> lTab <font color="blue">As</font> ComctlLib.Tab <font color="blue">Public</font> <font color="blue">Property</font> <font color="blue">Set</font> Menu(rhs <font color="blue">As</font> Menu) <font color="blue">Set</font> lMenu = rhs <font color="blue">End</font> <font color="blue">Property</font> <font color="blue">Public</font> <font color="blue">Property</font> <font color="blue">Set</font> CTab(rhs <font color="blue">As</font> ComctlLib.Tab) <font color="blue">Set</font> lTab = rhs <font color="blue">End</font> <font color="blue">Property</font> <font color="blue">Public</font> <font color="blue">Property</font> <font color="blue">Set</font> Strip(rhs <font color="blue">As</font> ComctlLib.TabStrip) <font color="blue">Set</font> lStrip = rhs <font color="blue">End</font> <font color="blue">Property</font> <font color="blue">Private</font> <font color="blue">Sub</font> lStrip_Click() lMenu.Checked = lStrip.SelectedItem.Index = lTab.Index <font color="blue">End</font> <font color="blue">Sub</font>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д