Пишу контрол ака грид. Все смогу сделать кроме работы с памятью. Как осуществить хранение данных в памяти? Есть идея использовать двумерный массив DWORD'ов и использовать их как указатели на структуры. Но как реализовать на ассемблере двумерный массив DWORD'ов? Да еще так чтобы можно было добавлять или удалять *колонки* и *строки* из массива?
Пишется простая коллекция - как вектор - каждый элемент: DWORD. Естественно, пишутся функции вставки, удаления, добавления и т.п. для этой структуры. Ну а дальше - просто: первая коллекция - это ряды в Grid. Каждый элемент этой коллекции это адрес на такую же коллекцию, где каждый элемент теперь - это одна ячейка из Grid (для одного ряда). Ну теперь, если надо удалить например столбец под индексом 5, то проходимся по первой коллекции рядов и из каждого ряда удаляем элемент под индексом 5. И далее уже не так сложно. Код (Text): +------+ +------+------+------+-----+------+ | row0 | -> | col0 | col1 | col2 | ... | colN | +------+ +------+------+------+-----+------+ | row1 | -> | col0 | col1 | col2 | ... | colN | +------+ +------+------+------+-----+------+ | row2 | -> | col0 | col1 | col2 | ... | colN | +------+ +------+------+------+-----+------+ | row3 | -> | col0 | col1 | col2 | ... | colN | +------+ +------+------+------+-----+------+ ... +------+ +------+------+------+-----+------+ | rowN | -> | col0 | col1 | col2 | ... | colN | +------+ +------+------+------+-----+------+