
21.11.2009, 22:02
|
Прохожий
|
|
Регистрация: 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, быть может ещё чегото не хватает? Подскажите пожалуйста.
Ах, да.. эта прога написана для создания файла тестирования, всё отлично но есть один минус - нельзя вставить картинку при создании вопроса. Помогите исправить этот недостаток.
|