Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2010, 09:38   #1
pomz
 
Регистрация: 11.01.2010
Сообщений: 8
По умолчанию Проверка поля Edit на наличие текста

Привет всем! Скачал недавно программу "тест", хочу немного переделать его из-за того что в нём не создаются многострочные ответы, думаю выход из положения такой:
В поле где вводится вопрос, я решил что там и буду вводить варианты ответов, а в низу просто будут RadioButton`ы для отмечания варианта ответа. Из глобальных переменных убрал вот эту строчку "ed: array [1..10] of TEdit;", ну короче говоря избавился от "полей ввода вариантов ответа". И запнулся на этой функции:
Функция, используемая для сохранения проделаных изменений в файл, если удалось сохранить - возвращает true

Код:
function IfSave: boolean;
var
  Checked: boolean;
  i,k,save: byte;
begin
   result:=false;
   k:=1;
   save:=0;
   if Form1.Memo1.Text=''     //Проверяем чтобы вопрос не оказался пустым
      then save:=1;
   Checked:=false;
   for i:=1 to anscount do    //Проверяем все ли поля ответов заполнены, и запоминаем правильный ответ, если он выбран как убрать это действие???? Я убирую, и комп виснит!
       begin
          if ed[i].Text=''
             then save:=2;
          if rb[i].Checked
             then begin
                     checked:=true;
                     k:=i;
                  end;
       end;
   if not Checked
      then save:=3;
   if anscount=1        //Проверяем, чтобы на вопрос было как минимум два возможных варианта ответа
      then save:=4;
   case save of
        0: begin     //Если все хорошо, то сохраняем изменения в файл              
if Form1.N17.Enabled=false
                 then SaveQuestion(Test,count,k)          //Если мы в режиме создания теста, то сохраняем вопрос последним
                 else SaveQuestion(Test,CurPos,k);        //Если мы в режиме редактирования, то сохраняем вопрос в текущюю позицию указателя
              inc(count);
              for i:=1 to anscount do                     //Избавляемся от форм ввода вариантов вопроса
                  begin
                     ed[i].Destroy;  - эту строчку я убрал
                     rb[i].Destroy;
                  end;
              anscount:=0;
              result:=true;
           end;
        1: begin
              MessageBox(application.Handle,'И какой же подразумевается ответ на пустой вопрос? Молчание?','Ну, и?',MB_OK+MB_ICONEXCLAMATION);
              result:=false;
           end;
        2: begin
              MessageBox(application.Handle,'А поля с ответами я за тебя буду заполнять?.','Ну, и?',MB_OK+MB_ICONEXCLAMATION);
              result:=false;
           end;
        3: begin
              MessageBox(application.Handle,'Я конечно умный, но на этот вопрос я ответа не знаю, поэтому выбери правильный ответ сам.','Ну, и?',MB_OK+MB_ICONEXCLAMATION);
              result:=false;
           end;
        4: begin
              MessageBox(application.Handle,'На этот вопрос даже ёжик ответит, ты б постарался и придумал хотя бы 2 ответа на свой вопрос.','Ну, и?',MB_OK+MB_ICONEXCLAMATION);
              result:=false;
           end;
   end;
end;
Вложения
Тип файла: zip src.zip (122.7 Кб, 8 просмотров)

Последний раз редактировалось pomz; 22.01.2010 в 11:52.
pomz вне форума Ответить с цитированием
Старый 22.01.2010, 10:02   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Пардон, я чет не понял...
Я твою прогу запустил создал новый тест и заработал 100 баллов.
В чем там затык то?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.01.2010, 11:22   #3
pomz
 
Регистрация: 11.01.2010
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Пардон, я чет не понял...
Я твою прогу запустил создал новый тест и заработал 100 баллов.
В чем там затык то?
Всё правильно, там исходник рабочий.
Я хочу при создании либо при редактировании не записывать в создаваемые Edit`ы ответы, а записывать их в Memo вместе с вопросом, а варианты ответов отмечать на созданных RadioButton.
Значит я убираю из кода строчки где прописывается создание Edit`а, но он ссылается на сообщение 2: "Введите ответ".
Вот как сделать чтобы он не проверял введены ответы или нет, а сразу запоминал правельный ответ если он выбран? Чёта мучаюсь и не выходит, пытался просто тупо убрать кусок кода, после этого комп виснит!
pomz вне форума Ответить с цитированием
Старый 22.01.2010, 11:49   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А-а-а.
Т.е. ты хочешь так: В первой строке Мемо написан вопрос, а в следующих строках варианты ответа на него?
При этом вопрос и варианты ответа обязательно должны укладываться в одну строку.
Верно?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.01.2010, 11:59   #5
pomz
 
Регистрация: 11.01.2010
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А-а-а.
Т.е. ты хочешь так: В первой строке Мемо написан вопрос, а в следующих строках варианты ответа на него?
Да именно так, но в этом сложности нет.

Цитата:
Сообщение от Stilet Посмотреть сообщение
При этом вопрос и варианты ответа обязательно должны укладываться в одну строку.
Верно?
а вот тут нет.
Суть вопроса моего не в этом.
Я убираю с исходника вот эти строки:
щас в следующем сообщении выложу

Вот всё что я там убираю пометил так //

Могу те за помощь пару сотен на телефон кинуть!!!!, но тока еси поможешь!

моя аська: 47385803шесть

У нас принято пользоваться кнопочкой "Правка", дабы не плодить посты подряд, друг за другом.
Читаем правила. Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе...
Модератор
Вложения
Тип файла: rar kiptest.rar (67.5 Кб, 7 просмотров)

Последний раз редактировалось mihali4; 22.01.2010 в 12:50.
pomz вне форума Ответить с цитированием
Старый 22.01.2010, 12:35   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
pomz
Не, дружище, я фрилансом не занимаюсь.
Посмотрел ту программку - достаточно сложная для анализа.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.01.2010, 12:51   #7
pomz
 
Регистрация: 11.01.2010
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Не, дружище, я фрилансом не занимаюсь.
Посмотрел ту программку - достаточно сложная для анализа.
Ну почему же сразу фриланс, это просто будет скромная благодарность за твою помощь. Ну если нет времени то ладно!!!
pomz вне форума Ответить с цитированием
Старый 22.01.2010, 13:01   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

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

На твоем месте я бы написал свою программу полностью. Я не шучу.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с boolean GenniY Общие вопросы Delphi 12 14.12.2009 15:30
Разновидности Boolean k1r1ch Свободное общение 54 14.11.2009 11:42
И опять boolean. dimple Помощь студентам 4 04.05.2008 14:03
Boolean Air Общие вопросы Delphi 2 16.02.2008 17:15
Boolean... ZhekON Общие вопросы Delphi 2 17.06.2007 00:39