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

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

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


Наверх

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