Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2010, 18:12   #1
MSD
Пользователь
 
Регистрация: 23.03.2009
Сообщений: 85
По умолчанию Мемо вставка

Добрый день мастера, вопрос не сложный но не могу решить подскажите плиз, итак в мемо есть текст, строки разной длинны например

Маша
Саша
Петрович
Еще разная фигня

и т. д. текс не превышает 30 символов, задача в том чтобы этот текст как бы обрисовать рамкой с правого края, т.е. дридцатым символом вставить допустим знак "|", чтобы получить

Маша |
Саша |
Петрович |
Еще разная фигня |

как добавить эти палочки в текст 30 символом? Спасибо.
MSD вне форума Ответить с цитированием
Старый 05.06.2010, 18:18   #2
DoDge_VipeR
Форумчанин
 
Аватар для DoDge_VipeR
 
Регистрация: 30.04.2010
Сообщений: 317
По умолчанию

Код:
for i:= 0 to memo.lines.count-1 do
begin
while length(memo.lines[i])<30 do
memo.lines[i]:=memo.lines[i]+' ';

memo.lines[i]:=memo.lines[i]+'|';
end;
icq:627719[сто сорок четыре] - помогу с Pascal & Delphi!
DoDge_VipeR вне форума Ответить с цитированием
Старый 05.06.2010, 18:29   #3
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

ТС, такой способ не решение... Так как каждый символ имеет свой размер, по этому рамку так нарисовать не выйдет...
W0LF вне форума Ответить с цитированием
Старый 05.06.2010, 19:22   #4
Fuadik
Пользователь
 
Регистрация: 22.01.2010
Сообщений: 37
По умолчанию Рамка

Это можно получить только с моноширинными шрифтами. Тогда вертикальные линии будут одна под другой
Fuadik вне форума Ответить с цитированием
Старый 05.06.2010, 19:38   #5
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

Примеры моноширинных шрифтов:

Courier и Courier New
Monospace
Prestige Elite
Monaco
Lucida Console
Consolas
DejaVu Sans Mono
Liberation Sans
W0LF вне форума Ответить с цитированием
Старый 06.06.2010, 00:19   #6
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

Вот, наверно подойдёт:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
 I,II :Integer;
 Buf,msk :string;
begin
  II := Memo1.Lines.Count;
 if II <= 0 then
  Exit;
 for I := 0 to II - 1 do
 begin
   Buf := Memo1.Lines.Strings[I];
    // v1
  {msk := '%' + Format('%d', [30 - Length(Buf)]) + '.s|';
   Buf := Buf + Format(msk, [' ']); }
    // v2
   Buf := Format('%-30s', [buf]) + '|';
   Memo1.Lines.Strings[I] := Buf;
 end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Memo1.Font.Name := 'Courier';
end;

end.

Последний раз редактировалось Alter; 06.06.2010 в 00:24.
Alter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск в Мемо. Quadro_O Помощь студентам 14 28.04.2010 21:03
поиск в мемо ganz Помощь студентам 1 09.12.2009 21:28
Как скопировать текст из мемо одной формы в мемо другой CraZZy RabbIt Общие вопросы Delphi 4 27.02.2009 00:01
ЗАмена в мемо Drain Общие вопросы Delphi 2 29.01.2008 16:22
мемо ben95 Общие вопросы Delphi 1 29.01.2008 10:10