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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Virtual Draw Tree, (как узнать, помещается ли запись?) 
:(
    Опции темы
Чoо
Дата 24.7.2010, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



здравствуйте. Хотелось бы реализовать такое же поведение дерева, как если бы было установлено свойство 
Код

hintMode:=hmTooltip

Выставление этого свойства ни как не влияет на отображение хинта, в принципе догадываюсь почему, поэтому нужно писать обработчик. Да вод беда, не знаю как определить, помещается ли запись в область VD (не в колонку а именно в область, занимаемую компонентом. Другими словами, нужен хинт, если нужно продвинуть горизонтальный скролл, что бы прочитать запись. Если это сделать нельзя, то хотя бы как  определить, помещается ли запись в колонку?).

Еще заметил пару неприятных вещей:
1. Хинты ни как не появлялись, пока не вписал хинт по-умолчанию (хоть и не использую его)
2. метод HintCanvas.Rectangle  в событии VD1DrawHint почему-то справа и снизу уменьшает значение координат на 2, поэтому рамку вынужден рисовать так:
Код

Rectangle(R.Left,R.Top,R.Right+2,R.bottom+2);

(опасаюсь, что от этого могут быть проблемы с отрисовкой).

Добавлено через 7 минут и 56 секунд
хотя вот с колонкой вроде так можно сделать, нет?:
Код

procedure TFDBEditor1.VD1GetHintSize(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Column: TColumnIndex; var R: TRect); 
var
  DataNode:PMyRecord;
  sWidth:integer;
begin

  DataNode:=Sender.GetNodeData(node);
  if assigned(DataNode) then begin
    sWidth:=Sender.Canvas.TextWidth(DataNode^.Name);
    if sWidth+VD1.indent+VD1.Margin>VD1.Header.Columns[0].width then begin
    {определяем границы хинта, в противном случае хинт не реисуем}
    end;
  end; 

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


--------------------
user posted image

OS: Debian Squeeze (kernel 3.8.2)
IDE: qtCreator 1.3.1; Eclipse SDK 3.5.2
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.0388 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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