unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; Edit1: TEdit; Button1: TButton; Button2: TButton; CheckBox1: TCheckBox; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} function chiffre(text: string; n: integer):string; var i, ordinal, ordinaln:integer; begin text:=UpperCase(text); for i:=0 to length(text) do begin ordinal:=ORD(text[i]); ordinaln:=ordinal+n; if(ordinal>=65) AND (ordinal<=90) then begin text[i]:=chr(ordinaln); if(ordinaln>90) then text[i]:=chr(ordinaln-26) else if (ordinaln < 65) then text[i]:=chr(ordinaln+26); end; end; result:=text; end; function trimNumber(n: integer):integer; begin if( n > 25) then n:= n mod 26; result:=n; end; function isValidNumber(n: integer):boolean; begin if (n mod 26) = 0 then result:=false else result:=true; end; procedure abortChiffre; begin showmessage('Wolltest du nicht Chiffrieren?'); abort; end; { function trimSpecialChars(s:string):string; var s1:string; i:integer; begin //der scheiss wird nicht genutzert.... s1:=''; for i:=1 to length(s) do if not (s[i] in [' ', '-', ' ']) then s1:=s1+s[i]; result:=s1; end; } function removeSpecialChars(s: string): string; var s1: string; i,c: integer; begin for i:=0 to length(s) do begin c:=ORD(s[i]); if ((c>=65) AND (c<=90)) then s1:=s1+chr(c); end; result:=s1; end; procedure preChiffre(text: string; n: integer); begin n:=trimNumber(n); if(n<0) then form1.edit1.Text:=inttostr(n*-1) else form1.edit1.Text:=inttostr(n); if isValidNumber(n)=false then abortChiffre; if(form1.CheckBox1.Checked) then text:=removeSpecialChars(text); form1.memo1.text:=chiffre(text, n); end; procedure TForm1.Button1Click(Sender: TObject); var text:string; n:integer; begin text:=memo1.text; n:=strtoint(edit1.text); preChiffre(text, n); end; procedure TForm1.Button2Click(Sender: TObject); var text:string; n:integer; begin text:=memo1.text; n:=strtoint(edit1.text); preChiffre(text, n*-1); end; end.