Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, При переходе на новую версию Delphi неизбежны баги - поэтому нужно будет параллельно вести две версии на D7 и D2010. Так что тупо Search и Replace не вариант. Надо переписывать проект - чтобы он компилировался в D7 - но при этом без изменений также компилировался в D2010 (только потом, когда сборка будет стабильной на 2010 можно будет отказаться от D7 совсем). Ну или изменения должны быть такие, чтобы нужные куски кода переключались специальной директивой - например, {$IFDEF Delphi2010} ................. {$ELSE} ................. {$ENDIF} Заменять в каждом модуле {$I AllVcl.pas} на кучу мусора в виде списка модулей в нём - конечно, не проблема (и даже не Search&REplace, а скриптом на AutoIt или на том же Delphi) - но как-то не представляется это правильным и красивым решением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2021, 13:13 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Анна Петровна Разумеется, это уже сделала - причем программа задаёт вопрос пользователю сначала об изменении языковых настроек, а потом о перезагрузке компьютера, а не просто меняет системные настройки и следом перезагружает систему. Зачем делать самостоятельно? Может лучше пользователю вывести инструкцию как что делать или даже ссылку в интернет с более подробным изложением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2021, 13:19 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Анна ПетровнаНадо переписывать проект - чтобы он компилировался в D7 - но при этом без изменений также компилировался в D2010 (только потом, когда сборка будет стабильной на 2010 можно будет отказаться от D7 совсем). Ну или изменения должны быть такие, чтобы нужные куски кода переключались специальной директивой - например, Вам стоит познакомиться с системами контроля версий. GIT, например. Тогда в процитированном бреде отпадёт нужда. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2021, 13:21 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
avp_ Зачем делать самостоятельно? Может лучше пользователю вывести инструкцию как что делать или даже ссылку в интернет с более подробным изложением. Ну тогда пользователь точно ничего делать не будет - или как минимум, это отсечёт сразу половину пользователей. Так как пользователи ленивые, чтобы в чём-то разбираться. Решение менять программно - предупредив пользователя - наилучшее. Как я вижу - чтобы минимизировать риск потери пользователя - тут решения два - менять программно и перезагружать, не спрашивая пользователя или делать то же самое - но пользователя спрашивать + на случай если пользователь откажется - добавить немного костылей чтобы всё хоть как-то работало пусть и с багами и с крязозябрами в некоторых местах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2021, 13:25 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Вам стоит познакомиться с системами контроля версий. GIT, например. Тогда в процитированном бреде отпадёт нужда. Увы, в этом я тёмный лес :( да и времени нет тут бы с переходом на новую версию Delphi надо разобраться какой ещё GIT ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2021, 13:26 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Ну правильно, времени нет потому что вы его тратите на кривые костыли. Ваше право. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2021, 13:40 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Анна Петровна ... На 2010 в комплекте есть исходники VCL? Очень нужно чтобы перенести костыли с 7 на 2010. У меня в комплекте с 2010 только dcu. Подозреваю, Embarcadero в 2010 закрыла исходный код VCL, распространяя только DCU. В XE2, XE8, XE10 - кстати исходники есть, как и в 7. А вот в 2010 нет. Вот теперь и думаю, или это целенаправленная политика Embarcadero в 2010 (от которой они потом отказались) или это просто у меня кривая 2010. ... 22305466 Только по-моему нет особого смысла переходить именно на неё, можно и на что-то более позднее. Если хотите что-то относительно старое, то например XE3. Сам долго пользовался 2010, сейчас XE3, пары существенных для меня багов в ней нет по сравнению с 2010. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2021, 13:54 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
s62 Только по-моему нет особого смысла переходить именно на неё, можно и на что-то более позднее. Если хотите что-то относительно старое, то например XE3. Сам долго пользовался 2010, сейчас XE3, пары существенных для меня багов в ней нет по сравнению с 2010. Что за баги в 2010? У 2010 перед XE8 ещё есть преимущество в нетребовательности к ресурсам. Запускается быстро, даже на виртуалках, а XE8 - серьезный проект, который кучу гигов места занимает и который для комфортной работы требует хороший и дорогой ноутбук (который еще довольно непросто выбрать чтобы всё устраивало) с SSD, 8-16 Гб оперативы и прочее. А D7 и на обычном ноуте за 500$ с Intel Core i3, 4 Гб памяти даже без SSD приемлемо работает. А с SSD вообще шикарно. И 2010 по идее должен быть менее требовательным чем XE8/10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2021, 14:17 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
08.04.2021 14:17, Анна Петровна пишет: > А D7 и на обычном ноуте за 500$ с Intel Core i3, 4 Гб у меня на старом Celeron-е с 3ГБ памяти на виртуалке (ХР) под Линухом вполне приемлемо крутится. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2021, 14:21 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Вообще мое предложение было такое Код: pascal 1. 2. 3. 4. 5. 6. в идеале, конечно, сделать .inc файлы самодостаточными, т.е. содержащими "uses" и ";", тогда все упростилось бы до Код: pascal 1. 2. 3. 4. 5. 6. Но после вот этого Анна Петровна AllVcl.pas убирать нельзя, так как на нем базируется MyUnits.pas. В этом и проблема. Если бы D2010 не трогал секцию USES как D7 всё было бы нормально. уже становится неохота что-то советовать. Ибо как-то озадачивает, что сплайсинг мы могём, а вот отличать механизм подключения модулей в Дельфи от сишных инклюдов - нет. Для справки, подключенное внутри модуля влияет только на этот модуль и недоступно извне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2021, 14:41 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Анна Петровна И ещё ситуация - если в AllVcl.pas надо будет добавить новый модуль - это делается простой правкой файла AllVcl.pas - а не надо будет лазить по всем модулям и добавлять. Пример ситуации, когда "в AllVcl.pas надо будет добавить новый модуль", не меняя остальной код всех форм - ? Анна Петровна И разумеется, хочу перейти на Delphi 2010. Но вот мои USES {$I AllVcl.pas}, {$I MyUnits.pas}; в каждом модуле очень этому мешают. Все правильно, подобная проктостоматология и должна заставлять авторов неимоверно страдать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2021, 14:47 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий 08.04.2021 14:17, Анна Петровна пишет: > А D7 и на обычном ноуте за 500$ с Intel Core i3, 4 Гб у меня на старом Celeron-е с 3ГБ памяти на виртуалке (ХР) под Линухом вполне приемлемо крутится. Не знаю, но мне для нормальной работы даже с Delphi 7 нужен ноутбук чтобы было не менее 8 Гб RAM и SSD. Иначе работа превращается в ад. Ведь ещё пара браузеров запущены, разные FAR-менеджеры, Office, PDF-Reader-ы и прочее. C Delphi XE10 вообще всё печально в этом случае - либо нужен хороший ноутбук от 16 Гб RAM, Intel Core i7 (при этом не на каждом ноутбуке есть даже 8 Гб, с а 16 вообще найти проблематично, список решений сильно сужается (а у разных моделей есть свои недостатки например неудобный тачпад, большой вес или что-то еще) и вообще они дорогущие), либо комп (ведь речь идёт не о том, чтобы просто запустить -а о том, чтобы нормально работать). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2021, 14:48 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Анна Петровна Что за баги в 2010? ... Я сталкивался с таким. Первое, периодически при открытии окна редактора SQL для какого-нибудь Dataset'а возникало AV и бесконечно появляющееся окно - закрываешь его, открывается новое. Так что приходилось закрывать Delphi через диспетчер задач. Было это нерегулярно, то долго нет, то чаще. В XE3 насколько помню, с таким не сталкивался. Второе, это скорее фича, а не баг. Delphi при запуске создает в папке временных фалов один файл шрифта и после какого-то обновления Windows 7 (а может и других версий Windows) система этот файл блокирует от удаления. Если закрыть Delphi и заново запустить в одной сессии Windows, то при запуске - ошибка. Это описанная проблема . Как решение читал предложение какой-то bat-файл создавать, чтобы он запускался по-моему при старте Delphi и обходил это. Я такого не делал, просто вручную переименовывал этот файл, удалить его Windows не давала, а переименовать - да. В принципе перезапускать IDE часто необходимости нет, но когда сочетался первый баг с этим вот моментом, то вот лишний гемор был. В XE3 такого нет. Про меньшую устойчивоcть 2010 тут и другие писали, так что наверное и что-то другое есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2021, 14:49 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Fr0sT-Brutal уже становится неохота что-то советовать. Ибо как-то озадачивает, что сплайсинг мы могём, а вот отличать механизм подключения модулей в Дельфи от сишных инклюдов - нет. Сплайсинг, по-видимому, тоже не особо могём, иначе бы не было столько вопросов :( Fr0sT-Brutal Для справки, подключенное внутри модуля влияет только на этот модуль и недоступно извне. Чтобы подключить сразу все нужные модули - и не задумываясь - подключен ли конкретный модуль к данной форме - в любой форме где нужно - например, писать в коде CreateOleObject('Excel.Application') без необходимости вспоминать, что надо ещё прописать в USES ComObj или как он там называется и т. д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2021, 14:55 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Fr0sT-Brutal Все правильно, подобная проктостоматология и должна заставлять авторов неимоверно страдать. Увы, не совсем очевидно что это "проктостоматология" - по крайней мере, в свое время казалось - что это наоборот - очень удачное решение. Вместо того, чтобы плодить мусор - подключать все необходимые модули сразу одной командой. Разработчики Delphi посчитали по-другому и затруднили так делать в новых версиях но кто ж знал, что так будет ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2021, 14:58 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Анна Петровна Сплайсинг, по-видимому, тоже не особо могём, иначе бы не было столько вопросов :( Там дело-то вообще не в этом. GetACP возвращает системную настройку вам. От того, что вы её замените на свою функцию ничего не изменится - потому что кроме вас её никто и не использует. Все системные функции, которым говорят "используй ACP" - просто читают настройку напрямую, им не нужна для этого функция. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2021, 15:47 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Анна Петровна Не так уж и много костылей получается. ... Там можно и прописать новый вариант ShowMessage и прочего, что перекроет стандартные методы. Дело вообще ни разу не в ShowMessage, а в строковых константах как таковых. Исправлять нужно их, а не ShowMessage. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2021, 15:49 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
GunSmoker Дело вообще ни разу не в ShowMessage, а в строковых константах как таковых. Исправлять нужно их, а не ShowMessage. Да, глючить будет в некоторых местах - но по крайней мере будет хоть как-то работать - да и над уменьшением багов тоже можно работать, создавая различные обёртки с преобразованием Ansi в Utf8 и обратно. А не просто тупо сплошные крякозябры везде. Но ведь при запуске программы пользователя предупреждаем, что нужно сменить языковые настройки - иначе будут проблемы - так что с этим проблем нет - пользователь поработает пару дней в программе, а потом всё же сменит настройку. Но по хорошему конечно да, лучше не мучать пользователя и себя, а переходить на Delphi 2010. Осталось только найти решение с USES ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2021, 16:23 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
GunSmoker Дело вообще ни разу не в ShowMessage, а в строковых константах как таковых. Исправлять нужно их, а не ShowMessage. Исправлять, бегая по всему коду программы совсем не вариант - это еще сложнее будет, чем переход на D2010. Как временные костыли вижу только создавать преобразователи AnsiToUtf8 и обратно для обращений к VCL - и параллельно готовить проект к переходу на D2010. А внутри программы вся логика как и раньше в ANSI Windows-1251. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2021, 16:27 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
GunSmoker Там дело-то вообще не в этом. GetACP возвращает системную настройку вам. От того, что вы её замените на свою функцию ничего не изменится - потому что кроме вас её никто и не использует. Все системные функции, которым говорят "используй ACP" - просто читают настройку напрямую, им не нужна для этого функция. Если найти, откуда GetACP берёт значение и поменять его в оперативной памяти - почему-то заканчивается это всё Access Violation и вылетом программы на Windows 10, хотя на Windows 7 прокатывает. По-любому причём Access Violation происходит не в момент перезаписи ячейки, а уже потом, когда какой-то код (тот же ShowMessage) обращается к изменённой ячейке памяти и пытается что-то делать с этим 1251. Не в момент перезаписи Access Violation происходит - потому что если записать в ячейку DWORD:1251, а потом сразу же DWORD:65001 - Access Violation не происходит. Я полагаю, там какой-то код, который ищет данные для кодировки 1251 и просто их не находит, так как их просто нет - по крайней мере, просто изменить в ячейку памяти 65001 на 1251 не прокатывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2021, 16:36 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Вам стоит познакомиться с системами контроля версий. GIT, например. Тогда в процитированном бреде отпадёт нужда. А если я не пользуюсь GIT, но пользуюсь WinMerge для сравнения изменений по версиям - это нормально или всё равно не то? Программа сравнивает 2 каталога и изменения в файлах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2021, 17:35 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
08.04.2021 17:35, Анна Петровна пишет: > > А если я не пользуюсь GIT, но пользуюсь WinMerge для сравнения изменений по версиям - это нормально или всё равно не то? > Программа сравнивает 2 каталога и изменения в файлах. так вы теряете "хронологию". а при использовании git, или svn - все ходы записаны. и можно легко откатиться к любой ревизии. кроме того, можно параллельно вести несколько веток проекта. переключаться между ними, сливать воедино, снова расщеплять и т.д. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2021, 17:39 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Анна Петровна Увы, не совсем очевидно что это "проктостоматология" - по крайней мере, в свое время казалось - что это наоборот - очень удачное решение. Вместо того, чтобы плодить мусор - подключать все необходимые модули сразу одной командой. Разработчики Delphi посчитали по-другому и затруднили так делать в новых версиях но кто ж знал, что так будет ... *рукалицо* Если прогер считает, что список подключаемых модулей - это мусор, и при добавлении некой новой функции ему лениво подключить модуль с ней - ну, тогда я умываю руки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2021, 17:41 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Анна Петровнаэто нормально или всё равно не то? Это закат солнца вручную. Любая СКВ вам позволит влить багфиксы из ветки старой версии в новую с минимальными трудозатратами. А вы потратите кучу времени на то чтобы сравнить две версии старой ветки и воспроизвести те же действия в коде новой ветки. Но, как говорится в анекдоте, "не жили хорошо, не стоит и начинать". Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2021, 17:43 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Кажется, нашла решение что делать с USES {$I AllVcl.pas} Вместо Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs там в AllVcl.pas надо написать {$IFDEF Declared Windows} Windows,{$ENDIF} {$IFDEF Declared Messages} Messages,{$ENDIF} {$IFDEF Declared SysUtils} SysUtils,{$ENDIF} ........................... Тогда то, что Delphi будет вставлять всякую требуху в начало USES - дублируя то, что прописано в AllVcl.pas - никак не будет мешать - ошибки Unit redeclared не будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2021, 17:55 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=40060749&tid=2037376]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
75ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 285ms |
| total: | 451ms |

| 0 / 0 |
