Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.19;
Скачать: CL | DM;

Вниз

Как сделать выравнивание по ширине в Memo?   Найти похожие ветки 

 
Shizik ©   (2006-02-04 17:55) [0]

Я его сам уже сделал только в конце все равно пробелы отсаються...
Как быть?


 
Кефир87 ©   (2006-02-04 17:58) [1]

Код в студию 8)


 
@BraIN ©   (2006-02-04 17:58) [2]

Код бы посмотреть для начала.


 
Shizik ©   (2006-02-04 18:01) [3]

procedure TForm1.WidthClick(Sender: TObject);
var
 i,j,p,k,l: Integer;
 S: String;
 SpaseWidth: Integer;
begin
 SpaseWidth:=Canvas.TextWidth(" ");
 for i:=0 to Memo1.Lines.Count-1 do
 begin
   s:=Memo1.Lines.Strings[i];
   k:=0;
   p:=0;
   if Length(SpaseArray)<>0 then SetLength(SpaseArray,0);
   for j:=0 to Length(s)-1 do
     if s[j]=" " then
       begin
         SetLength(SpaseArray,k+1);
         SpaseArray[k]:=j;
         Inc(k);
       end;
   if k=0 then Exit;
   p:=(Memo1.ClientWidth-Canvas.TextWidth(s)) div SpaseWidth;
   p:=Round(p div k);
   if p=0 then Exit;
     for j:=k-1 downto 0 do
     begin
         l:=0;
         while l<>p do
         begin
           Insert(" ", S, SpaseArray[j]);
           Inc(l);
         end;
     end;
   Form1.Caption:=IntToStr(Memo1.ClientWidth-Canvas.TextWidth(s));
   Memo1.Lines.Strings[i]:=s;
 end;
end;
Это код процедуры обработчика...


 
Anatoly Podgoretsky ©   (2006-02-04 18:06) [4]

Это же ты пробелы вставляешь, а не выравниваешь по ширине. Выравнивание по ширине это достаточно сложная, низкоуровневая задача, надо оперировать характеристиками шрифта на уровне плохо описаного (сложного) АПИ Виндоус. Лучше перейти от TMemo к чему ни будь другому. Например сделать обертку вокруг RichEdit 3.0


 
Shizik ©   (2006-02-04 18:31) [5]

Дело  в том что мне надо сделать это выравнивание именно в Memo, а самый простой способ это сделать (по моему мнению) это подстановка пробелов...но возникли проблемы...


 
sniknik ©   (2006-02-04 18:38) [6]

> но возникли проблемы...
шрифт оказывается не моноширинный? ;о)

ну так выбери такой какой надо (например "Lucida Console") правда проиграеш в его "читабельности".


 
Shizik ©   (2006-02-04 18:41) [7]

Моноширный не моноширный...это не важно...вот в чем соль...


 
Anatoly Podgoretsky ©   (2006-02-04 19:10) [8]

А что важно?


 
Shizik ©   (2006-02-04 20:04) [9]

Важно то что алгоритм должен работать при любом шрифте и размере...!!!


 
HITMAN ©   (2006-02-04 20:08) [10]

Courier New    сизе 10
и читаемо и послушно



Страницы: 1 вся ветка

Текущий архив: 2006.02.19;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.187 c
15-1138622068
Pazitron_Brain
2006-01-30 14:54
2006.02.19
Доступ к FTP без домена


15-1138013263
pavel_guzhanov
2006-01-23 13:47
2006.02.19
DirectX или OpenGL


2-1138653560
korban
2006-01-30 23:39
2006.02.19
Запуск программы только один раз


11-1119532053
вад
2005-06-23 17:07
2006.02.19
IdSMTP


15-1138341096
DelphiN!
2006-01-27 08:51
2006.02.19
Изменить серийный номер флеш карты