Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: Выравнивание Justify
Показать сообщение отдельно

Аватара для Savant

Старожил


Сообщения: 300
Благодарности: 6

Профиль | Сайт | Отправить PM | Цитировать


Mavlyudov
По правому краю вообще в три строчки пишется (s - строка для выравнивания, w - необходимая ширина):
Код: Выделить весь код
function StringRight(const s: String; const w: Integer): String;
var
  i: Integer;
begin
  // Вырезаем пробемы и прочее ненужное справа (и заодно слева)
  // (если только справа, то - TrimRight(s))
  Trim(s);
  // Добавляем необходимое количество пробелов слева
  Result := '';
  for i := 1 to (w - Length(s)) do
    Result := Result + ' ';
  Result := Result + s;
end;
Или можно слегка оптимизировать и каждые 8 пробелов заменять на табулятор, например так :
Код: Выделить весь код
function StringRight2(const s: String; const w: Integer): String;
var
  i: Integer;
begin
  Trim(s);
  Result := '';
  for i := 1 to (w - Length(s)) div 8 do
    Result := Result + #9; // ASCII код Tab'a - 0x09
  for i := 1 to (w - Length(s)) mod 8 do
    Result := Result + ' ';
  Result := Result + s;
end;

Отправлено: 00:25, 28-05-2005 | #7

Название темы: Выравнивание Justify