- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
begin
if CheckListBox1.checked[2] or CheckListBox1.checked[3]
or CheckListBox2.checked[0] or CheckListBox2.checked[1] or CheckListBox2.checked[2]
or CheckListBox3.checked[1] or CheckListBox3.checked[2]
or CheckListBox5.checked[0] or CheckListBox5.checked[1] or CheckListBox5.checked[2]
then Form2.Memo1.Lines.Add('Генераторы шумовых сигналов');
if CheckListBox1.checked[2] or CheckListBox1.checked[3]
or CheckListBox2.checked[0] or CheckListBox2.checked[1] or CheckListBox2.checked[2]
or CheckListBox3.checked[1] or CheckListBox3.checked[2]
or CheckListBox5.checked[0] or CheckListBox5.checked[1] or CheckListBox5.checked[2]
then Form2.Memo1.Lines.Add('Низкочастотные генераторы сигналов');
if CheckListBox1.checked[2] or CheckListBox1.checked[3]
or CheckListBox2.checked[0] or CheckListBox2.checked[1] or CheckListBox2.checked[2]
or CheckListBox3.checked[1] or CheckListBox3.checked[2]
or CheckListBox5.checked[0] or CheckListBox5.checked[1] or CheckListBox5.checked[2]
then Form2.Memo1.Lines.Add('Усилители мощности');
if CheckListBox1.checked[2] or CheckListBox1.checked[3]
or CheckListBox2.checked[0] or CheckListBox2.checked[1] or CheckListBox2.checked[2]
or CheckListBox3.checked[1] or CheckListBox3.checked[2]
or CheckListBox5.checked[0] or CheckListBox5.checked[1] or CheckListBox5.checked[2]
then Form2.Memo1.Lines.Add('Акустические излучатели');
if CheckListBox1.checked[2] or CheckListBox1.checked[3]
or CheckListBox2.checked[0] or CheckListBox2.checked[1] or CheckListBox2.checked[2]
or CheckListBox3.checked[1] or CheckListBox3.checked[2]
or CheckListBox5.checked[0] or CheckListBox5.checked[1] or CheckListBox5.checked[2]
then Form2.Memo1.Lines.Add('Измерители шума и вибраций (шумомеры)');
if CheckListBox1.checked[0]
or CheckListBox2.checked[0] or CheckListBox2.checked[1] or CheckListBox2.checked[2]
or CheckListBox3.checked[1] or CheckListBox3.checked[2] or CheckListBox3.checked[0]
or CheckListBox5.checked[0] or CheckListBox5.checked[1] or CheckListBox5.checked[2]
then Form2.Memo1.Lines.Add('Селективные микровольтметры, измерительные приемники (анализаторы спектра)');
if CheckListBox1.checked[0] or CheckListBox1.checked[1] or CheckListBox1.checked[2] or CheckListBox1.checked[3]
or CheckListBox2.checked[0] or CheckListBox2.checked[1] or CheckListBox2.checked[2]
or CheckListBox3.checked[1] or CheckListBox3.checked[3]
or CheckListBox5.checked[0] or CheckListBox5.checked[1] or CheckListBox5.checked[2]
then Form2.Memo1.Lines.Add('Селективные нановольтметры');
if CheckListBox1.checked[2] or CheckListBox1.checked[2]
or CheckListBox2.checked[0] or CheckListBox2.checked[1] or CheckListBox2.checked[2]
or CheckListBox3.checked[1] or CheckListBox3.checked[2]
or CheckListBox5.checked[0] or CheckListBox5.checked[1] or CheckListBox5.checked[2]
then Form2.Memo1.Lines.Add('Измерительные микрофоны');
if CheckListBox1.checked[0] or CheckListBox1.checked[1]
or CheckListBox2.checked[0] or CheckListBox2.checked[1] or CheckListBox2.checked[2]
or CheckListBox3.checked[0]
or CheckListBox5.checked[0] or CheckListBox5.checked[1] or CheckListBox5.checked[2]
then Form2.Memo1.Lines.Add('Измерительные антенны');
if CheckListBox1.checked[2] or CheckListBox1.checked[3]
or CheckListBox2.checked[0] or CheckListBox2.checked[1] or CheckListBox2.checked[2]
or CheckListBox3.checked[1] or CheckListBox3.checked[2]
then Form2.Memo1.Lines.Add('Вибродатчики (акселерометры)');
if CheckListBox1.checked[0] or CheckListBox1.checked[1]
or CheckListBox2.checked[0] or CheckListBox2.checked[1] or CheckListBox2.checked[2]
or CheckListBox3.checked[0]
or CheckListBox5.checked[0] or CheckListBox5.checked[1] or CheckListBox5.checked[2]
then Form2.Memo1.Lines.Add('Измерительные пробники');
if CheckListBox1.checked[2] or CheckListBox1.checked[3]
or CheckListBox2.checked[0] or CheckListBox2.checked[1] or CheckListBox2.checked[2]
or CheckListBox3.checked[1] or CheckListBox3.checked[2]
or CheckListBox5.checked[0] or CheckListBox5.checked[1] or CheckListBox5.checked[2]
then Form2.Memo1.Lines.Add('Полосовые октавные фильтры со среднегеометри- ческими частотами 250, 500, 1000, 2000, 4000 Гц');
if CheckListBox1.checked[0] or CheckListBox1.checked[1]
or CheckListBox3.checked[0]
or CheckListBox5.checked[0] or CheckListBox5.checked[1] or CheckListBox5.checked[2]
then Form2.Memo1.Lines.Add('Осциллографы');
{ if Checklistbox6.Checked[0] or CheckListBox3.checked[0]
or CheckListBox4.checked[0]
then Form2.Memo1.Lines.Add('Программные средства формирования и контроля полномочий доступа в AC'); }
<font color="Red"> if CheckListBox2.checked[3] or CheckListBox2.checked[4]or CheckListBox2.checked[5]
or CheckListBox3.checked[0] or CheckListBox4.checked[0]
then Form2.Memo1.Lines.Add('Программные средства контроля целостности программ и программных комплексов');</font>
Вот так живут Америка с Европой.
http://www.delphisources.ru/forum/showthread.php?t=26142
brutushafens 11.05.2014 17:42 # +1
bormand 11.05.2014 18:08 # +2
P.S. И с отключением галочки такая схема не прокатит.
brutushafens 11.05.2014 18:12 # +1
bormand 11.05.2014 18:15 # +2
DbGrid :P
Тут, имхо, надо или массив структурок или вообще базу данных. И когда галочку ставят/снимают - выбирать из них подходящие под критерии записи в список/грид/четам.
Это же, я так понимаю, фильтр для чего-то типа инет-магазина?
bormand 11.05.2014 18:17 # +2
Ну там непонятно - удалять запись из выхлопа или нет. Придется перепроверять какие галки сейчас включены и т.п. А раз уж проверяем - проще сделать как в моем комменте выше.
brutushafens 11.05.2014 18:20 # +1
kipar 11.05.2014 18:18 # +1
На самом деле винда все равно удалит. Так что удалять в FormDestroy нужно только как проявление хорошего стиля, ну и для ReportMemoryLeaksOnShutdown.
bormand 11.05.2014 18:19 # 0
> Так что удалять в FormDestroy нужно только как проявление хорошего стиля
Даже если эту форму оператор открывает 100500 раз в день? :)
Памяти сейчас много, зачем ее освобождать. Да и пару раз в день перезапустить прогу никого не затруднит.
kipar 12.05.2014 08:12 # +1
Возможно есть задачи где нужно именно удалять форму (например если мы генерируем ее на лету), но я сильно сомневаюсь что это тот случай.
bormand 12.05.2014 08:42 # 0
kipar 12.05.2014 10:08 # +1
bormand 12.05.2014 10:52 # +1
Упс :) Ну это походу опечатка, стертор не туда его вписал.
brutushafens 12.05.2014 20:17 # 0
kipar 12.05.2014 20:37 # 0
Потому что если мы даже создаем две формы, удалять мы их сами не будем, поэтому OnDestroy вызовется при завершении приложения, когда винда все соберет.
Вот когда нам нужно много таких форм, какой-нибудь MDI, то да. Ну и FastMM (ReportMemoryLeaksOnShutdown) тоже аргумент.
brutushafens 12.05.2014 21:01 # 0
guest 13.05.2014 18:00 # 0
Утечка - это когда память занята, но никем не используется. В данном случае утечки формально нет - когда приложение открыто то память используется, когда закрыто - память уже не занята, ведь винда все почистила.
Поймите меня правильно - сам я за хороший стиль, за то чтоб удалять все в деструкторе и скажем занулять глобальные переменные.
Но считать это ошибкой не могу, потому что по сути эти действия бесполезны, мы просто приносим наше время в жертву хорошему стилю и удобству отладки\модификации в дальнейшем.
brutushafens 11.05.2014 18:24 # +1
kipar 12.05.2014 08:32 # 0
Я бы сделал как в исходном говнокоде, т.е. одну процедуру которая проходится по всем и заполняет мемо. Разве что с циклами вместо копипасты ну и BeginUpdate чтобы не мигало. Но это если на скорую руку, а по-нормальному да, разделить модель и интерфейс, ну борманд уже написал.
bormand 12.05.2014 10:54 # +1
Один чекбокс может включать много элементов в списке. Один элемент списка может включаться многими чекбоксами. Тут вообще отношение многие ко многим.
kipar 12.05.2014 10:59 # 0
Тогда если элементов не больше 32, можно в objects битовую маску хранить. А если меньше 255 - обернуть (set of TElement) в объект и тоже хранить. Но если их еще больше или их число может меняться
[/madskills] Тогда в tmyclass сделать список включаемых, да.
bormand 12.05.2014 11:08 # 0
kipar 12.05.2014 11:18 # 0
---
А в исходной теме автор вообще пишет
guest 12.05.2014 21:47 # −2
guest 12.05.2014 23:37 # −2
bormand 12.05.2014 11:08 # 0
guest 13.05.2014 21:26 # −2
betking1 27.11.2014 15:51 # 0
qweqweqwe 25.08.2021 10:20 # 0