Грид - реализация (проблема в памяти)

Тема в разделе "WASM.BEGINNERS", создана пользователем OSMan, 21 мар 2008.

  1. OSMan

    OSMan New Member

    Публикаций:
    0
    Регистрация:
    18 авг 2007
    Сообщения:
    23
    Пишу контрол ака грид. Все смогу сделать кроме работы с памятью. Как осуществить хранение данных в памяти? Есть идея использовать двумерный массив DWORD'ов и использовать их как указатели на структуры. Но как реализовать на ассемблере двумерный массив DWORD'ов? Да еще так чтобы можно было добавлять или удалять *колонки* и *строки* из массива?
     
  2. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    Пишется простая коллекция - как вектор - каждый элемент: DWORD. Естественно, пишутся функции вставки, удаления, добавления и т.п. для этой структуры. Ну а дальше - просто: первая коллекция - это ряды в Grid. Каждый элемент этой коллекции это адрес на такую же коллекцию, где каждый элемент теперь - это одна ячейка из Grid (для одного ряда). Ну теперь, если надо удалить например столбец под индексом 5, то проходимся по первой коллекции рядов и из каждого ряда удаляем элемент под индексом 5. И далее уже не так сложно.
    Код (Text):
    1. +------+    +------+------+------+-----+------+
    2. | row0 | -> | col0 | col1 | col2 | ... | colN |
    3. +------+    +------+------+------+-----+------+
    4. | row1 | -> | col0 | col1 | col2 | ... | colN |
    5. +------+    +------+------+------+-----+------+
    6. | row2 | -> | col0 | col1 | col2 | ... | colN |
    7. +------+    +------+------+------+-----+------+
    8. | row3 | -> | col0 | col1 | col2 | ... | colN |
    9. +------+    +------+------+------+-----+------+
    10.  ...
    11. +------+    +------+------+------+-----+------+
    12. | rowN | -> | col0 | col1 | col2 | ... | colN |
    13. +------+    +------+------+------+-----+------+