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

Вниз

DBGrid & Hint   Найти похожие ветки 

 
virusfil ©   (2003-10-15 03:44) [0]

Народ, подскажите, я поставил DBGrid, решил отобразить на каждой ячейке Hint. В итоге подсказка всплывает на первый элемент базы. При уходе мышки из DBGrid и входе снова - опять также. При клике на следующую запись подсказка всплывает на эту запись. Как сделать так, чтоб при движении мыши по записям таблицы всплывали подсказки для каждой ячейки, а активация ячейки бы не происходила?


 
gek ©   (2003-10-15 07:26) [1]

MouseMove + MouseToCell + Cells + Hint


 
BorisUK ©   (2003-10-15 07:54) [2]

EhLib -> DbGridEh
и еще много много следующих вопросов отпадет. Там все уже сделано.
Хотя, если желание именно самому реализовать... тогда

> gek © (15.10.03 07:26) [1]


 
virusfil ©   (2003-10-16 03:24) [3]

gek и BorisUK, я в дельфи только начал работать и ничего не понял, напишите, пожалуйста, поподробнее.


 
Andrianorus   (2003-10-16 08:55) [4]

Берешь компоненты EhLIB
http://www.farpost.com/personal/dmitryb/RUS/default.htm
Надеюсь они ещё не платные для нас. Там сейчас 3.2, 3.0 была точно бесплатной. Но прекрасно работает и 2.5.

Используешь TDBGridEh вместо TDBGrid.
Решение твоей проблемы: ToolTips=true, ShowHint=true - не вмещающиеся значения отображаются как hint.


 
NAlexey ©   (2003-10-16 10:28) [5]

Непонятны ваши советы, да и вообще советы такого рода, брать компоненты на каждый чих. Автор же пишет, что он начинающий, ему учиться надо, и в примерах разбираться. Ну возмет он сегодня этот компонент, завяжет на него свой проект. Завтра ему понадобится чтобы его грид делал вещи которые этот грид не умеет, и что? Всего 10 строк кода, и никаких компонент.

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, Grids, DBGrids;

type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
procedure DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
FHintWindow: THintWindow;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

type
TXGrid = class(TCustomDBGrid);

procedure TForm1.CMMouseLeave(var Message: TMessage);
begin
if Message.LParam = Integer(DBGrid1) then
FHintWindow.ReleaseHandle;
inherited;
end;

procedure TForm1.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
Grid: TDBGrid;
Cell: TGridCoord;
CellRect: TRect;
HintCol: TColumn;
OldActive: Integer;
Value: string;
Pt: TPoint;
begin
Grid := Sender as TDBGrid;
Cell := Grid.MouseCoord(X, Y);
if (Cell.X < 1) or (Cell.Y < 0) then Exit;
try
HintCol := Grid.Columns[Cell.X - 1];
Value := "";
OldActive := TXGrid(Grid).DataLink.ActiveRecord;
try
TXGrid(Grid).DataLink.ActiveRecord := Cell.Y - 1;
Value := HintCol.Field.DisplayText;
CellRect := TXGrid(Grid).CellRect(Cell.X, Cell.Y);
GetCursorPos(Pt);
CellRect := FHintWindow.CalcHintRect(Grid.Width, Value, nil);
OffsetRect(CellRect, Pt.X, Pt.Y);
FHintWindow.ActivateHint(CellRect, Value) ;
finally
TXGrid(Grid).DataLink.ActiveRecord := OldActive;
end;
except
FHintWindow.ReleaseHandle;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
FHintWindow := THintWindow.Create(Self);
FHintWindow.Color := clInfoBk;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
FHintWindow.Free;
end;


 
Danilka ©   (2003-10-16 10:31) [6]

[5] NAlexey © (16.10.03 10:28)
не десять, а восемдесят две - меня не обманешь :))


 
NAlexey ©   (2003-10-16 11:04) [7]

>не десять, а восемдесят две
Эта оптический обман.


 
jack128 ©   (2003-10-16 11:06) [8]


> Message.LParam = Integer(DBGrid1)

мда...Мне бы эту строчку пару недель назад..


 
virusfil ©   (2003-10-16 16:20) [9]

Спасибо, братцы!!!



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

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

Наверх




Память: 0.49 MB
Время: 0.025 c
3-41018
Stas
2003-10-24 15:43
2003.11.13
Таблицы и представления


1-41221
jazz
2003-11-01 15:17
2003.11.13
Как при наведении на Menu показать Hint?


3-41048
safarov
2003-10-24 06:27
2003.11.13
Импортирование


1-41553
Oleg_
2003-10-22 21:43
2003.11.13
webbrowser в приложении независимо от версии IE


3-40794
Vemer
2003-10-19 19:34
2003.11.13
Inner Join в Interbase