|
#1
|
|||
|
|||
Подсказки
Подскажите возможно ли сделать так чтоб при наведении на заголовок высвечивалась подсказка,содержание которой зависло бы от наведенного заголовка. Тесть например: Заголовок-"Создание нового соо..." а подсказка-"Создание нового сообщения"
|
#2
|
||||
|
||||
Цитата:
Используется DBGridEh или стандартный грид? Google в помощь |
#3
|
|||
|
|||
Можно попробовать что-то типа этого
Код:
//***** Всплывающая подсказка для столбца ***** procedure TfMain.grMainDBBandedTableView1Column6GetCellHint( Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; ACellViewInfo: TcxGridTableDataCellViewInfo; const AMousePos: TPoint; var AHintText: TCaption; var AIsHintMultiLine: Boolean; var AHintTextRect: TRect); begin if (ACellViewInfo.Value <> Null) then begin AHintTextRect.Left := ACellViewInfo.Bounds.Left; AHintTextRect.Right := ACellViewInfo.Bounds.Left + 500; AHintTextRect.Top := ACellViewInfo.Bounds.Top; AHintTextRect.Bottom := ACellViewInfo.Bounds.Top + 500; AHintText := ACellViewInfo.Value; end; end; Но подсказка будет для каждой записи в столбце и для заголовка Ошибка вышла. Подсказка только для записей. Последний раз редактировалось _taddy, 08.11.2011 в 11:51. |
#4
|
|||
|
|||
Вот что работает
Код:
procedure TfMain.cxGrid1DBTableView1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var AHitTest: TcxCustomGridHitTest; AHint: string; AColumn: TcxGridColumn; aPos: TPoint; begin if not Assigned(Sender) then begin cxHintStyleController1.HideHint; exit; end; if not (Sender is TcxGridSite) then begin cxHintStyleController1.HideHint; exit; end; //determine the current mouse position AHitTest := TcxGridSite(Sender).ViewInfo.GetHitTest(X, Y); //hide displayed hint if mouse is not over a grid header if AHitTest.HitTestCode <> htColumnHeader then begin cxHintStyleController1.HideHint; Exit; end; if AHitTest.HitTestCode = htColumnHeader then with TcxGridColumnHeaderHitTest(AHitTest) do begin {check the current column over which the mouse is placed} AColumn := Column; AHint := TcxGridDBColumn(AColumn).Caption; aPos := TcxGridSite(Sender).ClientToScreen(Point(X, Y + 20)); if AHint <> '' then cxHintStyleController1.ShowHint(aPos.X, aPos.Y, AHint, '') else cxHintStyleController1.HideHint; end; end; Компоненты DevExpress: cxGrid и cxHintStyleController. |