Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как определить координаты ячейки в строке?


Beavercrazy ©   (2007-01-18 12:41:00) 

Есть Dbgrid, в нем строки и соответственно ячейки. Необходимо определить координаты определенных ячеек, чтобы затем под ними показать компонент panel. У меня 10 колонок и соответственно необходимо показывать tpanel либо перед 3,6 или под обеими сразу. Вопрос собственно как определить координаты ячеек выделенной строки. ОЧень нужен код.

Заранее спасибо.


MsGuns   (2007-01-18 22:05:00) [1]

type
 TDBGridCrack = class (TCustomGrid);
 ...

function GetActiveGridCellRect(Grid: TDBGrid): TRect;
//*** Возвращает TRect активной ячейки грида
begin
 result.Top := 0; result.Left := 0; result.Bottom := 0; result.Right := 0;
 if dgRowSelect in Grid.Options then exit;
 if Grid.DataSource.DataSet.RecordCount=0 then exit;
 result := TDBGridCrack(Grid).CellRect(TDBGridCrack(Grid).Col,TDBGridCrack(Grid).Row);
end;


rar   (2007-01-18 18:07:00) [2]

Можно сделать в обычном гриде

На событие MyDBGridCellClick написать

MyDBGrid.Hint:=VarToStr(Column.Field.CurValue)

я отображаю обычно в статус баре, там больше места


Johnmen   (2007-01-18 15:51:00) [3]

Hint он мышиный хинт. А если мышиный курсор вне грида, а ты "выделяешь" строку? Вот то-то и оно...
Тебе подойдёт Sergey13 ©   (18.01.07 14:18) [7]


Beavercrazy   (2007-01-18 14:32:00) [4]


> У грида ShowHint = True, у колонки - ToolTips = True

А можно сделать, чтобы hint появлялся сразу после выделения строки. Т.е сейчас Hint появляется если навести курсор, а чтобы после выделения строки видна была подсказка? Можно так сделать?


Sergey13   (2007-01-18 14:18:00) [5]

Если в этом поле лежит нечто важное, то почему бы вместо колонки в гриде не вывести его в Мемо рядом с гридом? Мое ИМХО - некузяво нечто важное хинтом показывать. Если нечто справочное/второстепенное, тогда да.


Johnmen   (2007-01-18 14:12:00) [6]

У грида ShowHint = True, у колонки - ToolTips = True


Beavercrazy   (2007-01-18 14:08:00) [7]


> В EhLib'овском ДБГриде. Можешь глянуть на его, так нужный
> тебе, код...

Могу легко перейти на Ehlib. Не подскажите как там сделать такой Hint? Через Object Inspector?


Johnmen   (2007-01-18 13:52:00) [8]

Во-первых, в Dbgrid никакого текста, никаких данных нет.
Во-вторых, если нужен такой хинт, то он уже давным-давно сделан. В EhLib'овском ДБГриде. Можешь глянуть на его, так нужный тебе, код...


Beavercrazy   (2007-01-18 13:46:00) [9]

Просто задача показать текст ячеек в которые этот самый текст не входит. К примеру примечание. В это поле входит 255 символов, а видно не вооруженым глазом 30 :). Дальше расширять столбик смысла нет. Было бы очень удобно подсвечивать этакой hint в тех записях, где весь текст не виден. ИМХО удобно panel прикрутить. Может есть и другой путь.


Elen   (2007-01-18 12:46:00) [10]


> под ними показать компонент panel.

Под ним будет не видно. А над ним (или в занимаемой ячейкой областью экрана) можно попробовать рисовать в DrawDataCell. Там координаты передаются, имхо.


ЮЮ   (2007-01-18 12:45:00) [11]


> необходимо показывать tpanel либо перед3,6 или подобеими
> сразу

Ничего не понимаю. А строк сколько. А то что они скроллироваться могут не беспокоит? Грид, в конце концов не для того придуман, чтобы к нему ещё и TPanel-и прикручивать :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо