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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 31.10.2010, 19:29   #1
codermoder
Пользователь
 
Регистрация: 22.06.2010
Сообщений: 48
Вопрос текст выходит за рамки строки в listbox

Такая задача, текст, который вставляется в строку в listbox, не влазит, т.е. его часть просто не видна. Как сделать так чтобы не видимый текст заканчивался '...' (но только в той строке, где текст не влазит, а где влазит, должен остаться как есть)?
И как сделать, чтобы при наведении курсора на строку с '...' высвечивался hint с полным текстом строки?
codermoder вне форума
Старый 31.10.2010, 19:40   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Как показывать хинты для частично видимых элементов ListBox

Мой вариант:
LBFound - это ТListBox
StaticHint - это ТStaticText
oldidx - глобальная переменная
Код:
procedure Tfmain.LBFoundMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
idx : Longint;
xsh,ysh: integer;
rects: TRect;
begin
idx:=LBFound.ItemAtPos(Point(x,y),True);
if (idx<0) or (idx=oldidx) then
Exit;
StaticHint.Visible:=False;
Application.ProcessMessages;
oldidx:=idx;
StaticHint.Caption:='';
if Canvas.TextWidth(LBFound.Items.Strings[idx])>LBFound.Width-4 then
begin
rects:=LBFound.ItemRect(idx);
xsh:=rects.Left;
ysh:=rects.Top;
StaticHint.Caption:=LBFound.Items.Strings[idx]+' ';
StaticHint.Left:=GBFinder.Left+LBFound.Left+xsh+2;
StaticHint.Top:=GBFinder.Top+LBFound.Top+ysh;//Y;
StaticHint.Visible:=True;
Application.ProcessMessages;
end;
end;

Последний раз редактировалось mihali4; 31.10.2010 в 19:47.
mihali4 вне форума
Старый 01.11.2010, 10:32   #3
codermoder
Пользователь
 
Регистрация: 22.06.2010
Сообщений: 48
По умолчанию

спс, попробую.
вопрос, как узнать номер выделенной строки в listbox?
т.е. по двойному клику по нужной строке, номер этой строки был написан в label1?

а все понял
Цитата:
if ListBox1.ItemIndex>=0
then Label2.Caption:=inttostr(ListBox1.I temIndex)

Последний раз редактировалось codermoder; 01.11.2010 в 10:42. Причина: понял как
codermoder вне форума
Закрытая тема


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
в ListBox Items менял текст quarty Общие вопросы Delphi 4 14.10.2010 21:07
Как сохранить и распечатать текст из listbox Linore Общие вопросы .NET 12 17.02.2010 17:15
Удалить указанный текст из ListBox Shouldercannon Общие вопросы Delphi 2 31.05.2009 18:10
Как получить текст из любой строки ListBox Alex_09 Общие вопросы Delphi 2 22.03.2009 13:58
как из ListBox`a дописать текст в файл? One.Love Общие вопросы Delphi 1 14.01.2008 07:20