Показать сообщение отдельно
  #4  
Старый 06.05.2008, 23:45
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,100
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, на самом деле это выглядеть должно где-то так (пишу прямо тут, так что за компиляемость не ручаюсь, главное смысл):

Код:
// Где-то описана строка со всеми доступными символами, например, для 3 она будет содержать 'abc'
var
  AllSymbols : String;

// процка, делающая замену
procedure ChangeSymbol(Idx : Integer; var S : String);
var
  Ch : Char;
  NextCh : Char;
begin
  // текущий символ в позиции Idx
  Ch := S[Idx];

  // находим следующий символ
  For I := 1 To Length(AllSymbols) Do
    If AllSymbols = Ch Then
      Begin
        // если он последний, то следующий будет первый, иначе - следующий
        If I = Length(Allsymbols) Then NextCh := AllSymbols[1] Else NextCh := Allsymbols[I+1];
        Break;
      End;

  // если символ первый среди возможных, то надо поменять предшествующий - переход позиции
  If NextCh := AllSymbols[1] Then  ChangeSymbol(Idx-1,S);

  // меняем символ
  S[Idx] := NextCh;
end;

ну фактически тебе осталось написать инициализацию всех переменных и выталкивание этого добра в Мемо.
Ответить с цитированием