Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Таблица символов

Автор myst, сентября 12, 2009, 14:27

0 Пользователи и 1 гость просматривают эту тему.

myst

Цитата: Ванько от сентября 18, 2009, 21:37
А с помощью KLC нельзя разве такое сделать? Там как минимум можно 94 символов(это без AltGr) втиснуть, а потом использовать экранную клавиатуру как таблицу
Мне нужна палитра, куда бы я мог добавлять (и удалять) символы по мере надобности, которых нет в раскладке, и смысла добавлять их в раскладку тоже нет.

arseniiv

Не получается... Всё работает не так, как я хочу. API-функции совсем не работают. Уууу! Принимайте, какая есть, или дайте ссылочку для хорошего исправления


arseniiv

Вот именно!!

Велю переключаться на другое окно, а этого не происходит! Уж как только и не менял константы SW_*

Алексей Гринь

Цитата: arseniiv от сентября 19, 2009, 18:02
Не получается... Всё работает не так, как я хочу. API-функции совсем не работают. Уууу! Принимайте, какая есть, или дайте ссылочку для хорошего исправления
Размер бинарника намекает, что там отнюдь не WinAPI, а VCL. Зачем WinAPI? В VCL нет нужного функционала?
肏! Τίς πέπορδε;

arseniiv

Неа. Нету там функционала, чтобы окно вело себя как Экранная Клавиатура. А версию Дельфи я пока до сих пор не имею возможности сменить... Это она виновата, думаю. Она у меня непонятнго какая. Хотя что-нибуль писать можно. Консольные там вещи, простые модули. Вот пописываю модуль для языка сценариев вида Scheme, но с любимыми вещами из Mathematica'и

myst

Цитата: arseniiv от сентября 19, 2009, 19:44
Велю переключаться на другое окно, а этого не происходит! Уж как только и не менял константы SW_*
Не понял.

arseniiv


myst

Цитата: arseniiv от сентября 20, 2009, 14:42
Ну не работает почему-то ShowWindow как надо!
А поподробнее. Что Вы пытаетесь сделать?

myst

Вы хотите, чтобы окно экранной клавиатуры было всегда на переднем плане, или фокус ввода переключить на другое окно?

arseniiv

И то, и другое. Сначала при первой деактивации окна оно берёт хендл активного и запоминает, а потом должна вставлять в него текст (keybd_event) с помощью метода Alt+NumX+NumX+... (если знаете лучше, скажите - а то я читал, что прямая посылка сообщения с текстом не подходит, а коды клавиш, конечно же, не уникодные). В общем, я потом ещё посмотрю...

myst

Чтобы окно было всегда поверх других, его надо создавать со стилем WS_EX_TOPMOST. Для переключения фокуса ввода используется функция SetFocus(). Функция ShowWindow() для немного других целей предназначена.

arseniiv

Ааай. Точно. Но просто иногда нужно, чтоб моё окно было под другими. Хотя что поделать - экранная клава поверх всегда. Оужасъ.

Когда простое окно я использовал, SetFocus скрывал его за другим, да. Ладно, сделаю поверх всех окон.

myst

Я не совсем понял про передачу текста посредством сообщений. У нас палитра символов. Нажимаем на ячейку палитры — посылается WM_CHAR в целевое окно. Я как-то так себе это представляю.

myst

Цитата: arseniiv от сентября 20, 2009, 17:28
Ааай. Точно. Но просто иногда нужно, чтоб моё окно было под другими.
Ну так, кто мешает динамически включать/выключать этот стиль?

myst

Как вообще Вы себе представляете передачу текста в сообщении? :what:

arseniiv

WM_CHAR вроде заглушается ОС, если посылается не в своё окно!
Представляю посимвольно

myst

Цитата: arseniiv от сентября 20, 2009, 18:13
WM_CHAR вроде заглушается ОС, если посылается не в своё окно!
Откуда такая информация?

arseniiv

Замените и возрадуйтесь, myst! := У меня получилось!!! :o :D Наконец-то. Именно таким способом только, как я говорил - серез посыл Alt+A+B+C+D+... В уникодную программу всё хорошо вставляется, а вот в Блокнот, если там открыт неуникодный файл - ничегошеньки, как стандартно и работает в таких случаях Alt-комбинация - приводится по модулю 256. Сами наверное знаете.

How to use пока что: После первого запуска закройте прогу и найдите в настройках (файл ini, это только один раз) опцию Caret=0 и смените её на Caret=1. Потому как я пока сделал по умолчанию отключенной эту функцию. А пока настроек нет, всё руками. Там же вы, кстати, можете сменить шрифты отображения. А вот количество колонок и пр. менять не советую...
И при повторном запуске опция работает. Всё вставляет. Щас попробую в фаерфокс вставить...

Цитата: myst от сентября 20, 2009, 18:24
Откуда такая информация?
Где-то читал. И на самом деле не работает! Ни SendMessage, ни PostMessage. Ноль реакции.

Ох-хо-хо. Фаерфоксная строка ввода опознаётся как не-уникодная! А Word символы принимает нормально. Не знаю, как у вас в Oper[a]'е... Сейчас проверю на Блокноте с открытым файлом в UTF-8. Никакой Блокнот не работает... Проверю Notepad++. Тоже ноль.

По крайней мере для ворда работает... :-[ Что поделать, если Windows не может перейти целиком на уникод!

myst

Цитата: arseniiv от сентября 20, 2009, 20:18
Где-то читал. И на самом деле не работает! Ни SendMessage, ни PostMessage. Ноль реакции.
:??? Хм... Посмотрю на досуге. Надо у Тайльнемера спросить, как он в своём PC_ме делал, так как Alt+<digits> — это настоящий изврат. ;)

arseniiv

PC_ме? Спросите побыстрее пожалуйста! Меня тоже задело. Какой-то педальный юникод... Непорядок.

Ага, он пока что "не с нами"...

О! I have another idea! Может, тогда нажимать клавиши вставки из буфера? Ctrl-V почти везде, и можно было бы это в настройках записать - кому-то может понадобиться Shift+Ins, и что там ещё... Как вам?
Вроде намного лучше, хотя и не идеально.

Всё же дождёмся тогда Тайльнемера.



arseniiv

С помощью Ctrl+V вставляются хуже - чаще не срабатывает. Да...

myst

Цитата: arseniiv от сентября 20, 2009, 20:18
Где-то читал. И на самом деле не работает! Ни SendMessage, ни PostMessage. Ноль реакции.
WM_CHAR в какое окно отправляли? Надо посылать в окно поля ввода.

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр