Тема: DBGrid и Hint
Показать сообщение отдельно
  #3  
Старый 08.09.2011, 10:19
Аватар для Shoni
Shoni Shoni вне форума
Прохожий
 
Регистрация: 02.09.2011
Адрес: Кострома
Сообщения: 45
Версия Delphi: 7
Репутация: 165
По умолчанию

Код:
type
TXGrid=class(DBGrids.TDBGrid);
Код:
var Coord: TGridCoord;
CurRec: Integer;
lh1, lh2: Integer;
begin
with TXGrid(DBGrid1) do
begin
Coord:=MouseCoord(x,y);
with Coord do
if (Y<1) or (X<1) or (X>Columns.Count) then Exit;
CurRec:=DataLink.ActiveRecord;
DataLink.ActiveRecord:=Coord.Y-1;
//
// Опредиляем длину данных в поле
lh1:=Canvas.TextWidth(Columns[Coord.X-1].Field.AsString);
Label3.Caption:=IntToStr(lh1);
//
// Определяем длину поля
lh2:=Columns[Coord.X-1].Width;
Label4.Caption:=IntToStr(lh2);
//
// Если длина поля меньше длины его текста - выводим подсказку
if lh2 <= lh1 then
begin
ShowHint:=True;
Hint:=Columns[Coord.X-1].Field.AsString;
Application.ActivateHint(ClientToScreen(Point(X, Y)));
Edit1.Text:=Columns[Coord.X-1].Field.AsString;
end
else
begin
Edit1.Text:='';
ShowHint:=False;
Hint:=''; 
end;
//
DataLink.ActiveRecord:=CurRec;
end;
end; 
тоже отказывается работать
__________________
Memento Mori(арти)
Ответить с цитированием