Войти

Показать полную графическую версию : Настройка табуляции


Nealles
11-03-2004, 12:07
Подскажите плиз как в Мемо менять ширину табуляции(например как в Паскале). Если конкретнее, то мне нужна ширина 2 символов.

Prisoner
11-03-2004, 23:20
На счет символов не знаю, но вот ширина в пикселах, пожалуйста:
Procedure SetTabWidth(Memo: TMemo; Width: LongInt);
Var
 I : Integer;
 TabArray : array[0..4] of Integer;
Begin
 Memo.WantTabs := True;
 for I := 1 to 5 do
   TabArray[I - 1] :=((Width * I ) * 4) div LoWord(GetDialogBaseUnits);
 SendMessage(Memo.Handle, EM_SETTABSTOPS,5,LongInt(@TabArray));
 Memo.Refresh;
End;


На счет символов можно так сделать: узнать у канвы (TCanvas) сколько пикселей будет занимать по ширине, скажем символ "а" (или два. или сколько надо) и передавать это значение в процедурку.

Nealles
12-03-2004, 10:13
сорри, а как можно узнать сколько пикселей занимает какая либо буква?

Prisoner
12-03-2004, 23:09
У объекта TCanvas есть метод TextWidth (как и TextHeight). Можно обращаться к канве главной формы или какой-либо другой, при условии, что шрифты TMemo и TForm одинаковы... просто как метод, не панацея...




© OSzone.net 2001-2012