![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Гость_Nikolay |
|
|||
|
Unregistered |
Уважаемые товарищи, подскажите пожалуйста, делаю маленькую программу, альтернативу стандартному блокноту Windows, которая может открывать текст как Windows(cp1251) так и в DOS(cp866) кодировках, т.к. часто приходиться открывать текстовые файлы в обеих кодировках, но проблема в следующем:
Если я использую XPManifest, то текст в Memo, в котором он отображается, ВСЕГДА выводится в Windows кодировке Вопрос: как можно добиться того, чтобы используя XPManifest текст в Memo можно было переключать в DOS кодировку? Или может быть визуальные стили можно применить выборочно к отдельным компонентам TButton, TEdit, TGroupBox, TComboBox и т.д. исключая TMemo, только я не знаю как это сделать и возможно ли это. Слышал что-то про Theme API, но никак не пойму как этим можно воспользоваться |
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
Может функция такая подойдет:
Добавлено @ 12:36 Вообще, по кодировкам можно найти инфу тут: http://forum.vingrad.ru/index.php?showtopic=22229 |
|||
|
||||
| Гость_Nikolay |
|
|||
|
Unregistered |
Pakshin A. S.
К сожалению Ваш код не работает, но я думаю не в нём дело, а в самом Memo. Например попробуйте это, откройте текстовый файл в DOS кодировке:
P.S. Windows XP + Delphi 7 |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
И будет тебе счастье -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Гость_Nikolay |
|
|||
|
Unregistered |
Alex
Всё работает, спасибо большое! |
|||
|
||||
| Гость_Nikolay |
|
|||
|
Unregistered |
Я поторопился с выводами, простите, но Ваш вариант НЕ РАБОТАЕТ. Это только на первый взгляд он выглядит рабочим, а на самом деле всё не так. Дело в том, что ВСЕ таблицы или схемы, выполненные в DOS кодировке, просто трансформируются непонятно во что, а читаемым остаётся только текст Такое решение не годится, нужно чтобы и текст, и таблицы и нарисованные схемы в DOS кодировке были читаемы и отображались в своём оригинальном виде, как без использования манифеста в моём примере! Может есть какие-то другие варианты? Заранее огромное спасибо. |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Нужно просто ставить шрифт, в котором ширина символов одинаковая -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Нет, символы DOS-псевдографики (двойная верт. линия, двойная гориз. линия, стрелки и т.д.) не могут быть отображены в Windows кодировке, эта ф-ция здесь навряд ли поможет, т.к. работает только наполовину, отображая только текст |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
пример файла дай
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Гость_Nikolay |
|
|||
|
Unregistered |
Alex
Спасибо Вам огромное за помощь, мне даже как-то неудобно за это Вот небольшой файл-схемка в cp866 кодировке, в Memo для просмотра использовал шрифт Lucida Console. С манифестом можно посмотреть если изменить шрифт на Terminal, но тогда возникает другая проблема, в нём нет кириллицы Ещё в голову пришла мысль, если ничего не получится, думаю попробовать собрать свой шрифт из двух: Lucida Console и Terminal, засунуть его в ресурсы программы и использовать только во время её работы. Такое возможно, не устанавливать шрифт в систему? |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Бестолковое занятие. Люсида и терминал всегда есть в системе.
И вообще это стандартный способ просмотра дос текста в блокноте - сменить шрифт на терминал. А другого варианта просмотра псевдографики я не вижу. Кроме того хотел бы я посмотреть, как ты будешь запихивать шрифт терминал в свою программу :-) Для начала его придется найти... Можно правда попробовать найти шрифт где-нить в инете. Есть шрифты в дос кодировке. |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Да найти-то не проблема %WINDIR%\Fonts\8514oem.fon, app850.fon устанавливаются начиная с Windows 95. В этом случае я имел ввиду, что попробовать полностью сделать свой шрифт, например на базе app866.fon, в котором бы литеры соответствовали порядку как в .ttf шрифтах, т.е. недостающие символы добавить, расставить знаки на "свои" места. И потом использовать ЭТОТ "расширенный" шрифт (TerminalEx ;)) во время работы своей программы, а не стандартный Terminal стоящий в системе ;) Только растровые шрифты немного уродливы, хотелось бы .ttf - Lucida Console. Ещё, дело в том, что на Memo с Lucida Console (скорее всего и на любой другой .ttf шрифт) с OEM_CHARSET негативно влияет XP Manifest, без манифеста всё выводится _как нужно_ шрифтом Lucida Console! Может подскажешь как это побороть? |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Этому коду все равно, есть XPMan или его нету. Идея заключается в том, что файл переводится в юникод, а вот его уже memo просто обязано отобразить нормально. P.s. Идею предложил Петрович. -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Гость_Nikolay |
|
|||
|
Unregistered |
Alex
У меня вышеприведённый код не работает Спасибо Вам огромное за помощь, но думаю нужно плюнуть на это дело и считать задачу нерешаемой в случае использования манифеста. Я отказался от его использования. |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
ты мне брось не работает, все там работает, ты под какими виндами сидишь?
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |