Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MDI и TabOrder, Как заставить это работать? 
:(
    Опции темы
Serggggg
  Дата 18.6.2004, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 12.12.2003
Где: Донецк, Украина

Репутация: нет
Всего: нет



И ещё раз привет всем.
Помогите PLZZZ - на MDi-форме есть куча окошек (TEdit), у каждого из которых есть свой TAB ORDER. Однако перейти по нажатию TAB с одного окна на другое не получается - просто не работает.
Пишу обработчик нажатия клавиши TAB - типа
Код

if Key=VK_TAB then Edit2.SetFocus;


Тот же результат.
Как заставить сработать метод SetFocus?
--------------------
C уважением, Serggggg.
PM MAIL ICQ   Вверх
_vova_
Дата 18.6.2004, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 18.6.2004
Где: Харьков

Репутация: нет
Всего: нет



А зачем SetFocus?

ActiveControl := Edit2 ;

По-моему проще и работает
PM MAIL   Вверх
Serggggg
Дата 18.6.2004, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 12.12.2003
Где: Донецк, Украина

Репутация: нет
Всего: нет



Попробовал - не работает.
Не хочет переходить по TAB'у - хоть руками прописывай, хоть по умолчанию оставляй. sad.gif
--------------------
C уважением, Serggggg.
PM MAIL ICQ   Вверх
_vova_
Дата 18.6.2004, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 18.6.2004
Где: Харьков

Репутация: нет
Всего: нет



А у этого Edit2 случайно TabStop<>False?
PM MAIL   Вверх
Serggggg
Дата 18.6.2004, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 12.12.2003
Где: Донецк, Украина

Репутация: нет
Всего: нет



Пробовал и True и False - результат тот же. sad.gif
Это, наверное, какой-то глюк MDI-окон.
--------------------
C уважением, Serggggg.
PM MAIL ICQ   Вверх
RA
Дата 18.6.2004, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 14
Всего: 115



SendMessage(Edit2.Handle, WM_SETFOCUS, 0,0);
PM   Вверх
_vova_
Дата 18.6.2004, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 18.6.2004
Где: Харьков

Репутация: нет
Всего: нет



Не должно такого быть.
Наваял простенкий MDI Application, натыкал целую кучу контролов и ...
все по Tab'у прыгает и туда и обратно.
Попробуй пересоздать форму по новой. У меня, при похожих глюках
этот вариант как правило спасал.
PM MAIL   Вверх
_hunter
Дата 18.6.2004, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



проверил SetFocus() -- рботает без проблем --> ошибка в другом месте

ты KeyPreview установил?


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
RA
Дата 18.6.2004, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 14
Всего: 115



Во вот так должно работать (МиниЛовушка)

Код


var
 Form1: TForm1;
 hook: HHook;
implementation

{$R *.dfm}

Function hooks(Code:Integer;wParam,lParam:longint):longint; StdCall;
var c:array[0..255] of char;
   nScan:integer;
   boo,Sh:boolean;
begin
  if                                              //
( (code>=0)and(teventmsg(pointer(lparam)^).message=wm_keydown) )
  or                                                
{; Не поверите Alt c неких пор сталsyske'eм}

( (code>=0) and (teventmsg(pointer(lparam)^).message=wm_syskeydown) )
  then
    begin
    nScan:=hibyte((teventmsg(pointer(lparam)^).paramL));
    nscan:=nscan shl 16;
    end;
     GetKeyNameText(nScan,c,256);
     if 'tab'=LowerCase(c) then SendMessage(Edit2.Handle,WM_SETFOCUS,0,0);

end;


procedure TForm1.FormCreate(Sender: TObject);
begin
hook:=SetWindowsHookEx(WH_JOURNALRECORD,@hooks,hInstance,0);

end;



PM   Вверх
_vova_
Дата 19.6.2004, 02:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 18.6.2004
Где: Харьков

Репутация: нет
Всего: нет



Зачем так сложно smile.gif, RAdmin.
Вопрос в том, чтобы по Tab'у поменять Control (насколько я понял).
В принцыпе все варианты рабочие и зачем городить огород?
Serggggg, сделай новую форму и все пройдёт.
Вспомни старый анекдот: "Может выйдем, зайдем она и поедет?".

PM MAIL   Вверх
<Spawn>
Дата 19.6.2004, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Для кого ты пишешь обработчик нажатия? Для формы или контрола? Если для формы, то как тут уже сказали, ставь KeyPreview в True


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Serggggg
Дата 19.6.2004, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 12.12.2003
Где: Донецк, Украина

Репутация: нет
Всего: нет



Новую форму создавал. Форма создается (просходит Create(Application)) в своем unit'е. Форма создаётся в DLL - может быть проблемы из-за этого. Тот же результат.
Пробовал KeyPreview менять - тот же результат. Только мышкой щелкать надо.
Пробовал и SendMessage(Edit2.Handle, WM_SETFOCUS, 0,0); - результат=0;
Проклятие какое-то. butbut.gif
--------------------
C уважением, Serggggg.
PM MAIL ICQ   Вверх
Serggggg
Дата 19.6.2004, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 12.12.2003
Где: Донецк, Украина

Репутация: нет
Всего: нет



Да. Проблема в DLL - я создаю простенькое окошко MDI в библиотеке - TAB не пашет. Точно такое же окно MDI в EXE-модуле - все работает, как часы - TAB работает, как и должен - по умолчанию.
Как быть?
--------------------
C уважением, Serggggg.
PM MAIL ICQ   Вверх
_hunter
Дата 19.6.2004, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



еще раз спрашиваю smile.gif ты KeyPreview для формы установил?


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
RA
Дата 19.6.2004, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 14
Всего: 115



Цитата(_vova_ @ 18.6.2004, 23:20)
Зачем так сложно smile.gif, RAdmin.
Вопрос в том, чтобы по Tab'у поменять Control (насколько я понял).
В принцыпе все варианты рабочие и зачем городить огород?
Serggggg, сделай новую форму и все пройдёт.
Вспомни старый анекдот: "Может выйдем, зайдем она и поедет?".

Зато 100% smile.gif , и можно работать с формой каторыя скрыта или не в фокусе.
PM   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0637 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.