Код:
procedure TForm1.Button1Click(Sender: TObject);
type TSlovo = set of char;
var Slovo : TSlovo;
i, iMax, Max, Cur : integer;
function CountSimvol(s : string; Sl : TSlovo) : integer;
var i, cnt :integer;
begin
cnt := 0;
for i:=1 to length(s) do
if s[i] in Sl then inc(cnt);
Result := cnt;
end;
begin
// разберём слово из Edit1 на буквы
Slovo := [];
for i:=1 to length(Edit1.Text) do
include(Slovo, Edit1.Text[i]);
// найдём строчку с максимальным содержанием нужных букв
iMax := -1;
Max := 0;
for i:=0 to Memo1.Lines.Count - 1 do begin
Cur := CountSimvol(Memo1.Lines[i], Slovo);
if Cur > Max then begin
Max := Cur;
iMax := i
end;
end;
// присвоим строчку содержащую макс. букв Кнопке
if iMax>=0 {т.е. нашли максимум} then
Button1.Caption := Memo1.Lines[iMax];
end;