Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.12.23;
Скачать: [xml.tar.bz2];

Вниз

Сделать Hint на гриде   Найти похожие ветки 

 
BorisUK   (2002-12-04 08:54) [0]

чтоб в него значение ячейки на которую указывает курсор...
Можно конечно при каждой перерисовке это делать и вставлять в hint Grid"а значение выделенной текущей ячейки, но вот проблема в том что у меня необходимость выделять построчно и поэтому RowSelected true
Да и hint тогда появляется везде где бы не указывал курсор а значение в нем ВЫДЕЛЕННОГО поля, что не есть корректно..
Может есть такие гриды или кто знает как такое грамотно замутить...
Буду благодарен за такую фичу :)


 
stone   (2002-12-04 09:22) [1]

Указатель на ячейку можно получить следующим образом:

procedure TForm1.DBGrid1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
var
ScrPt, GrdPt: TPoint;
Cell: TGridCoord;
begin
ScrPt := Mouse.CursorPos;
GrdPt := (Sender as TDBGrid).ScreenToClient(ScrPt);

Cell := (Sender as TDBGrid).MouseCoord(GrdPt.X, GrdPt.Y);

// Cell.X - Column
// Cell.Y - Row
end;


вопрос лишь в том, как по этим указателям получить значение ячейки. Для TStringGrid это просто StringGrid1.Cells[x,y], а в TDBGrid дело осложняется тем, что присутствует еще курсор датасета


 
AlexSV   (2002-12-04 10:03) [2]

В свое время посроил компонент как раз для этих целей.
Если интересует, то пиши на mail.


 
Леван   (2002-12-04 10:05) [3]

nomera col,row i koordinati iacheiki grida luchshe poluchit tak:

type
tmygrid=class(tdbgrid);
........................................
x:=tmygrid(dbgrid1).Col;
y:=tmygrid(dbgrid1).row;
rr:=tmygrid(dbgrid1).CellRect(x,y)
.........
privedenie tipov tvorit chudesa!


 
Sergey13   (2002-12-04 10:39) [4]

2BorisUK © (04.12.02 08:54)
>Может есть такие гриды или кто знает как такое грамотно замутить...
Стандартный ответ - EhLib 8-)
http://www.farpost.com/personal/dmitryb/RUS/default.htm


 
BorisUK   (2002-12-04 11:03) [5]

то Sergey13 ©
И как же этот TDbGridEh это делает...
Я найти не могу...
stone ©
координаты получили...
Как получить ссылку на поле, которое лежит по этим координатам?
<< Для TStringGrid это просто StringGrid1.Cells[x,y], а в TDBGrid дело
а вот именно в DBGrid?


 
stone   (2002-12-04 11:20) [6]


> Как получить ссылку на поле

ссылку на поле тоже не сложно
(Sender as TDBGrid).Columns.Items[Cell.X-1].Field
но это тоже не решает проблему. Значение поля в данном случае можно получить лишь из записи на которой установлен курсор датасета, при перемещении курсора мыши вверх или вниз по полю значение не изменится.


 
Sergey13   (2002-12-04 11:22) [7]

2BorisUK © (04.12.02 11:03)
У грида ставишь showhint=true и для нужных dbgrideh.columns ToolTips=true


 
BorisUK   (2002-12-04 12:21) [8]

Спасибо Sergey13 ©
а то не мог догадаться что ToolTips=true это как раз Hint
В общм хинты там теперь как надо тусуются, но проблем в дрегом...

У меня на гриде стояла процедура разукрашивания его по разным условиям, так вот простой перенос этой процедуры в DBGridEh
показал что строчки

DBGrid.Canvas.Brush.Color:=c1;
DBGrid.Canvas.FillRect(Rect);
DBGrid.Canvas.Font.Color:=c;
DBGrid.Canvas.TextRect(Rect, Rect.Left+2, Rect.Top+2, s);
//где S значение поля...

Перерисовывают не по правильным координатом, а как попало
Пока не изменишь размер какогонить поля - тогда становится все нормально... на время
Как то он значит не так немного передает координаты...
Такое впечатление что, когда курсор внутри грида, он берет величины Rect, которые были до того как в колонки поместили данные....
Что делать понять не могу...
Сделал колонки изначально побольше...- не помогает
Какието не те координаты он берет!


 
BorisUK   (2002-12-04 12:52) [9]

Спасибо AlexSV ©
Вот что душе нужно было :)
Работает на Ура.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.12.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
3-74595
b_baranov
2002-12-04 02:34
2002.12.23
Как перехватить занесение в базу записи, содержащей Null-значения


1-74693
bambina
2002-12-12 14:24
2002.12.23
TSaveDialog


14-74899
hedgehoge
2002-12-04 12:41
2002.12.23
Перекомпилить


1-74784
Sergy
2002-12-11 10:27
2002.12.23
Как правильно определить, открыто ли уже такая форма?


3-74555
NONAME00
2002-12-04 12:04
2002.12.23
Ошибка с ADO





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский