Как настроить табуляцию в компоненте TMemo?

Материал из DRKB

Как настроить табуляцию в компоненте TMemo?[править | править код]

Пошлите в Memo сообщение EM_SETTABSTOPS


Source: Взято с сайта http://blackman.wp-club.net/
ID: 00552



procedure TForm1.FormCreate(Sender: TObject);
var
  DialogUnitsX: LongInt;
  PixelsX: LongInt;
  i: integer;
  TabArray: array[0..4] of integer;
begin
  Memo1.WantTabs := true;
  DialogUnitsX := LoWord(GetDialogBaseUnits);
  PixelsX := 20;
  for i := 1 to 5 do
  begin
    TabArray[i - 1] := ((PixelsX * i) * 4) div DialogUnitsX;
  end;
  SendMessage(Memo1.Handle, EM_SETTABSTOPS, 5, LongInt(@TabArray));
  Memo1.Refresh;
end;


 DELPHI VCL FAQ Перевод с английского
 Подборку, перевод и адаптацию материала подготовил Aziz(JINX)
 специально для Королевства Дельфи


Source: Взято из
ID: 00553



Для этого надо послать сообщение EM_SetTabStops компоненте TMemo, в котором необходимо указать два параметра. Количество передаваемых значений и величины табуляций.

Если первый параметр равняется нулю, то второй параметр игнорируется и величина табуляции сбрасывается в значение по умолчанию (32). Иначе, устанавливается величина указанная во втором параметре, причем, при единичном значении все величины табуляций будут равны, а при большем значении величины берутся из переданного массива.

{ Установка одной величины табуляции }
const
  TabInc: LongInt = 40;
begin
  SendMessage(Memo1.Handle, EM_SetTabStops, 1, Longint(@TabInc));
end;


{ Установка двух величин табуляции }
const
  TabInc: array [1..2] of LongInt = (10, 30);
begin
  SendMessage(Memo1.Handle, EM_SetTabStops, 2, Longint(@TabInc));
end;


Source: http://delphiworld.narod.ru/
ID: 00991