AndVGri Цитата: Сиречь о Вашем коде. Сравнение ячеек на листе - не лишняя сущность (скорость только маловата будет)?
Нет. Не лишняя. А, наоборот даже, уже существующая. Изначально данные в строке хранились, в строку же возвращались. Поэтому использование строки для промежуточного хранения вполне естественно, не противоречит общей идеологии и не надстраивает уже имеющуюся конструкцию объектом уникальной природы.
И даже, если бы лишняя - это что, делает применение класса более обоснованным? Я не гордый, второй раз спрошу - какой практический-то смысл этой конструкции? Может я чего-то и не углядел...
Цитата: Можно и массивами обойтись - если религия не позволяет. Приведённый мной код - пример, требующий конечно детализации, только ТУ автором не заявлено.
Причем тут религия? Позволяет, не позволяет... Не надо передергивать - мое решение через служебную строку возникло до твоего класса, и до засветки примера. И лишь потом я предложил дополнительный массив, забыв про строку. И не надо себе льстить - отнюдь не в противовес классу (лишь бы что-то другое), а исключительно из - см. абзац выше, заменив понятие "строка" на "массив".
И что значит
обойтись? Массивами я не
обходился - решение с ними возникло позже, - после знакомства с кодом, алгоритмом и квалификацией автора. А до знакомства, будучи еще не в курсе, я предложил вариант, основанный на механизмах, которые, теоретически, должны были бы уже быть реализованы. Применительно к массивам, кстати, это тоже справедливо.
И хочу напомнить, что
на тот момент и у меня не было ни ТЗ, ни образца проекта. И хоть я уже отказался от него, решение через строку, кстати, сразу заработало. А сколько пришлось бы класс с коллекцией встраивать в проект, а?
Цитата: А что есть проблема с недобавлением в коллекцию, например по именам?
Я что-то не пойму, что это я распинаюсь-оправдываюсь изо всех сил? Оттянусь, пожалуй, малехо :) Сам [more=напросился...]
Цитата: А что есть проблема с недобавлением в коллекцию, например по именам?
А что нету? Вначале разберись с типами контролов и уточни свою идею и код под них. Сразу к именам :)
Я, кстати, в своем посте заметил, что
"не принято во внимание использование нескольких типов контролов" - осталось бэз ответа...
Там же я, кроме сентенции о сущностях, еще задал вопрос:
"Какой практический-то смысл этой конструкции?" - тоже бэз ответа...
Нет проблем - так и говори. Есть - опиши. Да и начинать лучше с ответа на заданные вопросы. А то выбрал для поста самое удобное (больное?) для себя.
Бзв,
сиречь ==
то есть, иначе/точнее говоря, (а) именно, то есть, то бишь, словом. С рус.яз. проблемы?
К чему все эти тролло-вопросики? Религия... проблемы... В лучшем стиле ведем диалог :)
В _такой_ манере будем общаться, да? Я, конечно, могу... Но не с руки мне - догадайся с двух раз, кто вперед к бану прибежит, 621@2005 или 45@2011?
Ну да ладно... Что лаяться из-за этого? В конечном итоге всегда одно из решений будет лучше другого. Если не абсолютно, но в каком-то разрезе - определенно.
Если так, то - вернемся к нашим баранам :)
[/more]
Итак (сиречь :), если ты не видишь проблем с исключением некоторых контролов из проверки по имени, значит не видишь их и в передаче значений как в контролы, так и обратно.
Имена контролов ужЕ используются минимум в двух местах в коде. Ты предлагаешь еще и третий раз это сделать (см. про "не плодите..."). А потом по всему коду сбиться с ног, искать в случае изменений? Чую, щаз речь зайдет про эффективные методы поиска-замены в редакторе и навыки использования регэкспов :)
Я позже хотел обратить внимание
kandi на эту проблему, чтобы не сбиваться с курса. Придется сделать сейчас.
Применительно к примеру, я бы создал служебную таблицу соответствия полей контролам. Что-то типа:
Cell_Column, Control_Name, Control_Type, Check_Exclude_Flag
еще какую-нибудь хрень можно в нее загнать...
Потом занес бы соответствующий индекс в св-ва
каждого контрола. Например в св-во .Tag. И/или к имени можно добавить суффикс/префикс. Вобщем, место есть для фантазии.
Далее, при загрузке формы проверял бы
все контролы с .Tag <> 0 на соответствие .Type и .Name данным в таблице соответствия. Тогда любые несинхронизированные изменения в структуре таблицы, формы или в коде сразу вылезут. Далее этот индекс можно использовать в циклах загрузки данных в форму и выгрузки обратно. Тем самым окультурим и разгрузим процедуры LoadRecord() и PreSaveRecord(). Да и защита от дурака некая появится на этом скользком участке.