![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как определить координаты ячейки в строке?
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-и прикручивать :)