Текущий архив: 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.46 MB
Время: 0.033 c