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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2012, 21:23   #1
oleg_498
Пользователь
 
Регистрация: 04.12.2010
Сообщений: 11
По умолчанию Список: пользователь-id

Необходимо реализовать список людей таким образом, чтобы пользователь видел лишь их имя и фамилию, а id этих людей оставался скрытым для него. При этом в список можно свободно добавлять новых и удалять существующих людей, а так же сортировать их по алфавиту.
Т.е. по сути нужен компонент на подобии ListBox, имеющий для каждой строки свое скрытое описание.

P.S. Можно, конечно, создать отдельно массив для этого, но это создаст лишние проблемы...
oleg_498 вне форума Ответить с цитированием
Старый 09.09.2012, 22:10   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Берете ListBox.
Код:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
var
  s: string;
begin
  with (Control as TListBox).Canvas do
  begin
    FillRect(Rect);
    s := ListBox1.items.strings[index];
    TextOut(Rect.Left, Rect.Top, copy(s, 1, pos('-', s) - 1));
  end;
end;
Свойство Style в lbOwnerDrawFixed.
В самом ListBox:
Цитата:
Иванов-123
Петров-4
Сидоров Иван-6
Будет выглядеть:
Цитата:
Иванов
Петров
Сидоров Иван
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 09.09.2012, 22:21   #3
oleg_498
Пользователь
 
Регистрация: 04.12.2010
Сообщений: 11
По умолчанию

Хм... Хороший вариант, спасибо
oleg_498 вне форума Ответить с цитированием
Старый 09.09.2012, 22:35   #4
SNUPY
Форумчанин
 
Регистрация: 15.02.2008
Сообщений: 621
По умолчанию

Правильнее будет использовать метод AddItem и в объекте хранить необходимые данные.
Помог? Ну так нажми на весы!
SNUPY вне форума Ответить с цитированием
Старый 11.09.2012, 15:59   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

SNUPY, +1

это позволит не только упростить/ускорить код отрисовки,
но и ЗНАЧИТЕЛЬНО повысить надёжность программы.

BDA, согласитесь, что это хакерские штучки..
Например, подумайте, что произойдёт, если при вашем подходе ввести имя пользователя "Петров-Водкин"...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.09.2012, 18:58   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Serge_Bliznykov, конечно же соглашусь - способ "костыльный". Возьму на вооружение AddItem .
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать односвязный список и вывести его на экран. Из этого списка создать новый список по указанному ниже правилу и новый список San111 Паскаль, Turbo Pascal, PascalABC.NET 1 15.05.2012 22:08
Как получить список всех сайтов, которые посещал пользователь? Vova777 Общие вопросы Delphi 4 27.07.2011 20:11
Пользователь и компоненты guffer Общие вопросы Delphi 5 01.09.2009 18:38
Пользователь ozersk Карась О форуме и сайтах клуба 1 18.06.2008 20:21
Пароль и пользователь Mustang Общие вопросы Delphi 4 22.09.2007 17:55