Показать сообщение отдельно
  #9  
Старый 22.07.2012, 14:51
MiraLaklamon MiraLaklamon вне форума
Новичок
 
Регистрация: 07.06.2012
Сообщения: 59
Версия Delphi: 6, 7
Репутация: 10
По умолчанию

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