Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Настройка табуляции (http://forum.oszone.net/showthread.php?t=29926)

Nealles 11-03-2004 12:07 206394

Подскажите плиз как в Мемо менять ширину табуляции(например как в Паскале). Если конкретнее, то мне нужна ширина 2 символов.

Prisoner 11-03-2004 23:20 206395

На счет символов не знаю, но вот ширина в пикселах, пожалуйста:
Код:

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 206396

сорри, а как можно узнать сколько пикселей занимает какая либо буква?

Prisoner 12-03-2004 23:09 206397

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


Время: 06:41.

Время: 06:41.
© OSzone.net 2001-