Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.24;
Скачать: CL | DM;

Вниз

Hint для любой ячейки TDBGrid   Найти похожие ветки 

 
serg!   (2004-10-11 12:09) [0]

Добрый день!

Как выводить Hint для любой ячейки компонента TDBGrid? При этом в свойстве Options флаг RowSelect установлен в True.


 
KSergey ©   (2004-10-11 12:13) [1]

На "королевстве" есть статьи на сей счет


 
serg!   (2004-10-11 12:46) [2]

А нельзя ли поподробнее? А то только для StringGrid"а нашел


 
Skeptik   (2004-10-11 13:08) [3]

> serg!
могу поделиться компонентом, скажи куда.


 
begin...end ©   (2004-10-11 13:17) [4]


> А то только для StringGrid"а нашел

Неужто там такая большая разница в этом?


 
Vlad ©   (2004-10-11 13:54) [5]

Выдрал с какого-то сайта:

Q: Очень хочется чтобы при движении мышкойпо столбцам DBGrid"а на тех ячейках, в которых длина строки данных длинеечем ширина самой ячейки, вылезал бы hint с необрезанной строкой.
unit DBGridEx;
{ ==================================================== }

{ ==================================================== }
interface
{ ==================================================== }
uses DBGrids, Grids, Controls, Classes, Forms;

type
   TDBGridEx = class( TDBGrid )

     private
       OldGridCoord : TGridCoord;
     public
       Application : TApplication;

       function MouseCoord(X,Y: Integer): TGridCoord;
       function GetEditText(ACol,ARow: Longint): string;override;
       procedure MouseMove(Shift:TShiftState; X, Y: Integer);override;

     published
       property OnMouseMove;
       property OnMouseDown;
       property OnMouseUp;
   end;

procedure Register;

{ ==================================================== }
implementation
{ ==================================================== }

function TDBGridEx.MouseCoord(X, Y: Integer): TGridCoord;
begin
 Result := inherited MouseCoord(X, Y);
end;

function TDBGridEx.GetEditText(ACol, ARow: Longint): string;
begin
 if (ACol > 0) and (ACol < ColCount) and (ARow > 0) and(ARow < RowCount)
then
   Result := inherited GetEditText(ACol, ARow)
 else
   Result := "";
end;

procedure TDBGridEx.MouseMove(Shift: TShiftState; X, Y: Integer);
Var
C:TGridCoord;
OldActive:Integer;
Value:String;
begin
 inherited MouseMove (Shift, X, Y);

  C:=MouseCoord(X,Y);
  if (OldGridCoord.X = C.X) and (OldGridCoord.Y = C.Y)then Exit;

  OldGridCoord := C;

  Value := "";
  OldActive := DataLink.ActiveRecord;
  Try
   if C.Y > 0 then
     DataLink.ActiveRecord := C.Y-1
   else
     DataLink.ActiveRecord := C.Y;
   {Value := GetFieldValue(C.X);}

   Value := GetEditText(C.X,C.Y);
  Finally
   DataLink.ActiveRecord := OldActive;
  End;

  if Application <> nil then
    Application.CancelHint;

  Hint:=Value;

end;

{ ==================================================== }

procedure Register;
begin
 RegisterComponents("Data Controls",[TDBGridEx]);
end;

{ ==================================================== }
end.



Страницы: 1 вся ветка

Текущий архив: 2004.10.24;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.037 c
4-1095675542
ArhDD
2004-09-20 14:19
2004.10.24
Record HWND


1-1097505960
gigabyte
2004-10-11 18:46
2004.10.24
Как работать с Microsoft Agent?


11-1081879198
hammer
2004-04-13 21:59
2004.10.24
Фреймы в kol e


14-1096264817
Slavian
2004-09-27 10:00
2004.10.24
Вирус?


4-1094820495
AllDer
2004-09-10 16:48
2004.10.24
TextOut в win2000