Форум программистов, компьютерный форум, киберфорум
Pure Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.88/40: Рейтинг темы: голосов - 40, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 12.11.2020
Сообщений: 10

EditorGadget3D и русский ввод

12.11.2020, 13:18. Показов 8788. Ответов 44
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, уважаемые профи и сочуствующие.
Не подскажет ли кто, как решить проблему с русским вводом в окно редактирования гаджета EditorGadget3D?
В стандартных примерах есть файл Gadget3D.pb демонстрирующий работу в том числе и данного простейшего редактора (вкладка Third в окне "More gadgets"). При редактировании окна кириллические символы заменяются на символы другой кодировки. UTF8 в "Формат файла" выставлен, сообщения введенные через редактор самого PB на русском отображаются также на русском, введенные через приложение - кракозябрами...


Похоже та же самая ситуация с любым текстовым гаджетом в примерах до которых дошли руки...

Windows 10, PB 5.70 LTS
Миниатюры
EditorGadget3D и русский ввод  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.11.2020, 13:18
Ответы с готовыми решениями:

Русский ввод и русский вывод
Я знаю, что для того, чтобы был виден русский язык, я использую команду setlocale(LC_ALL,"Russian") Для того, чтобы в...

Русский ввод в консоль
И снова у меня возникла проблема. Нужно, чтобы программа адекватно сравнивала русский ввод из консоли с заданной фразой. Например, так: ...

Настроить русский ввод в файл
Создал файл .txt через fstresm file("C:/file.txt"); в косоле сделал русский ввод вывод setlocale(LC_ALL, "Russian"); Но когда...

44
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
19.11.2020, 00:08
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Rrhany Посмотреть сообщение
проблема между тем решена не нами.
Это вообще не проблема, проблемы будут дальше, с таким подходом.
Pro_grammer, если захочет, напишет чем чреват этот костыль.
0
0 / 0 / 0
Регистрация: 12.11.2020
Сообщений: 10
19.11.2020, 01:13  [ТС]
С вашим подходом будут одни проблемы, согласен. И вечное изобретение велосипедов...
Мой же подход показал свою эффективность.

Этот "костыль" ничем для меня не чреват, благо другие языки кроме английского и русского для работы тулсы не требуются, а сама тулса - просто внутренний инструмент для быстрого структурированного редактирования объектов требующихся для работы в других программных средах.
0
 Аватар для Pro_grammer
6807 / 2840 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
19.11.2020, 10:03
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Pro_grammer, если захочет, напишет чем чреват этот костыль.
Когда знаешь причину проблемы, то можно поискать и лучшее решение.
Например вот такой вариант в одну строку устраняет проблемы с любыми национальными раскладками, которые работают в ASCII формате:
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
If ExamineKeyboard() And ExamineMouse()
        Input.s = KeyboardInkey()
        Input$ = PeekS(@Input, 1, #PB_Ascii)
        SpecialKey = 0
        If     KeyboardPushed(#PB_Key_Back)   : SpecialKey = #PB_Key_Back
        ElseIf KeyboardPushed(#PB_Key_Return) : SpecialKey = #PB_Key_Return
        ElseIf KeyboardPushed(#PB_Key_Left)   : SpecialKey = #PB_Key_Left
        ElseIf KeyboardPushed(#PB_Key_Right)  : SpecialKey = #PB_Key_Right
        ElseIf KeyboardPushed(#PB_Key_Up)     : SpecialKey = #PB_Key_Up
        ElseIf KeyboardPushed(#PB_Key_Down)   : SpecialKey = #PB_Key_Down
        ElseIf KeyboardPushed(#PB_Key_Delete) : SpecialKey = #PB_Key_Delete
        EndIf
        
        InputEvent3D(MouseX(), MouseY(), MouseButton(#PB_MouseButton_Left), Input$, SpecialKey)
      EndIf
1
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
19.11.2020, 18:27
Цитата Сообщение от Rrhany Посмотреть сообщение
Мой же подход показал свою эффективность.


Об эффективности поговорим, когда будет предмет обсуждения.
"Тусовка" оценит, она же с ваших слов "абузеров" и "формошлёпов" любит и ценит.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
19.11.2020, 19:06
Рантайм что, сам рисует это через GDI± вместо использования элементов управления Windows? Если так, то не удивительно.
0
Эксперт по электронике
7231 / 3410 / 347
Регистрация: 28.10.2011
Сообщений: 13,402
Записей в блоге: 7
19.11.2020, 19:18
Цитата Сообщение от Замабувараев Посмотреть сообщение
сам рисует это через GDI± вместо использования элементов управления Windows?
Какие элементы управления Windows доступны в DirectX или OpenGL?
И причем здесь GDI? По моему из темы понятно что речь про 3D графику.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
19.11.2020, 19:40
Цитата Сообщение от Замабувараев Посмотреть сообщение
Рантайм что, сам рисует это через GDI± вместо использования элементов управления Windows? Если так, то не удивительно.
Там простенький GUI для графических режимов. Интересная, наверное, штука для разработчиков игрулек.
Давно это было запилено там, вот всплыло.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
вот такой вариант в одну строку устраняет проблемы с любыми национальными раскладками
Ты его разбалуешь.
Кстати ASCII - это байт. Японо-Китайцы не оценят. ))) Но так да Евро зона будет в восторге.
Но вообще да, пусть учат английский. А то чё, мы что-ли одни такие левые, под амеров прогибаемся.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
19.11.2020, 19:50
Цитата Сообщение от locm Посмотреть сообщение
По моему из темы понятно что речь про 3D графику.
«3D графика» в том смысле, что прорисовывается средствами DirectX? Ну так 3Д можно и через ГДИ рисовать.

Ну вот всякие элементы управления из Windows Presentation Foundation прорисовывают себя на окне не средствами GDI, а как раз через DirectX, это 3Д графика?

Цитата Сообщение от locm Посмотреть сообщение
Какие доступны элементы управления Windows в DirectX или OpenGL
Странный вопрос. Элемент управления рисует себя примитивами рисования, функции для которых лежат в библиотеках ДиректИкс или ГДИ. Элемент управления не ограничивается только рисованием, а включает в себя и общепринятое поведение для своего класса. Например, чтобы костюмное текстовое поле вело себя как родное необходимо реализовать все 128 интерфейсов для ввода текста.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
19.11.2020, 20:23
Цитата Сообщение от Замабувараев Посмотреть сообщение
«3D графика» в том смысле, что прорисовывается средствами DirectX?
Там на выбор DirectX 7\9, OpenGL (в справке точнее, что для этого можно использовать). Гуй этот рисуется примитивами.

Добавлено через 22 минуты
Цитата Сообщение от Замабувараев Посмотреть сообщение
Элемент управления не ограничивается только рисованием, а включает в себя и общепринятое поведение для своего класса. Например, чтобы костюмное текстовое поле вело себя как родное необходимо реализовать все 128 интерфейсов для ввода текста
Дядь чё то дофига больно.

Да как бы ясен хрен что оно не поведёт себя как родное))), это же примитивы. Там своё окружение:
https://www.purebasic.com/docu... index.html

Хотя думаю самую элементарщину можно запилить, всякие драг&дропы, выделения\копирование, буфер обмена
и прочую мелочёвку через голые WinAPI, ну кому надо конечно. Это если в оконном режиме, насчёт фул скрина
не помню как там, может и геморно.
0
 Аватар для Pro_grammer
6807 / 2840 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
19.11.2020, 20:32
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Японо-Китайцы не оценят.
Да всё у них нормально. Клавиатура то штатная у всех!
Для упрощения и удобства в 1958 году в Китае ввели транскрипцию для иероглифов-пиньинь. Пиньинь учат в школах. Также эту же транскрипцию (пиньинь) используют для того, чтобы писать иероглифы. При написании используются только латинские буквы. Так что там всё будет ОК и без наших костылей
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
19.11.2020, 21:12
Цитата Сообщение от Pro_grammer Посмотреть сообщение
ввели транскрипцию для иероглифов-пиньинь
Пинь пинь))) дичь!
А какже их 5000 иероглифов? Ну и все эти выделенные под них юникоды, что обычно не отображаются
на не китайских виндах.
Вложение 1198202

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Для упрощения и удобства в 1958 году
Короче они поняли, что грядёт ад и жопа, как раз, когда первые компы только только нагрянули.
0
Эксперт по электронике
7231 / 3410 / 347
Регистрация: 28.10.2011
Сообщений: 13,402
Записей в блоге: 7
19.11.2020, 21:39
Цитата Сообщение от Замабувараев Посмотреть сообщение
«3D графика» в том смысле, что прорисовывается средствами DirectX? Ну так 3Д можно и через ГДИ рисовать.
Сколько вы знаете 3D игр, типа GTA, метро, сталкер и т. д. у которых графика реализована указанным вами способом?
А ведь в них есть GUI, как минимум в меню настроек.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Ну вот всякие элементы управления из Windows Presentation Foundation прорисовывают себя на окне не средствами GDI, а как раз через DirectX, это 3Д графика?
Вы прикалываетесь или реально не понимаете о чем речь?

Цитата Сообщение от Замабувараев Посмотреть сообщение
Странный вопрос. Элемент управления рисует себя примитивами рисования, функции для которых лежат в библиотеках ДиректИкс или ГДИ.
Если считаете вопрос странным приведите примеры кода с использованием стандартных элементов управления Windows в DX или OpenGL.
0
 Аватар для Pro_grammer
6807 / 2840 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
19.11.2020, 22:22
Цитата Сообщение от Quiet Snow Посмотреть сообщение
А какже их 5000 иероглифов? Ну и все эти выделенные под них юникоды
Транскрипция же. Китаец набирает на клаве что то вроде ni hao, а драйвер китаёза рисует на экране 你好.
Возможность набирать слова и фразы по первым буквам пиньиня (например, для набора фразы 你好我的朋友 необязательно набирать на клавиатуре nihao wo de pengyou, а достаточно набрать nhwdpy). Это ускоряет работу с китайским на компьютере и делает ее более удобной.
1
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
19.11.2020, 23:34
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Транскрипция же. Китаец набирает на клаве что то вроде ni hao, а драйвер китаёза рисует на экране 你好.
Возможность набирать слова и фразы по первым буквам пиньиня (например, для набора фразы 你好我的朋友 необязательно набирать на клавиатуре nihao wo de pengyou, а достаточно набрать nhwdpy). Это ускоряет работу с китайским на компьютере и делает ее более удобной.
Просто слабо понимаю как оно будет работать, если нам на вход приходит байт.
Для пурика же основной его UTF-8(таблица была в справке). А знакогенератор отображает UTF-16?
(ну судя по прибавкам за тысячу в прошлом коде и оно мол грузится с виндовых шрифтов).

Цитата Сообщение от Pro_grammer Посмотреть сообщение
nhwdpy
Так а как оно работает в точности? Китаец пишет английскими буквами, и когда это сокращение написано
полностью срабатывает драйвер, удаляет написанное и меняет на китайскую литеру? Просто если приходит
байт, то я даже близко не понимаю как оно будет работать и будет ли(т.к. это ещё зависит от того как
драйвер это делает, лезет ли он напрямую в память контрола, останавливая его отработку, или
просто генерирует ввод типа удалить символ x n и добавить иероглифич. символ, концептуально правильнее
первый варик. А так если он лезет в память, то к самопальной пюровой библиотеке это же не относится).
Это чисто вопрос согласования. Т.е. KeyboardInkey() должен быть согласован с отображением.
Не силён в китайском, вряд ли полезу проверять(а уж Фред тем паче) ))) просто интересно как
у них там это всё.

Кстати всегда думал, что китайцы зажимают несколько клавиш(в т.ч. командных) и по их уникальной
комбинации генерируется иероглиф, ну типа это логично, а у них во как. А ты китайский изучаешь?
0
 Аватар для Pro_grammer
6807 / 2840 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
20.11.2020, 06:42
Цитата Сообщение от Quiet Snow Посмотреть сообщение
А ты китайский изучаешь?
Да нет. Был там раза при. Видел как они на компах работают.
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Так а как оно работает в точности?
В основном на английском они работают.
А если китайский, как набирают ключевые слова, операторы в редакторе Visual Studio? Примерно такой же принцип.
Начинает набирать первые буквы, выскакивает окошечко с набором иероглифов, набор которых меняется в зависимости от набранных букв. Выбирают нужный иероглиф из набора и он вставляется в текст.

Не уверен, что 3D окно поддерживает такой набор. По крайней мере шрифт точно нет - попробовал вставить иероглифы в исходник, их просто не отображает при запуске.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
20.11.2020, 08:46
Цитата Сообщение от locm Посмотреть сообщение
Вы прикалываетесь или реально не понимаете о чем речь?
Ну объясните, в чём трёхмерность таких элементов управления? В том, что что у них фон чёрный, а буквы белые?

То, что они прорисовываются библиотекой для рисования трёхмерных примитивов — не делает такие элементы управления трёхмерными.

Цитата Сообщение от locm Посмотреть сообщение
Сколько вы знаете 3D игр, типа GTA, метро, сталкер и т. д. у которых графика реализована указанным вами способом?
Ручками строить 2D проекцию трёхмерного объекта и рисовать базовыми двумерными примитивами мешает только только медлительность центрального процессора. ОпенГёлы и Направления Икс отдают процесс драйверу и видеокарте, поэтому получается быстро. Если процессор бы умел так же быстро обсчитывать 2Д проекцию, то ОпенГёл могла бы внутри себя вызывать ГДИ.
0
20.11.2020, 10:16

Не по теме:

Цитата Сообщение от Замабувараев Посмотреть сообщение
Если процессор бы умел так же быстро обсчитывать 2Д проекцию
Если бы у бабушки был, то она бы была дедушкой :)

0
Модератор
10068 / 3913 / 886
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
20.11.2020, 13:43
Для 3D обычно создают текстуру с символами и позиция каждого символа соответствует текстурным координатам на кваде (кажется так сделано к примеру в GTA Vice City). Если разных символов множество, можно просто отрисовывать тем же GDI на временной текстуре и целиком назначать ее на область отрисовки текста. Это если нужна поддержка старых систем. Для новых есть DirectWrite/Direct2D которые уже "из коробки" позволяют рисовать на Direct3D поверхности.
0
Эксперт по электронике
7231 / 3410 / 347
Регистрация: 28.10.2011
Сообщений: 13,402
Записей в блоге: 7
20.11.2020, 14:11
Цитата Сообщение от Замабувараев Посмотреть сообщение
Ну объясните, в чём трёхмерность таких элементов управления? В том, что что у них фон чёрный, а буквы белые?
Дело не в трехмерности элементов управления, а в том что вы предлагаете стандартные контролы винды (создаваемые WinAPI функциями CreateWindow и др.) встроить в 3D графику. Покажите пример как это делается.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Если процессор бы умел так же быстро обсчитывать 2Д проекцию, то ОпенГёл могла бы внутри себя вызывать ГДИ.
Тогда зачем вы предлагаете это делать?
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
20.11.2020, 14:53
Цитата Сообщение от locm Посмотреть сообщение
стандартные контролы винды (создаваемые WinAPI функциями CreateWindow и др.) встроить в 3D графику
3Д графика не висит в воздухе, а рисуется в окне. Берёте HWND окна, на котором рисуется 3Д графика и создаёте в ней дочернее окно через CreateWindow:

Code
1
2
3
4
5
6
7
8
9
10
hwndEdit = CreateWindow( _
    WC_EDIT, _
    "Текст в элементе управления", _
    WS_CHILD Or WS_VISIBLE Or WS_TABSTOP Or ES_LEFT Or WS_CLIPCHILDREN Or WS_CLIPSIBLINGS, _
    X, Y, Width, Height, _
    hWndParent, _
    Cast(HMENU, IDC_EDT_CONTROL), _
    hInst, _
    NULL _
)
Здесь:
hWndParent — это HWND родительского окна;
IDC_EDT_CONTROL — идентификатор элемента управления, назначаемый программистом.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.11.2020, 14:53

XML не читает русский ввод
Доброго времени суток. Есть такая флешка : два ActionScripts: 1: import flash.display.*; function...

Посчитать сколько раз встречается каждая буква(русский ввод)
В общем написал исходник , работает не правильно. Подскажите где ошибка. #include <iostream.h> #include <string.h> ...

Xcode , С++ и русский язык: как вывести в файл русский текст без сбитой кодировки?
Как сделать так, чтобы после некоторых манипуляций в файл выводился русский текст без сбитой кодировки?

Русский и не русский языки
Коллеги нужна ваш помощь... Есть сайтик... На нем два языка -русский и не русский... Реализованно так пользователь выбирает нужный...

Русский или не русский
Продолжая с многоязыковастью на сайте у себя разбиратся.... Возник такой вопрос... Обязательно ли разные языковые версии разносить по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе. Самым главным критерием для меня было создание паролей, в котором отсутствуют знаки: | 1 l I Обработка содержит реквизиты: -. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него. https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952 Инструкция внутри. https:/ / youtu. be/ VpfFZSUDGnQ. . .
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru