![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Показать Hint ы ;в StringGride [D5]
ghost_by © (2002-03-06 20:20:00)Можно ли (если можно то как?) показывать Hint"ыв StringGrid"е.
т.е. Есть StringGrid. В нем куча строк неумещающихся в ячейке. Нужно как нибудь показывать Hint"ы в ячейках в которых неумещается текст. Может как ловить какие нибудь сообщения винды типа WM_GET_HINT_TEXT (неуверен, что есть такое), или иначе.
Очень нужно.Помогите пожалуйста...
Song (2002-03-20 23:08:00) [1]см. пример в Дельфи по свойству Fields
ghost_by (2002-03-20 22:16:00) [2]А до собственно текста в этой ячейке как достучаться?
Song (2002-03-20 08:35:00) [3]Вы можете получить ячейку, которая находится под курсором мыши через MouseCoord:
Returns the row and column indexes of the cell that contains a point specified in screen coordinates.
type TGridCoord = record
X: Longint;
Y: Longint;
end;
function MouseCoord(X, Y: Integer): TGridCoord;
ghost_by (2002-03-20 07:47:00) [4]Спасибо за пример.
Но - назрела необходимоть сделать то-же самое в DBGrid"e, а там нет свойств вроде Cells. Если я правильно понял то там можно только к текущей строке обратится. Может кто знает?
Song (2002-03-07 19:38:00) [5]Я приведу тебе текст процедуры, которая работает для любого TStringGrid, вот только какой образовательный эффект из этого?
procedure TForm1.StringGrid3MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
Var Rect:TRect;
ACol,ARow:Integer;
begin
With TStringGrid(Sender) Do
try
MouseToCell(X,Y,ACol,ARow);
Rect:=CellRect(ACol,ARow);
IF Canvas.TextWidth(Cells[ACol,ARow])>(Rect.Right-Rect.Left) then Hint:=Cells[ACol,ARow] else Application.CancelHint;
except
Application.CancelHint;
end;
end;
ghost_by (2002-03-07 17:56:00) [6]Создавай в RunTime THintWindow и рисуй на нём что хочешь, и когда хочешь.- А пример можно?
ghost_by (2002-03-07 17:41:00) [7]обрабатывай onMouseMove- и что мне с ним делать?
Song (2002-03-06 20:35:00) [8]Всё намного проще: обрабатывай onMouseMove
Delirium (2002-03-06 20:32:00) [9]Создавай в RunTime THintWindow и рисуй на нём что хочешь, и когда хочешь.