Форум: "Начинающим";
Текущий архив: 2011.12.18;
Скачать: [xml.tar.bz2];
Внизстроковые константы Найти похожие ветки
← →
Anatoly Podgoretsky © (2011-09-02 16:50) [40]> Юрий Зотов (02.09.2011 15:20:34) [34]
resourcestring именно такой, не гонится в своп, он сам часть свопа
← →
Anatoly Podgoretsky © (2011-09-02 16:52) [41]> Rouse_ (02.09.2011 15:39:36) [36]
а мы как бы про физическую все время вели речь. С виртуальной понятно, так
нечего грузить, там надо мапировать на физическую память.
← →
Германн © (2011-09-03 00:50) [42]
> Anatoly Podgoretsky © (02.09.11 16:52) [41]
>
> > Rouse_ (02.09.2011 15:39:36) [36]
>
> а мы как бы про физическую все время вели речь.
Ну и зачем вели?
По сабжу разницы практически никакой.
← →
Германн © (2011-09-03 00:54) [43]Вообще (имхо) сабж сам по себе глупый.
Ладно бы речь шла о математической обработке физического эксперимента. Или о математическом моделировании чего-то.
← →
_Юрий (2011-09-04 13:42) [44]Немного не в тему
я с некоторых пор вообще перестал так делать - выносить кучу констант в какое то одно место с тем, чтобы их отовсюду использовать.
Потому, что когда их количество сильно увеличивается, становится трудно что-либо найти, группировки нет, формализация возможных параметров отсутствует.
Поэтому я стал делать по другому: прятать константы в код, и его уже помещать в общие модули. Чаще всего подобные константы - текстовки ошибок.
Тогда вместо, например
const
SFileNotFound = "Файл %s не найден";
...
if not FileExist(fileName) then
raise EPathException.CreateFmt(SFileNotFound, [fileName]);
пишу нечто типа
type
EPathException = class(Exception)
public
constructor FileNotFound(fileName: string);
end;
constructor EPathException.FileNotFound(fileName: string);
resourcestring;
SFileNotFound = "Файл %s не найден";
begin
CreateFmt(SFileNotFound, [fileName]);
end;
...
if not FileExist(fileName) then
raise EPathException.FileNotFound(fileName);
Конструкторов может быть много - свой для каждого случая.
Если константа - какое то название, то ее лучше перенести в соответствующий класс (в виде вложенной константы, а если не позволяет версия Delphi, то в виде классовой функции). По тем же причинам.
Посмотрите, может быть вам такой подход покажется более подходящим
← →
Игорь Шевченко © (2011-09-04 14:24) [45]_Юрий (04.09.11 13:42) [44]
VCL/RTL предлагают другой путь - по юнитам (rtl,db,...)consts
Где золотая середина ?
(Ну и до кучи - я не понимаю использования resourcestring в нелокализуемом проекте. Я вообще не понимаю использования resourcestring, потому что я не могу им управлять - не знаю идентификаторов ресурсов, а оставлять все это на откуп ITE - у меня с ним плохие отношения, еще со старых версий, где он глючил со страшной силой. Может, эти глюки и убрали, но осадок остался).
← →
Anatoly Podgoretsky © (2011-09-04 14:53) [46]> Игорь Шевченко (04.09.2011 14:24:45) [45]
Может быть, но на семерке глюков не было обнаружено, кроме того локализации
поддается не только свой код, но и бесплатный подарок в придачу, еще и
некоторые модули.
А resourvestring есть смысл использовать из-за некоторой оптимальности
работы системы, но наверно ты и так это знаешь, читал наверно у Рихтера.
Потом если захочешь локализировать ничего переделывать не придется, а у ITE
локализация на уровне, не только тексты.
← →
Игорь Шевченко © (2011-09-04 15:08) [47]Anatoly Podgoretsky © (04.09.11 14:53) [46]
Я не знаю, решили ли они проблему (вроде читал, что каким-то образом решили) - есть тексты, которые надо переводить стороннему переводчику
( не знает разработчик китайского), чтобы он не имел доступа к исходным текстам и чтобы ему не надо было устанавливать программного обеспечения.
← →
Anatoly Podgoretsky © (2011-09-04 15:55) [48]> Игорь Шевченко (04.09.2011 15:08:47) [47]
Без установки никак. Нужен поноценный редактор ресурсов Дельфи, то есть
видеть и изменять формы, как минимум, такой редактор есть в ITE, он есть в
автономном варианте. С ITE основная проблема - психологическое
сопротивление.
← →
Eraser © (2011-09-04 21:46) [49]http://matrix.kladovka.net.ru/index.php?page=downloads&categ=other&pagenum=1 см. "multilang.zip". Мощнейшее и простое средство для работы с локализацией. Правда для полноценной работы я туда привинтил слабенькую поддержку коллекций, но зато теперь фактически универсальный инструмент. четвертый год работает отлично. а ITE мастдай, это с самого начало понятно. что за локализатор такой, которому исходники подавай? это противоречит всей концепции локализации проектов, т.к. обычно локализацию на аутсорс отдают.
← →
_Юрий (2011-09-05 21:39) [50]
> Игорь Шевченко © (04.09.11 14:24) [45]
> VCL/RTL предлагают другой путь - по юнитам (rtl,db,...)consts
Это очень старый код, с тех пор опыт человечества в программировании стал лет на 15 больше. Сейчас, думаю, они бы написали уже не так.
По resourcestring без локализации - согласен, на мой взгляд нафиг не надо.
← →
Игорь Шевченко © (2011-09-05 23:02) [51]_Юрий (05.09.11 21:39) [50]
> Сейчас, думаю, они бы написали уже не так.
Не уверен. У них каждый юнит consts относится к конкретному пакету, при разделении vcl на vcl и rtl константы тоже разделились, на consts (vcl) и rtlconsts
В этих юнитах содержатся как раз локализуемые константы, может, это связано с ITE, чтобы все константы такого типа были собраны вместе, может, еще с чем, не знаю, а искать лень.
Я к тому, что у Борландов в такой организации констант есть цель.
← →
_Юрий (2011-09-06 20:24) [52]
> Игорь Шевченко © (05.09.11 23:02) [51]
Рискну предположить, что такое отделение возникло еще до ITE.
Который появился по моему в Delphi5.
Пока его не было, можно было совершить подмену юнита с константами на свой, и таким образом хоть как-то решить проблему локализации.
Если бы константы были размазаны по коду, это бы не взлетело.
Страницы: 1 2 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.12.18;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.005 c