19.12.2007, 18:21 | #1 |
Участник
|
Растянутые ответы в модуле "Анкеты" Ах 4.0
В модуле анкеты, при запуске анкеты: если ответ слишком длинный, ширина формы растягивается на всю длину ответа, ответ при этом в одну строку.
Каким образом можно изменить форму так, чтобы ответ переносился на несколько строк, а ширина формы оставалась какого-либо фиксированного размера ? |
|
19.12.2007, 18:29 | #2 |
Аманд
|
Цитата:
чтобы ответ переносился на несколько строк
У меня получалось сделать вопрос в три строки С ответами не пробовал, но должно сработать. |
|
20.12.2007, 10:18 | #3 |
Участник
|
Это в win-форме.
Вопрос-то автоматически переносится по строкам. Последний раз редактировалось nmariya; 20.12.2007 в 10:34. |
|
20.12.2007, 10:38 | #4 |
MCTS
|
Получалось на портале или в DAX?
В DAX не работает ни <br> ни \n
__________________
farlander.ru Последний раз редактировалось farlander; 20.12.2007 в 10:41. |
|
20.12.2007, 11:08 | #5 |
Участник
|
В DAX, у меня все вопросы относятся к DAX.
Самое интересное, что если зафиксировать размеры формы, то сам ответы все равно растягиваются и просто не помещаются в форму. Кстати, возникает вопрос, может просто контролы типа CheckBox или RadioButton не могут сами по себе нереноситься на несколько строк??? |
|
20.12.2007, 15:26 | #6 |
Участник
|
В общем, получилось навести красоту, правда пришлось немного попрограммировать.
Контрол CheckBox изначально не поддерживает multiline. Для того, чтобы все таки использовать мультилайн, изменили класс KMQuestionaireAnswerControl_Win32 Метод CheckBoxControl. В Label CheckBox'а ничего не пишем, но ниже добавляем строку с текстом ответа. Array addControl() { FormCheckBoxControl formCheckboxControlLocal; //***** FormStringControl FormStringControlLocal; //------ Array arrayLocal = new Array(Types::Class); for (counter = 1;counter <= array.lastIndex();counter++) { [sequenceNumber, answerText] = array.value(counter); formCheckboxControlLocal = controlGroup.addControl( FormControlType::CheckBox, #QCONTROL); //****** FormStringControlLocal = controlGroup.addControl( FormControlType::String, #QCONTROL); //----- formCheckboxControlLocal.backStyle( 1 ); if (!KMQuestion.MultipleRows) { labelString = answerText; //***** FormStringControlLocal.multiLine(1); FormStringControlLocal.widthMode(1); FormStringControlLocal.autoDeclaration(true); FormStringControlLocal.border(1); FormStringControlLocal.text(answerText); countstr =FormStringControlLocal.getLineCount(); FormStringControlLocal.displayHeight(countstr); FormStringControlLocal.AllowEdit(0); // formCheckboxControlLocal.label(labelString); //----- } |
|
|
За это сообщение автора поблагодарили: farlander (1). |