Показать сообщение отдельно
  #7  
Старый 29.12.2013, 20:04
Аватар для ___toha___
___toha___ ___toha___ вне форума
Прохожий
 
Регистрация: 18.12.2012
Адрес: Сасово
Сообщения: 23
Версия Delphi: 7
Репутация: 10
По умолчанию

Спасибо за ответ) Разобрался) Информация в предпоследнем посте)

Цитата:
Сообщение от Bargest
Судя по названиям переменных и использованию чекбоксов - это тест.
Поэтому хоть убей, не пойму - зачем тут делать строку.
Приведенный код вроде нормальный. Может ошибка где-то еще.


Сам не знаю! Я уже второй день сам мучаю голову.. Может что с компилятором.. Но не работал он, не работал.. Пробовал на других проектах, на новых, такая же фигня была.. Сделал через переменную - без ошибок)

С этими массивами одни проблемы.. Вот опять же.. Продолжаю делать.. Опять ошибка в массивах.. Сначала пишет одно, затем другое.. Зависимости ни как не пойму..

Может кто поймет, в чем ошибка..
Я делаю что-то типа тестов. Многое я уже сделал, а тут что-то застрял хорошенько. Расскажу вкратце..
Есть TreeView.. Оно здесь работает как ListBox, просто красивее
Ну так вот.. В каждой строке есть как бы название вопроса. При нажатии на ячейку с вопросом переменной Number дается значение выделенной ячейки.
Далее открывается панель с 6 чекбоксами. При нажатии на каждый из нах происходит следующее:

Код:
Ans[Number] := Otvet2 + #13#10 + TextQ.Lines.Strings[7];

Где Otvet2 - это функция:

Код:
If Test.Ans11.Checked = True Then
s := s + '1';
If Test.Ans21.Checked = True Then
s := s + '2';
If Test.Ans31.Checked = True Then
s := s + '3';
If Test.Ans41.Checked = True Then
s := s + '4';
If Test.Ans51.Checked = True Then
s := s + '5';
If Test.Ans61.Checked = True Then
s := s + '6';
result := s;

То есть элементу массива, с номером выделенной строки, дается строка с выделенными чекбоксами.
При нажатии на другой элемент TreeView произойдет все точно так же, только Number будет другой, а следовательно, значение дастся уже другому элементу массива.

При открытии вопроса, то есть при нажатии на элемент TreeView произойдет очистка чек боксов, то есть все Checked будут равны False, а затем код:
Код:
s := Copy(Ans[Number], 1, Pos(#13, Ans[Number]) -1);

  for i := 1 to Length(s) do
    begin
      case s[i] of
        '1': Test.Ans11.Checked := True;
        '2': Test.Ans21.Checked := True;
        '3': Test.Ans31.Checked := True;
        '4': Test.Ans41.Checked := True;
        '5': Test.Ans51.Checked := True;
        '6': Test.Ans61.Checked := True;
      end;
    end;

Вроде как бы все нормально должно работать. Но почему-то все время разные чекбоксы выделяет, то вообще не выделяет, то через раз.. Код на самом деле в разы больше, но, вроде, что касается этого я изъявил..
Ответить с цитированием