Форум: "Основная";
Текущий архив: 2004.08.22;
Скачать: [xml.tar.bz2];
Внизв Hint для TStringGrid надо показывать непомещающийся текст Найти похожие ветки
← →
Koster (2004-08-10 13:01) [0]Как сделать, как в грамотных приложениях: если текст не помещается в пределах клетки TStringGrid, при наведении мыши показывать его полностью в Hint. При этом Hint обычно следует за мышкой, и главное - при наведении на другую ячейку он сразу же изменяется, показывая содержимое уже новой ячейки.
Делаю так:
procedure TForm2.sgMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
cx, cy: Integer;
begin
sg.MouseToCell(x,y,cx,cy);
if (cx < sg.ColCount) and (cy < sg.RowCount) and (cx >= 0) and (cy >= 0) then
sg.Hint := sg.Cells[cx,cy];
end;
Показывает только один раз Hint, за мышью не следует (ну и бог с ним), но при наведении на другую ячейку - не меняется!
Как побороть?
← →
@Lex © (2004-08-10 13:21) [1]procedure TForm1.sgMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
cx, cy: Integer;
r : TRect;
begin
sg.MouseToCell(x,y,cx,cy);
if (cx < sg.ColCount) and (cy < sg.RowCount) and (cx >= 0) and (cy >= 0) then begin
r := sg.CellRect(cx,cy);
if sg.Canvas.TextWidth(sg.Cells[cx,cy]) > r.Right - r.Left then begin
sg.Hint := sg.Cells[cx,cy];
sg.ShowHint := true;
end
else sg.ShowHint := false;
end
else sg.ShowHint := false;
end;
← →
Koster (2004-08-10 13:43) [2]Спасибо, чего-то сам насчет ShowHint не догадался, пытался бороть Application.CancelHint и Application.ShowHint. Теперь сам доделал, чтобы при переходе на другую клетку обновлялось, а так то что нужно!
procedure TForm2.sgMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
cx, cy: Integer;
r : TRect;
begin
sg.MouseToCell(x,y,cx,cy);
if (cx < sg.ColCount) and (cy < sg.RowCount) and (cx >= 0) and (cy >= 0) then begin
r := sg.CellRect(cx,cy);
if (oldCX <> cx) or (oldCY <> cy) then begin
oldCX := cx;
oldCY := cy;
sg.ShowHint := False;
end else
if sg.Canvas.TextWidth(sg.Cells[cx,cy]) > r.Right - r.Left then begin
sg.Hint := sg.Cells[cx,cy];
sg.ShowHint := true;
end
else sg.ShowHint := false;
end
else sg.ShowHint := false;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.08.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.037 c