Форум: "Начинающим";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
ВнизКак сделать выравнивание по ширине в 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.042 c