procedure MaxMinWord(S: String; var MaxWord, MinWord: String);
var
Position: Integer;
StrLen: Integer;
W: String;
function FindWord: String;
begin
Result := '';
repeat
Inc(Position);
if S[Position] <> ' ' then
Result := Result + S[Position];
until (S[Position] = ' ');
end;
begin
Position := 0;
StrLen := Length(S);
S := S + ' ';
W := FindWord;
MinWord := W;
MaxWord := W;
repeat
W := FindWord;
if W <> '' then
if Length(W) > Length(MaxWord) then
MaxWord := W else
if Length(W) < Length(MinWord) then
MinWord := W;
until Position >= StrLen;
end;
Вызов процедуры
procedure TForm1.Button1Click(Sender: TObject);
var
Max, Min: String;
begin
MaxMinWord(Edit1.Text, Max, Min);
ShowMessage('Max: ' + Max);
ShowMessage('Min: ' + Min);
end;