Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Hint в LookUp [D5, Paradox]


VladimirK ©   (2002-10-18 10:23:00) 

Здравствуйте. Вот такой вопрос. Есть в гриде лукап поля. При их выборе в комбобоксе отображается список, но длина элементов списка меньше реальной длины полей и содержимое видно не полностью.
Не подскажите, есть ли возможность отображать в виде hint"а содержимое полей в процессе их выбора?


Johnmen   (2002-10-18 11:10:00) [1]

>Есть в гриде лукап поля

Нет там никаких полей !

>в комбобоксе отображается

Так в комбобоксе или в гриде ?

>длина элементов списка меньше реальной длины полей

Сделай их равными...

>возможность отображать

Возможности есть всегда, но трудозатраты на их реализацию м.б. неоправданными !


Nomad.kz   (2002-10-18 11:10:00) [2]

Думаю, что можно. В DBGrid"е, правда, такого не делал, но покопайтесь сами вот в таком направлении:
Пример для простого стринггрида:


procedure TfrmView.FormCreate(Sender: TObject);
begin
...
Application.ShowHint := True;
Application.OnShowHint := Self.DoShowHint;
end;

procedure TfrmView.DoShowHint(var HintStr: string; var CanShow: Boolean;
var HintInfo: THintInfo);
var
p:TPoint;
nCol,nRow:integer;
begin
TStringGrid(HintInfo.HintControl).MouseToCell(
HintInfo.CursorPos.X,HintInfo.CursorPos.Y,nCol,nRow);
//метод MouseToCell, по-моему, в дбгриде отсутствует,
//во всяком случае, я его не увидел, но есть не менее
//интересный function MouseCoord(X, Y: Integer): TGridCoord;
//который возвращает номер столбца и номер строки по
//координатам мыши здесь
//GetCursorPos - screen coordinatesнадобны

if HintInfo.HintControl = grdChosen then begin
with HintInfo do begin
HideTimeout:=6000;
HintMaxWidth := 500;
if nRow <> -1 then
HintStr:=grdChosen.Cells[0,nRow]+
grdChosen.Cells[1,nRow]
else
CanShow:=false;
end;
end;
end;



У меня тоже не все работает так, как я хотел бы. Заодно вопрос к All. После того, как Hint появился и пропал, но мышка с объекта не ушла, как снова инициировать этот самый Hint при перемещении мыши (в моем случае - при смене строки)?
Ну вот, что знал - сказал, дальше дело за Вами ... ;-)


Наверх

Титульная страница Поиск, карта сайта Написать письмо