Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подсказка над пунктом ListBox'а, как сделать... 
V
    Опции темы
MacTep
Дата 25.4.2006, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: 4
Всего: 4



Предположим, что ширина у компонента небольшая, а строки длинные. Как сделать, чотбы при зависании мышки, появлялся хинт с полной длинной строки над которой висит указатель мыши? 


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
Демо
Дата 26.4.2006, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 30
Всего: 50



Используй TListView.

Если все же без TListBox не обойтись, то можно сделать так:

Код

procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  ind: Integer;
  R: TRect;
  P: TPoint;
begin
  ind := ListBox1.ItemAtPos(Point(X,Y),True);
  if  ind<>-1 then
  begin
    if ListBox1.Canvas.TextWidth(ListBox1.Items[Ind])>ListBox1.ClientWidth then
    begin
      ListBox1.Hint := ListBox1.Items[Ind];
      H.Canvas.Font := ListBox1.Canvas.Font;
      R := ListBox1.ItemRect(Ind);
      P := ListBox1.ClientToScreen(R.TopLeft);
      R.Left := P.X+1;
      R.Top := P.Y+1;
      R.Bottom := R.Top+ListBox1.ItemHeight-1;
      R.Right := R.Left+ListBox1.Canvas.TextWidth(ListBox1.Hint)+4;
      H.ActivateHint(R,ListBox1.Hint);
    end
    else H.ReleaseHandle;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   H := THintWindow.Create(ListBox1);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  H.Free;
end;
 


--------------------
    
PM MAIL ICQ Skype   Вверх
Yanis
Дата 26.4.2006, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Проще использовать TreeView тогда писать вообще никчего не придётся smile:
Код

object TreeView1: TTreeView
  RowSelect = True
  ShowButtons = False
  ShowLines = False
  ShowRoot = False
  Items.Data = {
    02000000360000000000000000000000FFFFFFFFFFFFFFFF0000000000000000
    1D31313131313131313131313131313131313131313131313131313131313600
    00000000000000000000FFFFFFFFFFFFFFFF00000000000000001D3131313131
    313131313131313131313131313131313131313131313131}
end
 


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Guedda
Дата 26.4.2006, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



Тебе сюда... Правда там для ComboBox, но ничего smile Разберешься smile 


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Yanis
Дата 26.4.2006, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



ВОТ ТУТ
Специально не приводил ссылку, потому что искать нехотелось и вообще я предпологал, что её предложат в первых постах smile


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Демо
Дата 26.4.2006, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 30
Всего: 50



Yanis
В первом ответе не то же самое? Только кода в 20 раз меньше. 


--------------------
    
PM MAIL ICQ Skype   Вверх
ДЫМ
Дата 26.4.2006, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 224
Регистрация: 6.1.2004

Репутация: 8
Всего: 8



Посмотри компонентик, там все что нужно

http://vingrad.ru/DELPHI-SRC-002491 
PM MAIL WWW   Вверх
MacTep
Дата 30.4.2006, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: 4
Всего: 4



Цитата(ДЫМ @  26.4.2006,  23:35 Найти цитируемый пост)
Посмотри компонентик
Компонента реальный. Спасибо! smile Уже юзаю... 


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0745 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.