Показать сообщение отдельно
  #4  
Старый 21.11.2009, 22:02
SSkif SSkif вне форума
Прохожий
 
Регистрация: 05.11.2009
Сообщения: 6
Репутация: 10
По умолчанию Продолжение

Код:
Востановка данных для уже записанного вопроса
procedure TForm1.PrLastItems(i:byte;Sender: TObject);
begin
  Edt_Question.Text:=decrypt(Memo_Temp.Lines[2+6*(Nom_Question-i)],30000);
  Edt_V1.Text:=decrypt(Memo_Temp.Lines[3+6*(Nom_Question-i)],30000);
  Edt_V2.Text:=decrypt(Memo_Temp.Lines[4+6*(Nom_Question-i)],30000);
  Edt_V3.Text:=decrypt(Memo_Temp.Lines[5+6*(Nom_Question-i)],30000);
  Edt_V4.Text:=decrypt(Memo_Temp.Lines[6+6*(Nom_Question-i)],30000);
  RG_CorrectQ.ItemIndex:=StrToInt(decrypt(Memo_Temp.Lines[7+6*(Nom_Question-i)],30000))-1;
end;

procedure TForm1.Btn_LastClick(Sender: TObject);
begin
  PrSaveMemo(Sender);
  // Востановление последующей инф.
  PrLastItems(2,Sender);
  // Уменьшение порядкового номера вопроса
  dec(Nom_Question);
  Label1.Caption:='Вопрос №'+IntToStr(Nom_Question)+' :';
  // На последнем вопросе блокировать кнопку Btn_Next
  if Nom_Question=1 then
    Btn_Last.Enabled:=False;
  Btn_Next.Enabled:=True;
end;

procedure TForm1.MI_NewTestClick(Sender: TObject);
begin
  MI_NewTest.Enabled:=false;
  MIOpen.Enabled:=False;
  Form2.ShowModal;
end;

// Пункт меню "Сохранить все"
procedure TForm1.MISaveClick(Sender: TObject);
var
  TempFileName: string;
begin
  PrSaveMemo(Sender);
  SaveDialog1.InitialDir:=ExtractFilePath(Application.ExeName);
  if SaveDialog1.Execute then
    begin
    if pos('.tes',SaveDialog1.FileName)>0 then
      TempFileName:=SaveDialog1.FileName
     else
      TempFileName:=SaveDialog1.FileName+'.tes';
    Memo_Temp.Lines.SaveToFile(TempFileName);
    end
   else Memo_Temp.Lines.Clear;
end;

procedure TForm1.MICloseClick(Sender: TObject);
begin
  Close;
end;

procedure TForm1.MICloseAllClick(Sender: TObject);
begin
  MICloseAll.Enabled:=False;
  MISave.Enabled:=False;
  MISaveClick(Sender);
  GBox1.Visible:=False;
  FormCreate(Sender);
  // --- v.1012 ---
  MIOpen.Enabled:=True;
  MI_NewTest.Enabled:=True;
end;

procedure TForm1.MIOpenClick(Sender: TObject);
var
  i,j: byte;
  Temp_String,
  Password_String: string;
  EndFor: boolean;
 /// temp_string:string;
begin
  // Если был открыт файл, то его закрываем.
  if Memo_Temp.Lines.Count>4 then
    MICloseAllClick(Sender)
   else
     begin
       PrNewTest(Sender);
       OpenDialog1.InitialDir:=ExtractFilePath(Application.ExeName);
       if OpenDialog1.Execute then
         begin
           Memo_Temp.Lines.LoadFromFile(OpenDialog1.FileName);

           // --- v.1012 --- Работа с паролем ---
           Temp_String:=decrypt(Memo_Temp.Lines[1], 30000);
           for i:=1 to length(Temp_String) do
              begin
                if ((Temp_String[i]=' ')and not EndFor) then
                 for j:=i+1 to length(Temp_String) do
                    if ((Temp_String[j]=' ')and not EndFor) then
                    begin
                      if i+1=j then
                          Password_String:=''
                       else
                         Password_String:=copy(Temp_String,i+1,j-i-1);
                      EndFor:=true;
                    end;
              end;
              // Алекс - обновлено
           if Password_String<>'' then begin PasswordDlg.Password.Text:=''; PasswordDlg.ShowModal;  end;
           if not (PasswordDlg.Password.Text=Password_String) then
              begin
                Memo_Temp.Lines.Clear;
                abort;
              end;

           // Активицазия тункта "Сохранить все"
           MISave.Enabled:=True;
           // Активицазия тункта "Закрыть все"
           MICloseAll.Enabled:=True;
           GBox1.Visible:=True;
           Lbl_NameTest.Caption:=Memo_Temp.Lines[0];
           Form2.Edt_Kol.Text:=copy(decrypt(Memo_Temp.Lines[1],30000),
            1,pos(' ',decrypt(Memo_Temp.Lines[1],30000))-1);


// Добавил Алекс - здесь раскладываем строку для перепароливания теста
//  и кладем данные в форму 2 - Потом перешифруем строку

  // --- v.0105 --- Время на 1-н вопрос (мин) ---
  i:=pos(':',Temp_String);
  while Temp_String[i]<>' ' do
    begin
      dec(i);
    end;

   form2.Edt_Kol.Text:= copy(Temp_String, 0,
       pos('|',Temp_String)-1);

      /// ShowMessage(form2.Edt_Kol.Text);

         // --- v.0105 --- Кол-во тестируемых вопросов ---
   form2.Edt_KolQuestionTesting.text:=(copy(Temp_String, pos('|',Temp_String)+1,
       pos(' ',Temp_String)-pos('|',Temp_String) -1));

  /// ShowMessage(form2.Edt_KolQuestionTesting.text);


  form2.Edt_TimeMin.text:=(copy(Temp_String,i+1,pos(':',Temp_String)-i-1));

/// ShowMessage( form2.Edt_TimeMin.text);

  // --- v.0105 --- Время на 1-н вопрос (сек) ---
  form2.Edt_TimeSec.text:=(copy(Temp_String,pos(':',Temp_String)+1,length(Temp_String)-pos(':',Temp_String)));

////  ShowMessage( form2.Edt_TimeSec.text);

// Конец добавления




           PrLastItems(1,Sender);
           // --- v.1012 --- Работа с меню ---
           MIOpen.Enabled:=False;
           MI_NewTest.Enabled:=false;
         end
        else Abort;
     end;
end;

procedure TForm1.N2Click(Sender: TObject);
begin
  ShowMessage('Разработчик: ATH;'+#13+#10+
              ' '+#13+#10+
              'Благодарности'+#13+#10+
              ' '+#13+#10+
              '* за разработку блока шифрования и интерфейса:'+#13+#10+
              '     Alex Stankin;'+#13+#10+
              ' '+#13+#10+
              '* за помощь в разработке:'+#13+#10+
              '     @nton,'+#13+#10+
              '     CJ,'+#13+#10+
              '     Par@do][ ;'+#13+#10+
              ' '+#13+#10+
              'http:\\www.helpes.narod.ru'+#13+#10+
              'e-mail: antonatp@mail.ru; helpes@narod.ru');
end;

// Добавлено Алекс
procedure TForm1.Button1Click(Sender: TObject);
begin

PasswordDlg.Password.Text:='';
PasswordDlg.ShowModal;
Memo_Temp.Lines[1]:=(encrypt(Form2.Edt_Kol.Text+'|'+Form2.Edt_KolQuestionTesting.Text+' '+PasswordDlg.Password.Text+' '+Form2.Edt_TimeMin.Text+':'+Form2.Edt_TimeSec.Text,30000));
PasswordDlg.Password.text:='';

end;

procedure TForm1.Image1Click(Sender: TObject);
begin

end;

procedure TForm1.Button2Click(Sender: TObject);
begin

end;

end.
На Form1 я кинул Image и Button, быть может ещё чегото не хватает? Подскажите пожалуйста.
Ах, да.. эта прога написана для создания файла тестирования, всё отлично но есть один минус - нельзя вставить картинку при создании вопроса. Помогите исправить этот недостаток.
Ответить с цитированием