Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.024 c
1-41633
Islander
2003-10-25 22:28
2003.11.13
Как переопределить событие в классе-наследнике?


1-41698
phan
2003-11-04 11:55
2003.11.13
ReadOnly колонка в StringGrid


1-41313
alexnmsk
2003-10-31 10:28
2003.11.13
Как программно добавить Frame к форме


14-42093
Kein
2003-10-21 21:53
2003.11.13
помогите отладить алгоритм!!!!!!!


3-41013
denmin
2003-10-14 11:02
2003.11.13
Как настроить клиента для MS SQL 2000?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский