5. Расположите компоненты на форме по образцу:
6. Создайте следующие подпрограммы шифрования строк (после implementation):
{ШифрАтбаш. Симметричный}
function catbash(s:string):string;
var i:integer; c,d:char;rez:string;
begin
rez:='';
for i:=1 to length(s) do
begin
c:=s[i];
d:=chr(255-ord(c));
rez:=rez+d;
end;
catbash:=rez;
end;
{ШифрЦезаря. Шифрование}
function cEcezar(s:string; key:byte):string;
var i:integer; c,d:char;rez:string;
begin
rez:='';
for i:=1 to length(s) do
begin
c:=s[i];
d:=chr((ord(c)+ key)mod 255);
rez:=rez+d;
end;
cEcezar:=rez;
end;
{ШифрЦезаря. Расшифрование}
function cDcezar(s:string;key:byte):string;
var i:integer; c,d:char;rez:string;
begin
rez:='';
for i:=1 to length(s) do
begin
c:=s[i];
d:=chr((ord(c)- key)mod 255);
rez:=rez+d;
end;
cDcezar:=rez;
end;
7. Двойным щелчком вызовите редактор компонента Crypto (TActionList) и создайте следующие действия:
Для переименования в соответствии с образцом измените свойство Name у каждого действия.8. Для каждого из действий опишите подпрограммы:
procedure TForm1.AtbashExecute(Sender: TObject);
var i:integer;
begin
for i:=0 to memo1.Lines.Count do
memo2.Lines.Add(catbash(memo1.Lines[i]));
end;
procedure TForm1.ECezarExecute(Sender: TObject);
var i:integer;key:byte;
begin
key:=strtoint(inputbox('ШифрЦезаря','Введитезначениеключа - толькоцелоечисло','3'));
for i:=0 to memo1.Lines.Count do
memo2.Lines.Add(cEcezar(memo1.Lines[i],key));
end;
procedure TForm1.DCezarExecute(Sender: TObject);
var i:integer;key:byte;
begin
key:=strtoint(inputbox('ШифрЦезаря','Введитезначениеключа - толькоцелоечисло','3'));
for i:=0 to memo1.Lines.Count do
memo2.Lines.Add(cDcezar(memo1.Lines[i],key));
end;
procedure TForm1.clearExecute(Sender: TObject);
begin
memo2.Clear;
end;
procedure TForm1.changeExecute(Sender: TObject);
begin
memo1.Lines:=memo2.Lines;
memo2.Clear;
end;
9. Опишите подпрограммы для каждой из кнопок BitBtn:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if clr.Checked then memo2.clear;
if combobox1.ItemIndex=0 then atbash.Execute
else if action.ItemIndex=0 then ECezar.Execute
else DCezar.Execute;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
memo1.Clear;
end;
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
memo2.Clear;
end;
procedure TForm1.BitBtn4Click(Sender: TObject);
begin
change.Execute;
end;
procedure TForm1.BitBtn5Click(Sender: TObject);
begin
close;
end;
procedure TForm1.BitBtn6Click(Sender: TObject);
begin
if Opendialog1.Execute then
memo1.Lines.LoadFromFile(opendialog1.FileName);
end;
procedure TForm1.BitBtn7Click(Sender: TObject);
begin
if Savedialog1.Execute then
memo2.Lines.SaveToFile(savedialog1.FileName);
end;
10. Запустите проект.