Советы по Delphi

         

Выравнивание в ListBox'е


Перед тем, как вычислить позицию фразы, необходимо с помощью функции TextWidth вычислить ее ширину.

Например:

    var J, TempInt, LongPrefixLen, CurrPrefixLen: Integer;
begin {Вычисляем TextWidth по ключевой строке} {Устанавливаем CurrPrefixLen в TextWidth ключевого слова строки Indexth} LongPrefixLen := 0; for J := 0 to ListBox1.Items.Count-1 do

with
ListBox1.Canvas do begin TempInt:= TextWidth(Copy(Items[J],1,Pos(KeyString,Items[J]-1))); if LongPrefixLen < TempInt then LongPrefixLen:= TempInt; if J = Index then CurrPrefixLen:= TempInt; end; {PrevTextLeft - TextLeft = Где мы хотим вывести новый элемент} TextOut(LongPrefixLen-CurrPrefixLen,Y,Items[I]); end;

[001458]



Содержание раздела