Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.08.2010, 17:39   #1
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию Выравнивание по ширине в ListBox

Нашел на DElphiWord такой код:
Код:
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;
Но он не работает. Текст ошибки:
Код:
  [Error] Unit1.pas(42): Undeclared identifier: 'KeyString'
  [Error] Unit1.pas(42): Incompatible types: 'String' and 'Integer'
  [Error] Unit1.pas(49): Undeclared identifier: 'Y'
  [Error] Unit1.pas(49): Not enough actual parameters
Помогите, плз, кто разбирается сделать это по-человечески.
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 05.08.2010, 18:46   #2
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Поясните что именно нужно... Может лучше ListView использовать?
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 05.08.2010, 18:57   #3
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Мне нужно именно в ListBox сделать выравнивание строк по ширине, т.е. чтобы строка занимала всю ширину ListBox'a (Как в Word'e ). Именно этот компонент нужен.
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 05.08.2010, 19:46   #4
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Хм... Теперь понятно...
А как например оно должно выглядеть если ширина ListBox будет 600, а в строке например "text"? (а в моём Word'е выравнивание по ширине почти не заметно - только когда текста много)
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 05.08.2010, 21:55   #5
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Цитата:
Сообщение от DomiNick Посмотреть сообщение
Хм... Теперь понятно...
А как например оно должно выглядеть если ширина ListBox будет 600, а в строке например "text"? (а в моём Word'е выравнивание по ширине почти не заметно - только когда текста много)
Ну возьмите, для примера, Winamp. Там время трека в списке всегда справа, и это не вторая колонка.
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 05.08.2010, 22:03   #6
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Вопрос расплывается !
Что нужно то ? Выравнивание по ширине или определенный текст справа ?

Цитата:
и это не вторая колонка.
С чего вдруг ?
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 05.08.2010, 22:05   #7
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Цитата:
Сообщение от Kotofff Посмотреть сообщение
Вопрос расплывается !
Что нужно то ? Выравнивание по ширине или определенный текст справа ?


С чего вдруг ?
Целиком нужно подобие плейлиста Winamp'a (название трека слева, длина трека справа). Реализация: в listbox'e. Но сойдет и простое выравнивание по ширине.
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 05.08.2010, 22:29   #8
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Цитата:
название трека слева, длина трека справа
Так это совсем другое... Сколькими символами длина трека отображается? Фиксированным количеством (Winamp не видел ни разу)?
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 05.08.2010, 22:57   #9
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Цитата:
Сообщение от DomiNick Посмотреть сообщение
Так это совсем другое... Сколькими символами длина трека отображается? Фиксированным количеством (Winamp не видел ни разу)?
Делаю фиксированным кол-вом, но, т.к. разные буквы имеют разную ширину выходит не очень ровно...

Вот так выглядит плейлист у Winamp'a:
йй.JPG
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 05.08.2010, 23:45   #10
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Может там шрифт специальный у них, в котором одинаковая ширина?
Сейчас сделаю...)

Только последнее: название и время отделяются чем-нибудь друг от друга (пробелом или например символом "|")? И что будет если время 12:20 или ещё хуже - 13:02:55?
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выравнивание по ширине FoNeZly Общие вопросы C/C++ 0 24.05.2010 23:42
выравнивание столбцов dbgrid по ширине текста kate158 БД в Delphi 2 30.07.2009 17:28
игры по ширине не на весь экран batist65 Свободное общение 6 19.02.2009 11:56
текст в richedit по ширине *Devil* Компоненты Delphi 1 15.06.2007 16:27
выравнивание текста по ширине Алёна Общие вопросы Delphi 6 18.04.2007 11:31