unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids; type TForm1 = class(TForm) Memo1: TMemo; StringGrid1: TStringGrid; Button1: TButton; Button2: TButton; Edit1: TEdit; Button3: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var input,str:string; i:integer; begin str:=''; input:=uppercase(edit1.Text); for i := 1 to length(input) do if pos(input[i],str) = 0 then str:=str+input[i]; edit1.Text:=str; end; procedure TForm1.Button2Click(Sender: TObject); var i,count:integer; begin for i := 65 to 90 do stringgrid1.Cells[i-65,0]:=chr(i); for i := 1 to length(edit1.text) do stringgrid1.cells[i-1,1]:=edit1.text[i]; count:=0; for i:= 65 to 90 do begin if pos(chr(i),edit1.text) = 0 then begin stringgrid1.Cells[length(edit1.text)+count,1]:=chr(i); count:=count+1; end; end; end; procedure TForm1.Button3Click(Sender: TObject); var i,count:integer; text:string; begin text:=uppercase(memo1.text); for i := 1 to length(text) do begin if (ord(text[i]) >= 65) and (ord(text[i]) <= 90) then begin count:=ord(text[i])-65; text[i]:=stringgrid1.cells[count,1][1]; end; end; memo1.text:=text; end; end.