R2->Checked=false;
R3->Checked=false;
R4->Checked=false;
R5->Checked=false;
R6->Checked=false;
R7->Checked=false;
R8->Checked=false;
R9->Checked=false;
R10->Checked=false;
R11->Checked=false;
R12->Checked=false;
как можно сократить такой код
Воспользоваться TCheckListBox.
Цитата:
Воспользоваться TCheckListBox.
спасибо, попробую. а как есчё можно?
А зачем это делать? Сильно процессор грузит?
Цитата:
А зачем это делать? Сильно процессор грузит?
да нет. просто хотел расширить кругозор, и уменьшить код программы.
Код:
R2->Checked=false;
R3->Checked=false;
R4->Checked=false;
R5->Checked=false;
R6->Checked=false;
R7->Checked=false;
R8->Checked=false;
R9->Checked=false;
R10->Checked=false;
R11->Checked=false;
R12->Checked=false;
R3->Checked=false;
R4->Checked=false;
R5->Checked=false;
R6->Checked=false;
R7->Checked=false;
R8->Checked=false;
R9->Checked=false;
R10->Checked=false;
R11->Checked=false;
R12->Checked=false;
Кидаешь все эти чекбоксы, скажем, на панельку...
Код:
TCheckBox *lc_box;
for(int i = Panel1->ComponentCount - 1; i >= 0; --i)
if((lc_box = dynamic_cast<TCheckBox*>(Panel1->Components)) != NULL)
lc_box->Checked = false;
for(int i = Panel1->ComponentCount - 1; i >= 0; --i)
if((lc_box = dynamic_cast<TCheckBox*>(Panel1->Components)) != NULL)
lc_box->Checked = false;
Если надо снять пометки по какому-то более хитрому критерию, присвой какие-нибудь нужные значения свойству Tag этих чекбоксов и в вышеприведённом цикле проверяй оное свойство на соответствие критерию.
на самом деле твой способ оптимален по скорости. Убери его в хидер если глаза мозолит...
Задумываться над некрасиво написанными реализациями - основа профессионального роста. А одинаковых команд подряд должно быть две, максимум три.
Полностью согласен.
[QUOTE=Freeman]А одинаковых команд подряд должно быть две, максимум три.[/QUOTE]
А мне кажется три с половиной, максимум четыре...=)
Код в первую очередь должен быть легко читаем, пришел к этому сам путем набивания шишек...удивился когда прочел такие же выводы в "умных" книгах...
Цитата:
Убери его в хидер если глаза мозолит...
а что значит хидер?
помещаешь длинный код в отдельный файл:
mylongcode.h
а потом в программе вставляешь его в любом месте сколько угодно раз:
void init_parameters() {
#include "mylongcode.h"
}
Svyatozar спасибо. попробую
Код:
R2->Checked=false;
R3->Checked=false;
R4->Checked=false;
R5->Checked=false;
R6->Checked=false;
R7->Checked=false;
R8->Checked=false;
R9->Checked=false;
R10->Checked=false;
R11->Checked=false;
R12->Checked=false;
R3->Checked=false;
R4->Checked=false;
R5->Checked=false;
R6->Checked=false;
R7->Checked=false;
R8->Checked=false;
R9->Checked=false;
R10->Checked=false;
R11->Checked=false;
R12->Checked=false;
Сделай массив классов R[1],R[2]... и бегайпо циклу:) :) :)
Все вообще в одну строчку превратится
это CheсckBox
mylongcode.h
а потом в программе вставляешь его в любом месте сколько угодно раз:
void init_parameters() {
#include "mylongcode.h"
}[/QUOTE]
Но никогда никогда так не делай.
Цитата:
Но никогда никогда так не делай.
почему?
Выглядит стремно... :)
Дело в том, что ГРАМОТНОЕ дробление упрощает написание, особенно коллективное. Но в конечном продукте, чем меньше такого дробления - тем лучше. Нужен выбор...;)
mylongcode.h
а потом в программе вставляешь его в любом месте сколько угодно раз:
void init_parameters() {
#include "mylongcode.h"
}[/QUOTE]
Если уж так не хочется прибегать к описанному мной цикул, не лучше ли тогда вынести эту кучу одинаковых строк в отдельную функцию, а последнюю -- в отдельный подуль? Имхо, будет грамотнее, чем включать заголовок посреди кода.