Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Иероглифы вместо русских букв в ActionMenu Delphi 7 / 19 сообщений из 19, страница 1 из 1
26.09.2015, 02:05
    #39061770
Conejo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иероглифы вместо русских букв в ActionMenu Delphi 7
Столкнулась с неприятной проблемой - на новом компьютере в Д7 в одном месте некорректно отображаются русские шрифты. Причем в самом меню буквы читаются нормально, а внутри компонента - вот так:



Проект не битый - лежит в дропбоксе и на других компах открывается нормально.
Что уже предпринималось:
1. Добавление недостающих шрифтов в систему (в качестве образца взят комп, на котором все работает. Система и там и там Win10)
2. Проверка установок системы - выставлен "русский" везде где только можно
3. Переустановка дельфи.
Все пока осталось как было.
А, да, - 4. по совету гугла пыталась в реестре менять кодовую страницу с 1250 на 1251 и с 1251 на 1252 в разных комбинациях, тоже не помогло.

Что еще можно сделать?
...
Рейтинг: 0 / 0
26.09.2015, 02:14
    #39061772
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иероглифы вместо русских букв в ActionMenu Delphi 7
Conejo,

Пересохранить DFM.
...
Рейтинг: 0 / 0
26.09.2015, 02:15
    #39061774
Conejo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иероглифы вместо русских букв в ActionMenu Delphi 7
DarkMaster,
Проект лежит в дропбоксе и на других компах открывается нормально. На тех же самых файлах, в т.ч. DFM
...
Рейтинг: 0 / 0
26.09.2015, 03:47
    #39061787
ProRockX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иероглифы вместо русских букв в ActionMenu Delphi 7
Conejo , хоть ты говоришь, что с реестром уже пробовала шаманить, но попытайся ещё раз сделать, в точности по инструкции, мне в подобной ситуации когда-то помогло:

Открываем редактор реестра, нажатием на "Пуск -> Выполнить" или комбинацией клавиш Win+R, после чего в открывшемся окошке пишем Regedit и нажимаем на клавиатуре на Enter.
Далее переходим в: HKEY_LOCAL_MACHINE -> System -> CurrentCo ntrolSet -> Control -> Nls -> Codepage
Здесь находим параметры, начиная от 1250 и до 1255
Теперь нам нужно заменить каждое значение этих параметров на "с_1251.nls". Например, если там было написано CP_1250.nls, то нам нужно изменить значение на CP_1251.nls
Закройте редактор реестра и просто перезагрузите компьютер.
...
Рейтинг: 0 / 0
26.09.2015, 03:57
    #39061791
ProRockX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иероглифы вместо русских букв в ActionMenu Delphi 7
Если не поможет, можно попробовать выполнить прикреплённый файл. Правда, сам я не проверял, но люди говорят помогло...
Поэтому на всякий случай, сделай копию реестра или точку восстановления перед его запуском.
...
Рейтинг: 0 / 0
26.09.2015, 10:39
    #39061848
Conejo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иероглифы вместо русских букв в ActionMenu Delphi 7
ProRockX,
Спасибо. Файл не помог.
А вот замена кодовой страницы в реестре на что-то влияет - характер кракозябр меняется. В частности, иногда названия категорий выглядят как названия actions сейчас, а actions - вертикальными жирными палочками. Нужную комбинацию кодовых страниц нащупать пока не удалось, и не понятно, существует ли она, может и не в этом дело.
...
Рейтинг: 0 / 0
03.10.2015, 15:56
    #39067636
Conejo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иероглифы вместо русских букв в ActionMenu Delphi 7
Проблему удалось решить только установкой русской версии системы. С нуля.
...
Рейтинг: 0 / 0
03.10.2015, 16:32
    #39067640
подован2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иероглифы вместо русских букв в ActionMenu Delphi 7
ConejoПроблему удалось решить только установкой русской версии системы. С нуля.
Как это? А до этого как было? Windows 10 English + MUI (т.е. русская локаль)?
...
Рейтинг: 0 / 0
04.10.2015, 14:48
    #39067879
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иероглифы вместо русских букв в ActionMenu Delphi 7
скорее всего нужно было выставить кодировку для неюникодовых программ, ну да уже ладно
...
Рейтинг: 0 / 0
02.08.2016, 18:53
    #39284851
Konstantin-78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иероглифы вместо русских букв в ActionMenu Delphi 7
makhaonскорее всего нужно было выставить кодировку для неюникодовых программ, ну да уже ладно

не это также не помогает,
программа на Delphi7, до Windows 10, с кириллицей на компонентах, в частности Label, было все нормально.
в десятке, благо у меня только по русски 2 label было, перевел.
Но дальше фигня большая, в Windows 8.1 и Windows XP, все это в иерогливах...
...
Рейтинг: 0 / 0
04.08.2016, 13:20
    #39286197
AsusMan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иероглифы вместо русских букв в ActionMenu Delphi 7
Обычно для XP предлагают
1.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
"1250"="c_1251.nls"
"1251"="c_1251.nls"
"1252"="c_1251.nls"
"1253"="c_1251.nls"
"1254"="c_1251.nls"
"1255"="c_1251.nls"
2.
в подразделе FontMapper указать, что подмножеством по умолчанию будет 204
(=0CCh):
"ARIAL"=dword:000000cc
"DEFAULT"=dword:000000cc

3. Поубивать всех турокив
%SystemRoot%\Fonts\
Подраздел FontSubstitutes
.....
"Times"="Times New Roman"
"Helvetica"="Arial"
"Arial CE,238"="Arial,238"
"Arial CYR,204"="Arial,204"
"Arial Greek,161"="Arial,161"
"Arial TUR,162"="Arial,162"
.....
"MS Shell Dlg"="MS Sans Serif"
"MS Shell Dlg 2"="MS Sans Serif"


После изменений следует перезагрузить Windows

4.Для Win7 часто помогает такой прием

В диалоге "Язак и региональные стандарты" на вкладке форматы
поменять формат с "Русский" на Английский, применить ОК
потом вернуть на Русский - ок.

Система копирует русские шрифты и настроит руссификацию.


5. Для совсем плохой ситуации Можно изменить исходники
Graphics.pas

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
var    // New TFont instances are intialized with the values in this structure:
  DefFontData: TFontData = (
    Handle: 0;
    Height: 0;
    Pitch: fpDefault;
    Style: [];
    Charset : 204; //DEFAULT_CHARSET;
    Name: 'MS Sans Serif');


Код: pascal
1.
2.
3.
4.
5.
6.
function GetFontData(Font: HFont): TFontData;
..
      if lfCharSet=1 then lfCharSet:=204; // 26.07.2013
      Charset := TFontCharset(lfCharSet);
..
end;



Код: pascal
1.
2.
3.
4.
function TFont.GetHandle: HFont;
..
          lfCharSet := Byte(Font.Charset);
          if lfCharSet=1 then lfCharSet:=204; // 26.07.2013 



Код: pascal
1.
2.
3.
4.
function GetDefFontCharSet: TFontCharSet;
..begin
  Result := 204; // DEFAULT_CHARSET;
..



Forms.pas
Код: pascal
1.
2.
3.
4.
5.
function TScreen.GetFonts: TStrings;
..
      LFont.lfCharset := 204;// DEFAULT_CHARSET;
      EnumFontFamiliesEx(DC, LFont, @EnumFontsProc, LongInt(FFonts), 0);
..
...
Рейтинг: 0 / 0
04.08.2016, 16:46
    #39286440
Konstantin-78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иероглифы вместо русских букв в ActionMenu Delphi 7
добрый день AsusMan,

Все попробовал, что Вы прелагали и к сожелению, ни чего не помогло:

-- В ХР у меня в реестре было все как показано у вас, вот только
в 3-ем пункте, вместо
"MS Shell Dlg"="MS Sans Serif"
"MS Shell Dlg 2"="MS Sans Serif"
было
"MS Shell Dlg"="Microsoft Sans Serif"
"MS Shell Dlg 2"="Tahoma"

и я не совсем понял, что значит "Поубивать всех турокив"?

-- Что касается у меня Windows 8.1, пробывал и даже "language for non-unicode programs" ставил в "Russian"

-- изменение исходников, по вашему варианту, также результата не принесло
...
Рейтинг: 0 / 0
04.08.2016, 20:58
    #39286627
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иероглифы вместо русских букв в ActionMenu Delphi 7
Konstantin-78,

уточни как и что делаешь. вот - создал проект, кинул label, сделал надпись, нормально видна? собрал, запустил - кракозябры? или как? с какого момента начинаются кракозябры? и есть ли какие-то компьютеры или среды где их нет? должно всё работать и без всего описанного шаманства, достаточно локаль указать. ну и винда живая должна быть, само собой.
...
Рейтинг: 0 / 0
05.08.2016, 11:24
    #39286980
Cobalt747
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иероглифы вместо русских букв в ActionMenu Delphi 7
Это только в дизайнере Д7 такая проблема?
...
Рейтинг: 0 / 0
05.08.2016, 14:51
    #39287266
Konstantin-78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иероглифы вместо русских букв в ActionMenu Delphi 7
Наверное так и должно быть.
Просто работал с приложением для запада, ну а раз так, то поставил в системе формат – "English" (у меня и системный язык - "English").
И забыл.
При содании русского приложения, у меня на моей машине все - ок. А на других ПК, там же все руссифицировано, - были кракозябры.

Просто теперь для работ с разными языками, нужно все время, при компиляции программ будет формат в системе менять (я с таким еще не сталкивался - теперь буду знать).

заметил эту штуку просто,: у меня на планшете стоит русская Windows 10 и конечно там все старые программы нормально отображаются, а на ПК стояла англ. Windows 10, и старые программы отображались тоже с кракозябрами
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
31.07.2018, 16:34
    #39681661
Brain1999
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иероглифы вместо русских букв в ActionMenu Delphi 7
У меня была похожая проблема в Menu Designer Delphi 2007 под WinXP. Помогло следующее:

AsusManОбычно для XP предлагают
1.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
"1250"="c_1251.nls"
"1251"="c_1251.nls"
"1252"="c_1251.nls"
"1253"="c_1251.nls"
"1254"="c_1251.nls"
"1255"="c_1251.nls"
2.
в подразделе FontMapper указать, что подмножеством по умолчанию будет 204
(=0CCh):
"ARIAL"=dword:000000cc
"DEFAULT"=dword:000000cc

3. Поубивать всех турокив
%SystemRoot%\Fonts\
Подраздел FontSubstitutes

это так и было:
"Times"="Times New Roman"
"Helvetica"="Arial"
"Arial CE,238"="Arial,238"
"Arial CYR,204"="Arial,204"
"Arial Greek,161"="Arial,161"
"Arial TUR,162"="Arial,162"
"MS Shell Dlg"="MS Sans Serif"


а это менял:
"MS Shell Dlg 2"="MS Sans Serif"


После изменений следует перезагрузить Windows




Спасибо за помощь!
...
Рейтинг: 0 / 0
01.08.2018, 18:25
    #39682190
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иероглифы вместо русских букв в ActionMenu Delphi 7
....помню, как таким "патчем реестра", который должен был русифицировать ICQ - напрочь убил Win2000. Пришлось переустанавливать.

А нельзя просто кириллицу в самой программе выставить ?

http://lazarus-ccr.sourceforge.net/docs/lcl/graphics/tfont.charset.html
...
Рейтинг: 0 / 0
02.08.2018, 13:32
    #39682553
Cobalt747
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иероглифы вместо русских букв в ActionMenu Delphi 7
Arioch,

а еще можно выставить дефолтный:
Код: pascal
1.
DefFontData.Charset := 204;
...
Рейтинг: 0 / 0
02.08.2018, 14:18
    #39682592
asutp2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иероглифы вместо русских букв в ActionMenu Delphi 7
Вариант с использованием самой свежей версии делфи, в которой нет всех этих проблем, не рассматривается?))))
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Иероглифы вместо русских букв в ActionMenu Delphi 7 / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]