DmitryBЦитата:
>Неправильно выводится в Win7 многострочие
Вот так должно работать. Прав с небольшими особенностями. Текст будет выводиться как хинт когда он вмещаетcя и ака Тултписк когда не вмещается.
Код:
procedure TForm1.DBGridEh1Columns1GetCellParams(Sender: TObject;
EditMode: Boolean; Params: TColCellParamsEh);
begin
Params.Text := StringReplace(Params.Text, #13#10, ' ', [rfReplaceAll]);
end;
procedure TForm1.DBGridEh1Columns1DataHintShow(Sender: TCustomDBGridEh;
CursorPos: TPoint; Cell: TGridCoord; InCellCursorPos: TPoint;
Column: TColumnEh; var Params: TDBGridEhDataHintParams;
var Processed: Boolean);
begin
DBGridEh1.DefaultFillDataHintShowInfo(CursorPos, Cell, Column, Params);
Params.HintStr := MemTableEh1CSTR.AsString;
Processed := True;
end;
Протестировал этот вариант еще раз. Как я уже сказал ранее, в принципе он работает нормально.
Но есть него один недостаток, после подключения обработчика ColumnsDataHintShow, Hint для колонки показывается всегда, а должен по идее только в случае если текст не помещается в ячейке (т.е. срабатывает ToolTips).
Вопрос: Возможно ли из обработчика ColumnsDataHintShow узнать, наступила ли сейчас "ситуация ToolTips" или нет ?
Если нет, то может тогда надо добавить например в класс TDBGridEhDataHintParams свойство которое будет говорить сейчас "ситуация ToolTips" или нет ?
И тогда можно будет закрыть этот вопрос.