Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2009, 10:51   #1
AnTe
Форумчанин
 
Регистрация: 25.09.2008
Сообщений: 209
Вопрос Англоязычная вИнда и своё приложение

Здравствуйте. У меня написано приличных размеров, громоздкое приложение, с десятком форм, под рускоязычную windows

на англоязычном оно отказывается нормально работать!

Вместо символов, на Tlabel и прочих контролах - знаки вопросов

Файл с русским именем Stringlist.LoadFromFile отказывается читать.., причём, сообщение "файл ???????.txt не найден" выводит так же вместо русских символов в имени файлов знаки вопроса

В проводнике windows русские имена отображаются прекрасно, и тот файл, который не найден, я прекрасно созерцаю.

Подскажите, пожалуйста, куда копать???
AnTe вне форума Ответить с цитированием
Старый 18.11.2009, 11:00   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Поставь на ту винду аглицкую нужный шрифт. Ms Sans Serif с рускоязычной должен подойти ну или какой там используется по умолчанию.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.11.2009, 11:21   #3
inndim
Пользователь
 
Регистрация: 08.06.2008
Сообщений: 74
По умолчанию

Тоже наступил на те же грабли, решений два:
1 - Самый надёжный способ перейти на Delphi 2009\2010, ибо в обейх используется unicode, и проблемы со шрифтами должны отпасть, правда ваше приложение можно будет запустить после этого на винде не ниже ХР.

2 - Выбрать в своём приложении для всех контролов шрифт Ms Sans Serif кирилический, после чего при запуске своего приложения один раз изменить кодовую страницу винды таким макаром:
Код:
  reg := TRegistry.Create;
  reg.RootKey := HKEY_LOCAL_MACHINE;
  reg.OpenKey('System\CurrentControlSet\Control\Nls\Codepage',true);
  reg.WriteString('1250', 'C_1251.nls');
  reg.WriteString('1252', 'C_1251.nls');
Таким образом используя этот способ можно обойтись без установки своего шрифта в инде, ибо русский шрифт Ms Sans Serif уже присутствует в англ.винде, просто нужно сменить кодовую страницу.
И чуть не забыл добавить один печальный момент, потребуется перезагрузка винды.

p.s.
Если помог, нажми весы внизу слева под ником.

Последний раз редактировалось inndim; 18.11.2009 в 11:23.
inndim вне форума Ответить с цитированием
Старый 18.11.2009, 11:35   #4
Usov
Форумчанин
 
Аватар для Usov
 
Регистрация: 29.09.2009
Сообщений: 228
По умолчанию

я на window server 2003 делал так:
1) в проге свое вообще ничего не менял
2) в панели настроек в язык и региональные стандарты на последней закладке выбрал русский язык
3) отметил птичкой кодовую страницу 1251
И все чудесно заработало.
Usov вне форума Ответить с цитированием
Старый 18.11.2009, 13:18   #5
inndim
Пользователь
 
Регистрация: 08.06.2008
Сообщений: 74
По умолчанию

Цитата:
Сообщение от Usov Посмотреть сообщение
я на window server 2003 делал так:
1) в проге свое вообще ничего не менял
2) в панели настроек в язык и региональные стандарты на последней закладке выбрал русский язык
3) отметил птичкой кодовую страницу 1251
И все чудесно заработало.
Ага, и каждого пользователя программы с англ.виндой будем просить проделать эти шаги? это не выход.
inndim вне форума Ответить с цитированием
Старый 19.11.2009, 04:37   #6
AnTe
Форумчанин
 
Регистрация: 25.09.2008
Сообщений: 209
По умолчанию

Usov, спасибо! Точно, кодовая страница. Если я правильно понимаю, inndim предложил, как это же самое сделать программным путём?

Цитата:
Сообщение от inndim Посмотреть сообщение
2 - Выбрать в своём приложении для всех контролов шрифт Ms Sans Serif кирилический
А это обязательно? Во-первых, контролов несколько сотен на десятке форм. Во-вторых, шрифт у них "Ms Sans Serif" без cyr



Цитата:
И чуть не забыл добавить один печальный момент, потребуется перезагрузка винды.
Меня ещё интересует вопрос, не потребуется ли установочный диск?
его точно нету

у иностранцев куча компов с англицкой ХР, да куча ноутбуков с вистой и прочей фигнёй, неизвестного происхождения

подошёл бы даже вариант с ручной установкой нужного на всех компах

ммм... а может этого хватит?
Цитата:
Сообщение от Stilet Посмотреть сообщение
Поставь на ту винду аглицкую нужный шрифт. Ms Sans Serif с рускоязычной должен подойти ну или какой там используется по умолчанию.
кстати, знаки "???" стоят и там, где англицкие букофки

сейчас поищу в местной сети виртуалку с английской виндой

Последний раз редактировалось Stilet; 23.11.2009 в 12:25.
AnTe вне форума Ответить с цитированием
Старый 19.11.2009, 11:05   #7
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Подозреваю это XP ну или возможно Vista. Ищите Unicode шрифт, и проверяйте что он установлен на целевой системе
BOBAH13 вне форума Ответить с цитированием
Старый 19.11.2009, 12:05   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
перевести всю междурожу
А по русски?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.11.2009, 11:24   #9
AnTe
Форумчанин
 
Регистрация: 25.09.2008
Сообщений: 209
По умолчанию

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

Буквы английские стали английскими.

Но.. осталась проблема с русскими буквами. Заместо них белиберда.

* CodePage 1251 - включена. На всякий случай в региональных настройках включил Russian - не влияет.

* Шрифт в делфи используется ms Sans Serif, наборы шрифтов ms Sans Serif на обоих компах с виду одинаковы

* В делфи Charset у контрола переключал с DEFAULT_CHARSET на ANSI_CHARSET - бесполезно.

Что можно сделать? Ума не приложу, в чём проблема.

Скриншоты прилагаю. Те, в имени которых есть "EN" - сделаны на виртуалке с англицкой вендой.
Вложения
Тип файла: rar Krokozyabry_in_en.rar (378.1 Кб, 9 просмотров)

Последний раз редактировалось AnTe; 23.11.2009 в 11:28.
AnTe вне форума Ответить с цитированием
Старый 23.11.2009, 12:04   #10
AnTe
Форумчанин
 
Регистрация: 25.09.2008
Сообщений: 209
По умолчанию

Цитата:
Сообщение от rghkt Посмотреть сообщение
Ты хочешь чтоб под английской осью у тебя были русские буквы? Тогда что это вообще за винда? Уникод есть? И как компилишь? Под уникод?
Delphi 7, безо всяких юникодов.

венда отсюда SW_CD_Windows_XP_Professional_32BIT _English_ISO_MLF_X15-05160.ISO http://akamdub.fullproduct.download...._X15-05160.ISO

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

блин, или я чего-то торможу, с теорией? проводник в юникодах работает?
AnTe вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как закрыть своё приложение??? TwiX Общие вопросы Delphi 26 10.12.2019 02:20
Задача:в вижуал с++ Разработать приложение-сервер и приложение (смотри дальше сообщение) Мила777 Фриланс 2 21.10.2009 11:05
Как изменить своё имя? Манжосов Денис :) О форуме и сайтах клуба 11 22.07.2008 11:16
Своё окно в трее Altera Общие вопросы Delphi 10 02.07.2008 10:17
своё PopupMenu1 на WebBrowser1 beegl Компоненты Delphi 9 12.06.2008 12:20