Цитата:
Сообщение от PS11011010
А если сделать так, чтобы при создании формы все данные о элементах образовали непрерывный массив в памяти. То есть, допустим, есть 5 CheckBox и в памяти каждый занимает 10 байт, тогда 5 CheckBox будут занимать 50 ПОСЛЕДОВАТЕЛЬНЫХ байт. После создания формы кидаешь дамп памяти длиной в 50 байт в переменную, а потом просто меняешь значение памяти на значение переменной. Тут все, вроде даже перерисоваться должно на форме сразу (я имею ввиду наличие и отсутствие галочек на CheckBox).
Вы понимаете, о чем я?
Господа, Гуру, убейте меня ржавым носком, если такое невозможно реализовать.
|
Конечно так невозможно сделать. Нет легальных способов сделать так, чтобы 10 нужных CheckBox при создании заняли память "друг за другом". Кроме того в процессе работы объекты резервируют и освобождают дополнительную память. Но даже если бы это возможно было сделать каким-то безумным способом, то простое копирование памяти тоже не даст эффекта, точнее даст скорее всего непредсказуемый результат. Так например свойство "Checked" у CheckBox это именно свойство, а не просто кусочек памяти. Если этому свойству присвоить какое-то значение (например: CheckBox1.Checked:=True), то это вызовет целую последовательность событий (в частности посылку сообщения BM_SETCHECK, которое и приведёт к установке флажка), если же просто сделать запись в тот кусочек памяти где хранится текущее состояние флажка, то это не приведёт к "визуальному" изменению.
Ну вобщем как-то так...