Выравнивание в 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;
|
|