| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Индикатор языковой панели?? |
| Автор: Nicholas 23.1.2005, 12:22 |
| У меня форма закрывает весь экран, на ней вводится пароль, хотелось бы видеть в удобном мне месте на форме индикатор раскладки клавиатуры. Подскажите что на форме сделать такого, что бы отображало язык руссский/английский? |
| Автор: Alex 23.1.2005, 14:20 |
| http://forum.vingrad.ru/index.php?showtopic=30237&unread=1&hl=раскладка |
| Автор: Nicholas 24.1.2005, 11:48 |
| Короче сдела я уже такую штуку, но тот код, что нассылке висит с ошибками! Правильно вопрос звучит так: Как помести на форму приложения в удобное мне место стандартную языковую панель, ну та , что рядом с трейем?? |
| Автор: Snowy 24.1.2005, 12:11 |
| В ВинХП просто перетащи на нужное тебе место По другому ее не перетащишь. Только свою рисовать. Да это и не сложно. тот же спидбатон легко приспасабливается для данных нужд. Если хотишь, чтобы всегда висел, то положи на отдельную маленькую формочку и вешай поверх всех окон. |
| Автор: Nicholas 25.1.2005, 05:34 | ||
Я так и сделал, просто хотелось, что на ней все настройки стандартной панели были доступны. |
| Автор: Snowy 25.1.2005, 09:19 |
| Ну, если сможешь получить хэндл окна языковой панели (это может быть затруднительно, если ее нет на экране (у меня нет)), то можно просто передавать ей события маускликов. Правда не уверен наверняка, что у него есть персональный хэндл. В 9х его скорее всего нет. В XP должен быть, но я не проверял... Уменя языковая панель вообще в системе отсутствует, поэтому проверить не могу... |
| Автор: p0s0l 25.1.2005, 11:52 |
| Попробуй Windows.SetParent (wndLangPanel, YourPanel.Handle); Добавлено @ 11:53 Только не забудь вернуть обратно (но это не очень хороший способ всё равно, лучше сам рисуй)... |
| Автор: Snowy 25.1.2005, 12:04 |
| Это лишнее. А если прога повиснет/заглючит... А если переключиться на другую прогу... Оптимально просто ловить клик левой и правой кнопы. При их получении соответственно посылать тот же самый месседж системному переключателю. Но если брать реально. То по идее нужен только левый батон - для переключения языка. Так что совершенно незачем вообще трокать системный переключатель - все более, чем просто. Нажали - сделали переключение. И заморочек меньше, и код аккуратней, и различные заглюки исключены. |
| Автор: p0s0l 25.1.2005, 13:08 | ||||
Имхо легче самому нарисовать панельку (GetKeyboardLayout), и вручную переключать раскладки (ActivateKeyBoardLayout), чем передавать клики (еще и неизвестно чему, если нет яз.панели)... |
| Автор: Snowy 25.1.2005, 13:28 |
| Именно. Я об этом и говорю. Если хочется, чтобы был системный переключатель, то просто передавать ему свои клики. Но вариант далеко не гарантированный. Вероятность того, что работать не будет больше 70% Поэтому лучше делать свою кнопку и оставить в покое системный переключатель. |