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

Previous  Top  Next

    
 

 

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

 

 

©Drkb::00552

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


 

Code:

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;

 

©Drkb::00553

Взято из

DELPHI VCL FAQ Перевод с английского        

Подборку, перевод и адаптацию материала подготовил Aziz(JINX)

специально для Королевства Дельфи

 

 

 


 

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

 

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

 

Code:

{Установка одной величины табуляции}

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;

 

 

©Drkb::00991

http://delphiworld.narod.ru/

DelphiWorld 6.0