Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.024 c
4-1133698927
Volf_555
2005-12-04 15:22
2006.02.19
Как правильно передать параметры приложению?


3-1135683626
WG
2005-12-27 14:40
2006.02.19
Corrupt MEMO/BLOB file - нет ли кода/утилитки для лечения ?


3-1135003875
k-75
2005-12-19 17:51
2006.02.19
ADOQuery возвращает не более 1000 записей


2-1138527082
VikMix
2006-01-29 12:31
2006.02.19
не перехватывается WM_QUERYENDSESSION !


15-1138537172
VID
2006-01-29 15:19
2006.02.19
КПК HP hx4700 и просмотр видео через Wi-Fi




   Наверх