![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#15
|
||||
|
||||
|
Итак:
В архиве 2 файла: CryptoStream.pas и TestObjects.pas. CryptoStream.pas - пример простейшего файлового потока с шифрованием XOR. Работаем абсолютно так же как с обычным TFileStream. В TestObjects.pas - описаны классы для работы с тестом, а именно: Основной класс Тест TTest: Код:
TTest = class
private
...
public
constructor Create; - создание объекта класса
destructor Destroy; override; - удаление объекта класса
procedure SaveToStream(Stream: TStream); - сохранение объекта в поток
procedure LoadFromStream(Stream: TStream); - чтение объекта из потока
function AddQuestion(aCaption: String): Integer; - добавить вопрос с текстовкой Caption. вернет порядковый номер созданного вопроса
procedure DeleteQuestion(Index: Integer); - удалить вопрос с номером Index
property Caption: String; - заголовок теста
property EditPassword: String; - пароль для редактирования (использование произвольное :))
property Ball_Three: Word; - сколько нужно правильных ответов на 3
property Ball_Four: Word; - сколько нужно правильных ответов на 4
property Ball_Five: Word; - сколько нужно правильных ответов на 5
property QuestionsCount: Integer; - количество вопросов в тесте
property Question[Index: Integer]: TQuestion; - тест с номером Index
end;Код:
TQuestion = class
private
...
public
constructor Create(aCaption: String); - это понятно
destructor Destroy; override; - это тоже
procedure Assign(const Value: TQuestion);
procedure SaveToStream(Stream: TStream); - запись в поток
procedure LoadFromStream(Stream: TStream); - чтение из потока
function AddAnswer(aCaption: String; aIsTrue: Boolean = false): Integer;
procedure DeleteAnswer(Index: Integer); - добавить ответ
property Caption: String; - текстовка вопроса
property AnswerCount: Integer; - количество ответов
property Answer[Index: Integer]: TAnswer; - ответ с номером Index
property QuestionType: TQuestionType; - тип вопроса
property Bitmap: TBitmap; - картинка к вопросу
end;Тип "тип вопроса" TQuestionType: Код:
TQuestionType = (qtRadio, qtCheck, qtEditAny, qtEditAll); - тип вопроса (выбор одного, выбор нескольких, ввод любого, ввод всех) Класс Ответ TAnswer: Код:
TAnswer = class
private
...
public
constructor Create(aCaption: String; aIsTrue: Boolean); - тут все прозаино
procedure Assign(const Value: TAnswer);
procedure SaveToStream(Stream: TStream); - запись в поток
procedure LoadFromStream(Stream: TStream); - чтение из потока
property Caption: String; - текст ответа
property IsTrue: Boolean; - ответ является верным
end;Если не разберешься - выложу пример использования. Оба модуля проверены на WinXP, Delphi6. Последний раз редактировалось dr. F.I.N., 12.01.2012 в 17:09. |