Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Анна Петровна Кстати, с переходом на Delphi 2010 гадость обнаружилась. Не даёт собака писать длинные процедуры. Выдаёт ошибку E2283 Too many local constants. Use shorter procedures приходится разбивать длинную процедуру на несколько более коротких А можно взглянуть на такую процедуру? Анна Петровна Чем-то напоминает глупое ограничение еще из Турбо Паскаль - размер кода не должен превышать 64 килобайта. Смешно - но изучая Турбо Паскаль в свой время - столкнулась с этим ограничением (не более 64 Кб кода) буквально на 7-й день изучения. Используя многократно Copy&Paste это совсем даже не удивительно. А вот за посмотреть на такое я бы даже денег заплатил. 7-й день, 64 тысячи символов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2021, 12:05 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Анна Петровна E2283 Too many local constants. Use shorter procedures Если "ну, вот прям позарез" надо хранить текстовые строки внутри программы, то оформите это как ресурс. Создайте RES-файл: Код: pascal 1. добавьте его в программу: Код: pascal 1. загружайте по мере надобности с помощью FindResource и LoadResource. Но лучше хранить текстовые данные во внешних XML-файлах. Быстро загружаются, имеют гибкую структуру, универсальный формат. И в Delphi 2010 есть все необходимые инструменты для работы с XML. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2021, 14:21 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
LocksmithPC А вот за посмотреть на такое я бы даже денег заплатил. 7-й день, 64 тысячи символов... Этого кода, увы, уже нет. На 7-й день изучения программирования, разумеется, мне были неизвестны такие вещи как работа с файлами. И даже работа с массивами. Но зато очень хорошо было известно, что такое Copy&Paste. Скопировать, вставить, а потом что-то поменять в скопированном коде. Время было начало 2000-х, никто нигде ничего не мог подсказать - и Интернета нормального небыло. Спрашиваю у учительницы по информатике в школе - что делать не дает злой Турбо Паскаль писать код более 64 Кб (а у меня на компьютере целых 128 мегабайт оперативы, как так-то, что за дурацкие ограничения) - она офигела какие 64 килобайта о чем вы никогда с таким не сталкивалась, а тут уже на 7-й день ... и ничего не может предложить. Отец у своего знакомого программиста тогда спросил, что делать - он ответил, пусть разбирается с модулями. Разобралась через 2-3 месяца только, модули оказалась для меня жутко сложная штука тогда. А через год, в 11-м классе (когда уже код тоже был некрасивым, но не таким диким, как в первые дни) - ради интереса попробовала сократить этот код, что был написан - получилось в 10 раз короче исходного и делает то же самое, причем меньше глючит при этом. В 11-м классе прикол был. Учительница информатики объясняет функция random от 10 возвращает значения от 1 до 10. Я не удерживаюсь и говорю - нет, от 0 до 9 (это мне уже после месяца начала изучения Турбо Паскаля было известно). Спорили около 5-10 минут, я продолжаю отстаивать свою позицию и не сдаюсь. Ну что делать - подошли к компу, написали программу, действительно выдает от 0 до 9. Учительница, собака, затаила злобу и поставила годовую оценку по информатике 4, а не 5. Реву было тогда много от такой несправедливости но что сделаешь учительница может знать меньше, но ведь она тебе оценки ставит, а не ты ей ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2021, 15:57 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
crossa Анна Петровна E2283 Too many local constants. Use shorter procedures Если "ну, вот прям позарез" надо хранить текстовые строки внутри программы, то оформите это как ресурс. Создайте RES-файл: Код: pascal 1. добавьте его в программу: Код: pascal 1. загружайте по мере надобности с помощью FindResource и LoadResource. Но лучше хранить текстовые данные во внешних XML-файлах. Быстро загружаются, имеют гибкую структуру, универсальный формат. И в Delphi 2010 есть все необходимые инструменты для работы с XML. Да это уже решилось проще - разбитием длинной процедуры на 5 более коротких. Просто неожиданно оказалось когда более старый D7 позволяет а в новом D2010 так нельзя. Рефакторинг кода - конечно, штука хорошая но в этой процедуре он особо не нужен пока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2021, 17:03 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Анна ПетровнаПросто неожиданно оказалось когда более старый D7 позволяет а в новом D2010 так нельзя. Вы не поверите, но при переходе в юникод строки увеличились в размерах вдвое. А лимит остался прежним в байтах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2021, 18:11 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Константы же можно вынести за подпрограмму. Но разбивать на мелкие куски это более правильно. Парсить json через вызов ноды... черт, я уже читаю этот топик как захватывающий триллер ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2021, 10:35 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Fr0sT-Brutal Константы же можно вынести за подпрограмму. Но разбивать на мелкие куски это более правильно. Парсить json через вызов ноды... черт, я уже читаю этот топик как захватывающий триллер ))) Получается велосипед с квадратными колёсами. Но если часто парсить не надо вполне себе решение. Понятно, что при большой нагрузке такой велосипед поедет медленно. Правда, у Node.JS есть неоспоримое преимущество перед любыми сторонними компонентами Delphi - уж раз он настолько популярен - на 99,999% при таком подходе не будет проблем с багами - по крайней мере в таком простом сценарии . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2021, 11:15 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
хххл, перестань, что ты делаешь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2021, 11:34 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
12.04.2021 11:15, Анна Петровна пишет: > у Node.JS есть неоспоримое преимущество перед любыми сторонними компонентами Delphi - > уж раз он настолько популярен - на 99,999% при таком подходе не будет проблем с багами - > по крайней мере в таком простом сценарии. уж если дитяти суждено упасть, то и сидя на полу упадёт с кровати. © Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2021, 11:41 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Анна Петровна Получается велосипед с квадратными колёсами. Новый хит от автора "Подключаемые модули есть мусор" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2021, 11:54 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Fr0sT-Brutal Анна Петровна Получается велосипед с квадратными колёсами. Новый хит от автора "Подключаемые модули есть мусор" :) По сути так оно и есть - лишние конструкции, издержки языка и структуры VCL. Кто работал в 1С - поймёт, никакого подключаемого мусора. Даже в Java можно написать что-то подобное import java.util.*; import java.io.*; а не импортировать каждый модель отдельно - когда например мне как программисту не особенно интересно, как оно там технически устроено внутри VCL - главное чтобы работало. Ну а работая в Delphi - видимо, надо смириться - когда в начале каждой формы ворох автоматически подключаемых модулей, причем в каком попало порядке (в каком порядке Delphi захочет, так и накидает). Ну либо не использовать визуальный редактор и VCL, но тогда непонятно, зачем Delphi. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2021, 23:38 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
В новых IDE есть {$REGION} специально для эстетов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2021, 00:09 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Анна Петровна Ну а работая в Delphi - видимо, надо смириться - когда в начале каждой формы ворох автоматически подключаемых модулей, причем в каком попало порядке (в каком порядке Delphi захочет, так и накидает). import java.io.*; отличается от добавления в uses IOUtils Тем что юзается алиас? Но программисту также надо держать в голове когда и что подключать. И так практически во всех языках. Правда в делфи отстойный механизм подключения юнитов, по сравнению с тем же C# в VS, когда среда сама предлагает подключить нужную сборку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2021, 01:41 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
white_nigger И что? Это среда сама делает, бесплатно для программиста Я конечно понимаю, что среда сама делает и понимаю, что бесплатно. Но очень уж хотелось бы это как-то отключить. Я ещё понимаю - в случае если пользоваться визуальным редактором форм Delphi - чтобы среда добавляла что-то в класс формы, методы в секции implementation ну и до кучи модули в секцию USES. Но я совершенно не понимаю - зачем среда добавляет ненужные модули в секцию USES если я просто открываю, скажем, модуль Unit2.pas - делаю там правки и сохраняю (файл-->сохранить как) - так вот, в момент сохранения среда что-то пропихивает своё в секцию USES. Хотя казалось бы, команда называется "Сохранить" - ну так и сохраняй - зачем при сохранении что то в модуле менять ? Притом что если, скажем, файл Unit2.pas не открывать в Delphi - он этим самым Delphi прекрасно компилируется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2021, 10:33 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
alekcvp В новых IDE есть {$REGION} специально для эстетов. Спасибо, посмотрю какие ещё есть директивы компилятора. Может есть какая нибудь директива, которая вообще отключает генератор кода для конкретного модуля, сохраняя при этом возможность редактировать вручную. Хотя надежды мало, конечно ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2021, 10:38 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Ладно, о чём спорить - понятно, что всё использование Node.JS для парсинга JSON не от большого ума и вообще это всё лирика. А собственно по переходу на D2010 (или вообще на любую юникодную Delphi) - как вы думаете - хорошая ли это идея - заменить во всех файлах проекта примерно так: StringReplace('string ', 'AnsiString ', s) StringReplace('char', 'AnsiChar', s) StringReplace('chr(', 'AnsiChar(', s) StringReplace(': array of string', ': array of AnsiString', s) StringReplace('of string', 'of AnsiString', s) StringReplace('of char', 'of AnsiChar', s) и т. д.? Тогда в стандартных библиотеках VCL всё останется как было - тип string будет уже как WideString в новой Delphi. А в моём коде string будет заменено на AnsiString. Делал ли кто что-то подобное - это нормально при переходе на новые версии Delphi - или это очередной велосипед? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2021, 10:38 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Что?! Вся идея заключается в уходе от AnsiString чтоб не иметь гемора с языками. А тут предлагаете вернуть его "эмуляцией Delphi 7" в юникодной среде? Забейте уже на AnsiString. А если уж так трясутся поджилки, то для начала переведите СВОЙ код на WideString, добейтесь нормальной работы. И потом переход на юникодную делфу будет тривиальным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2021, 10:58 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Анна Петровна Но я совершенно не понимаю - зачем среда добавляет ненужные модули в секцию USES если я просто открываю, скажем, модуль Unit2.pas - делаю там правки и сохраняю (файл-->сохранить как) - так вот, в момент сохранения среда что-то пропихивает своё в секцию USES. Хотя казалось бы, команда называется "Сохранить" - ну так и сохраняй - зачем при сохранении что то в модуле менять ? Среда добавляет модули, без которых компоненты на форме не будут работать. Притом что если, скажем, файл Unit2.pas не открывать в Delphi - он этим самым Delphi прекрасно компилируется. Не верю. Пример в студию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2021, 14:10 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Fr0sT-Brutal Не верю. Пример в студию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2021, 15:04 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Fr0sT-Brutal Не верю. Пример в студию. Как ни странно, если создать чистый проект и подключить мои USES {$I AllVcl.pas}; В единственную форму - Delphi ничего не корежит, не подставляет в секцию USES и нормально компилирует. Если же в моём проекте - несмотря на то, что в {$I AllVcl.pas} есть все нужные модули - Delphi всё равно их пехает в USES перед моим {$I AllVcl.pas}, а потом ругается, что Duplicate unit и не компилирует. Впрочем, решается всё если в AllVcl.pas прописать {$IF not Declared(SysUtils}}SysUtils,{$IFEND} ...... В общем, буду разбираться, почему так происходит. Хотелось бы конечно найти какую нибудь директиву - чтобы иметь возможность среде Delphi вообще запретить менять текст модуля при сохранении - особенно если не собираюсь больше для этой формы использовать визуальные средства Delphi. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2021, 16:53 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Fr0sT-Brutal Не верю. Пример в студию. У меня там есть переопределение класса TForm - создание наследника TForm и использование наследника TForm вместо оригинального во всех формах (чтобы иметь возможность вносить изменения централизованно, сразу во все формы - например, в заголовок добавлять дополнительный текст или не допускать вызова OnActivate более 1 раза, коррекция некоторых косяков некоторых VCL компонентов например DateTimePicker и т д). Возможно, в этом всё и дело ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2021, 16:58 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Вообще-то визуальное наследование форм появилось ещё в Delphi 2, но вам же учиться некогда, костыли строгать надо... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2021, 17:11 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Анна Петровна Хотелось бы конечно найти какую нибудь директиву - чтобы иметь возможность среде Delphi вообще запретить менять текст модуля при сохранении - особенно если не собираюсь больше для этой формы использовать визуальные средства Delphi. Тут так же, как и с файлом проекта dpr - среда считает его своей территорией и перекраивает как ей вздумается. В теории можно сделать визард, чтобы убирал эти автодополнения, но легче смириться. Или же настроить before build скрипты, чтобы удаляли ненужное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2021, 17:58 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Fr0sT-Brutal сделать визард, чтобы убирал эти автодополнения, но легче смириться. Или же настроить before build скрипты, чтобы удаляли ненужное Думаю, скрипт на AutoIt или Python сделать, который будет анализировать модули и выпиливать этот мусор - совсем не проблема. Но пока не буду - проблема эта хоть и криво, но решилась другим способом с помощью {$IF not Declared(...)}...{$IFEND} и без выпиливания нормально всё работает. А вот с before build скриптами идея интересная, надо разобраться ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2021, 22:24 |
|
||
|
Крякозябры вместо русских символов на Windows 10 - при включенной опции Юникод
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Вообще-то визуальное наследование форм появилось ещё в Delphi 2, но вам же учиться некогда, костыли строгать надо... Да, во время шторма навигации как-то учиться не очень, приходится заниматься тем, что умеешь - пилить костыли. А когда шторм проходит - желание учиться тоже проходит и так ведь всё нормально можно потихоньку кодить и не думать о плохом. Так вот неправильно живём и я полагаю многие так живут :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2021, 22:27 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=40062152&tid=2037376]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
191ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 276ms |
| total: | 576ms |

| 0 / 0 |
