![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
dbgrideh [WinXP]
rar © (2010-06-28 14:56:00)на форме расположено несколько компонентов в том числе dbgrideh
, при получении dbgrideh фокуса необходимо что бы курсор попал в строку фильтра
Mike Kouzmine (2010-06-29 10:33:00) [1]MsGuns © (28.06.10 21:26) [17]
Толпа спецалистов меделенно, но неотвратимо перемещается в сиситему управления, а это не эх-грид
MsGuns (2010-06-28 21:26:00) [2]Смортю я на эту парнографию и тихо радуюсь, что у меня нету ух-грида :)
И. Павел (2010-06-28 20:00:00) [3]
> Людей, которые в методах пишут self.
Я название функции забыл, поэтому написал self и точку - чтобы выбрать из списка :)
ИМХО в этом коде self - не самое страшное :)
Игорь Шевченко (2010-06-28 19:50:00) [4]И. Павел © (28.06.10 19:48) [13]
Людей, которые в методах пишут self. надо убивать во избежание засорения генофонда.
И. Павел (2010-06-28 19:49:00) [5]> MakeLParam(70, 20);
Тут 70 и 20 лучше считать динамически.
И. Павел (2010-06-28 19:48:00) [6]Извращение, конечно, но вроде бы работает:
var
Form1: TForm1;
InGrid: boolean;
implementation
{$R *.dfm}
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
var p: TPoint;
begin
p := self.ScreenToClient(Msg.pt);
if (Msg.message = WM_LBUTTONDOWN) or (Msg.message = WM_LBUTTONUP) then
if not InGrid then
if ((p.X >= DBGridEh1.Left) and
(p.X <= DBGridEh1.Left + DBGridEh1.Width) and
(p.Y >= DBGridEh1.Top) and
(p.Y <= DBGridEh1.Top + DBGridEh1.Height)) then
begin
DBGridEh1.SetFocus;
Msg.LParam := MakeLParam(70, 20);
InGrid := true;
end;
end;
procedure TForm1.DBGridEh1Exit(Sender: TObject);
begin
InGrid := false;
end;
Leonid Troyanovsky (2010-06-28 19:31:00) [7]
> MsGuns © (28.06.10 19:23) [10]
> сразу фигачит в строку фильтра :)
Здесь update нужен, но заказывать, IMHO, не здесь нужно,
а у Дм. Большакова, ЕМНИП.
--
Regards, LVT.
Leonid Troyanovsky (2010-06-28 19:25:00) [8]
> И. Павел © (28.06.10 19:16) [9]
> будет не фокус, но курсор туда переместится
Не в фокусе, но с каретом.
Про "не лает, не кусает.." слыхали, а это что ж за чудо?
--
Regards, LVT.
MsGuns (2010-06-28 19:23:00) [9]Блин, ему нужна кАмпАнетна, которая при получении фокуса сразу фигачит в строку фильтра :)
И. Павел (2010-06-28 19:16:00) [10]> rar
Если лучше способа не найдете, то можно попробовать послать DBGridEh сообщения для щелчка мышью в строке фильтра. Это будет не фокус, но курсор туда переместится.
Leonid Troyanovsky (2010-06-28 18:57:00) [11]
> rar (28.06.10 16:30) [7]
> строка фильтра не имеет хендл
Контролы без хендла фокус не получают.
--
Regards, LVT.
rar (2010-06-28 16:30:00) [12]строка фильтра не имеет хендл
Плохиш (2010-06-28 16:27:00) [13]Найми программиста.
rar (2010-06-28 16:00:00) [14]по этому событию грид получает фокус, а мне недо в строку фильтра попасть
Leonid Troyanovsky (2010-06-28 15:57:00) [15]
> необходимо что бы курсор попал в
Windows.SetFocus(HWnd_строка_фильтра);
--
Regards, LVT.
Leonid Troyanovsky (2010-06-28 15:53:00) [16]
> rar (28.06.10 15:30) [2]
> OnEnter это событие, а вопрос как установить курсор в строку
> фильтра
> при получении dbgrideh фокуса
OnEnter
rar (2010-06-28 15:30:00) [17]OnEnter это событие, а вопрос как установить курсор в строку фильтра
Плохиш (2010-06-28 15:18:00) [18]OnEnter