Вверх ↑
Этот топик читают: Гость
Ответов: 106
Рейтинг: 0
#1: 2021-09-22 16:45:42 ЛС | профиль | цитата
Скажите плиз, как сделать чтобы вставляя русский текст в listbox или editbox отображались не знаки вопроса, а вставлялся русский текст корректно?
карма: 0

0
Ответов: 4628
Рейтинг: 749
#2: 2021-09-22 16:49:52 ЛС | профиль | цитата
Перед копированием текста в буфер обмена из оригинального поля ввода переключить раскладку клавиатуры на русский язык. После этого вставляться будет нормально.
карма: 26

0
Ответов: 106
Рейтинг: 0
#3: 2021-09-23 16:44:03 ЛС | профиль | цитата
Netspirit писал(а):
Перед копированием текста в буфер обмена из оригинального поля ввода переключить раскладку клавиатуры на русский язык. После этого вставляться будет нормально.

Ого, а по другому никак вообще? Просто пользователь не поймет... Скажет, чо за дичь такая))))
карма: 0

0
Ответов: 4628
Рейтинг: 749
#4: 2021-09-23 17:19:24 ЛС | профиль | цитата
Это глюк винды. Возникает когда текст копируется из юникодной программы в неюникодную.

Можно свою программу скомпилировать в Unicode, но для этого надо настроить у себя юникодные пакет и компиляторы HiAsm, плюс возможно переделать программу.

Редактировалось 1 раз(а), последний 2021-09-24 14:02:03
карма: 26

0
Ответов: 106
Рейтинг: 0
#5: 2021-09-24 01:06:04 ЛС | профиль | цитата
Netspirit писал(а):
Это глюк винды. Возникает когда текст копируется из юникодной программы в неюникодную и обратно.

Можно свою программу скомпилировать в Unicode, но для этого надо настроить у себя юникодные пакет и компиляторы HiAsm, плюс возможно переделать программу.

А переделкой компонентов нельзя обойтись? к примеру combobox..

Редактировалось 1 раз(а), последний 2021-09-24 01:06:29
карма: 0

0
Ответов: 4628
Рейтинг: 749
#6: 2021-09-24 14:52:27 ЛС | профиль | цитата
Нельзя, так как они являются надстройкой над стандартными оконными элементами Винды (полем ввода). Которая и обеспечивает работу комбинации Ctrl+C/Ctrl+V и контекстного меню "Копировать"/"Вставить". Ну, попытаться перехватить комбинации клавиш или приделать своё меню - можно. А помещать текст в буфер обмена с помощью компонента Clipboard (попробовать).

Только что попробовал возпроизвести поведение на Windows XP - и не получилось. Копирование/вставка между Unicode и ANSI программами проходит успешно, хотя в буфере обмена видно что формат CF_TEXT сконвертированный неправильно (согласно CF_LOCALE для английского языка 0409h, лежащей там же). CF_UNICODETEXT содержит правильный текст.

Предполагаю, копируемый текст сохраняется в CF_UNICODETEXT, затем конвертируется в CF_TEXT для неюникодных программ с помощью кодировки CF_LOCALE (а CF_LOCALE соответствует текущей раскладке клавиатуры во время копирования). ANSI программы при вставке используют CF_TEXT, что и даёт "крякозябры".



Редактировалось 3 раз(а), последний 2021-09-24 15:37:42
карма: 26

0
Ответов: 783
Рейтинг: 168
#7: 2021-09-24 18:29:21 ЛС | профиль | цитата
Может это поможет?
http://delphimaster.net/view/1-1139500353/all

http://delphimaster.net/view/1-1139210575/%20(%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D0%B5%20[7]).
карма: 15

0
7
Сообщение
...
Прикрепленные файлы
(файлы не залиты)