Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Dogarik
0 / 0 / 0
Регистрация: 21.04.2015
Сообщений: 21
#1

CheckBox

17.03.2013, 15:05. Просмотров 427. Ответов 0
Метки нет (Все метки)

Доброго всем времени суток.
Столкнулся с такой проблемой. У меня имеются на форме 18 чекбоксов и в зависимости от того, выделены они галочкой или нет, мне надо составить список и внедрить его в шаблон документа Word. Теоретически код у меня правильный (ну по крайней мере косяков я не вижу), практически, он работает, но немного криво...

Delphi
1
2
3
4
5
6
7
8
9
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
 if CheckBox1.Checked
 then DOCM[1]:=CheckBox1.Caption
 else DOCM[1]:='';
 if CheckBox2.Checked
 then DOCM[2]:=CheckBox2.Caption
 else DOCM[2]:='';
 if CheckBox3.Checked
 then DOCM[3]:=CheckBox3.Caption
 else DOCM[3]:='';
 if CheckBox4.Checked
 then DOCM[4]:=CheckBox4.Caption
 else DOCM[4]:='';
 if CheckBox5.Checked
 then DOCM[5]:=CheckBox5.Caption
 else DOCM[5]:='';
 if CheckBox6.Checked
 then DOCM[6]:=CheckBox6.Caption
 else DOCM[6]:='';
 if CheckBox7.Checked
 then DOCM[7]:=CheckBox7.Caption
 else DOCM[7]:='';
 if CheckBox8.Checked
 then DOCM[8]:=CheckBox8.Caption
 else DOCM[8]:='';
 if CheckBox9.Checked
 then DOCM[9]:=CheckBox9.Caption
 else DOCM[9]:='';
 if CheckBox10.Checked
 then DOCM[10]:=CheckBox10.Caption
 else DOCM[10]:='';
 if CheckBox11.Checked
 then DOCM[11]:=CheckBox11.Caption
 else DOCM[11]:='';
 if CheckBox12.Checked
 then DOCM[12]:=CheckBox12.Caption
 else DOCM[12]:='';
 if CheckBox13.Checked
 then DOCM[13]:=CheckBox13.Caption
 else DOCM[13]:='';
 if CheckBox14.Checked
 then DOCM[14]:=CheckBox14.Caption
 else DOCM[14]:='';
 if CheckBox15.Checked
 then DOCM[15]:=CheckBox15.Caption
 else DOCM[15]:='';
 if CheckBox16.Checked
 then DOCM[16]:=CheckBox16.Caption
 else DOCM[16]:='';
 if CheckBox17.Checked
 then DOCM[17]:=CheckBox17.Caption
 else DOCM[17]:='';
 if CheckBox18.Checked
 then DOCM[18]:=CheckBox18.Caption
 else DOCM[18]:='';
DOCM это одномерный массив типа String

В теории, если чекбокс отметчен, то его название должно присвоиться соответствующему элементу массива;

Далее я пытаюсь все пустые записи сдвинуть к концу массива, а те, в которых есть инфа в начало:

Delphi
1
2
3
4
5
6
for n:=1 to 17 do
  if DOCM[n]='' then begin
     a:=DOCM[n];
     DOCM[n]:=DOCM[n+1];
     DOCM[n+1]:=a;
     end;
В теории у меня должен получиться массив, с не пустыми элементами в начале и пустыми в конце.
Далее вставляю все эти не пустые (и пустые) элементы в шаблон Word.

Delphi
1
2
3
4
5
6
7
8
9
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
WordApp.Selection.GoTo(-1,,,'DOC1');
WordApp.Selection.TypeText(DOCM[1]);
WordApp.Selection.GoTo(-1,,,'DOC2');
WordApp.Selection.TypeText(DOCM[2]);
WordApp.Selection.GoTo(-1,,,'DOC3');
WordApp.Selection.TypeText(DOCM[3]);
WordApp.Selection.GoTo(-1,,,'DOC4');
WordApp.Selection.TypeText(DOCM[4]);
WordApp.Selection.GoTo(-1,,,'DOC5');
WordApp.Selection.TypeText(DOCM[5]);
WordApp.Selection.GoTo(-1,,,'DOC6');
WordApp.Selection.TypeText(DOCM[6]);
WordApp.Selection.GoTo(-1,,,'DOC7');
WordApp.Selection.TypeText(DOCM[7]);
WordApp.Selection.GoTo(-1,,,'DOC8');
WordApp.Selection.TypeText(DOCM[8]);
WordApp.Selection.GoTo(-1,,,'DOC9');
WordApp.Selection.TypeText(DOCM[9]);
WordApp.Selection.GoTo(-1,,,'DOC10');
WordApp.Selection.TypeText(DOCM[10]);
WordApp.Selection.GoTo(-1,,,'DOC11');
WordApp.Selection.TypeText(DOCM[11]);
WordApp.Selection.GoTo(-1,,,'DOC12');
WordApp.Selection.TypeText(DOCM[12]);
WordApp.Selection.GoTo(-1,,,'DOC13');
WordApp.Selection.TypeText(DOCM[13]);
WordApp.Selection.GoTo(-1,,,'DOC14');
WordApp.Selection.TypeText(DOCM[14]);
WordApp.Selection.GoTo(-1,,,'DOC15');
WordApp.Selection.TypeText(DOCM[15]);
WordApp.Selection.GoTo(-1,,,'DOC16');
WordApp.Selection.TypeText(DOCM[16]);
WordApp.Selection.GoTo(-1,,,'DOC17');
WordApp.Selection.TypeText(DOCM[17]);
WordApp.Selection.GoTo(-1,,,'DOC18');
WordApp.Selection.TypeText(DOCM[18]);
Но при открытии шаблона, надписи у меня раскиданы по всему документу, хотя в теории должны идти по порядку
Как я понимаю, не происходит замена мест пустых и не пустых значений элементов массива DOCM. А вот почему это не происходит, и где у меня ошибка я понять не могу. Помогите, может кто из вас свежим взглядом увидит ошибку.
В теории в шаблоне список отмеченных документов должен идти по порядку, а не в разброс.
0
Миниатюры
CheckBox   CheckBox  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2013, 15:05
Ответы с готовыми решениями:

Как при нажатии на CheckBox передавать в DbEdit определенное слово или Caption CheckBox'а?
Народ у меня сложилась такая ситуация. Пишу БД. У меня на форме есть 2...

CheckBox
Допустим, имеется следующая процедура Procedure TForm1.makestep; function...

CheckBox
Здрастуйте. Вопрос у меня. Мне нужно заполнить массив с помощю...

CheckBox
Как сделать так, чтобы при нажатии на кнопку(Button) проверялось нажатие всех...

CheckBox's
Есть Edit в который вводится цифры от 1 до 5 есть пять CheckBox'ов и 1 кнопка...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.03.2013, 15:05

CheckBox'ы
Вот моя программа - Тык. Сейчас я реализовал только появление/скрытие кнопки...

CheckBox ...
Здравствуйте! Как можно сделать через Hint и CheckBox открытие окна...

Checkbox
У меня имеется "Nое" колличество чекбоксов, как можно присвоить к ним числа и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru