Несколько вопросов
Модератор: Модераторы
Несколько вопросов
Назревшие вопросы по мере важности:
1. Есть ли нормальная альтернатива глючному компоненту PageControl? Или собираются ли разработчики допиливать его или все-таки допилят MDI?
2. Почему текст на кнопках BitBtn, ButtonPanel в дизайнере отображается на русском, а в готовом файле на английском, тоже относится и к Application.MessageBox, где и что надо поправить, чтоб в исполняемом файле было все на русском?
3. Почему у Application.MessageBox параметры Text и Caption типа PChar, а не string? Ведь вроде в Delphi (к совместимости с которым так "стремятся" разработчики) они были типа string. Неужели так сложно было сделать преобразование внутри метода, чтоб нам каждый раз не вспоминать об этом?
4. Извечный вопрос про размер файлов лазаря. Оболочка проекта из двух форм, нескольких контролов и парой компонентов UIB, с отключенной отладочной информацией, компилируется в 2 с лишним мегабайта. Аналогичный проект на дельфи, только полноценный, работающий с БД, с десятками форм, таблиц, отчетов, графикой и прочим, exe-шник был примерно такого же размера. Можно ли еще что-нибудь настроить в опциях проекта чтоб файлы получались меньше?
1. Есть ли нормальная альтернатива глючному компоненту PageControl? Или собираются ли разработчики допиливать его или все-таки допилят MDI?
2. Почему текст на кнопках BitBtn, ButtonPanel в дизайнере отображается на русском, а в готовом файле на английском, тоже относится и к Application.MessageBox, где и что надо поправить, чтоб в исполняемом файле было все на русском?
3. Почему у Application.MessageBox параметры Text и Caption типа PChar, а не string? Ведь вроде в Delphi (к совместимости с которым так "стремятся" разработчики) они были типа string. Неужели так сложно было сделать преобразование внутри метода, чтоб нам каждый раз не вспоминать об этом?
4. Извечный вопрос про размер файлов лазаря. Оболочка проекта из двух форм, нескольких контролов и парой компонентов UIB, с отключенной отладочной информацией, компилируется в 2 с лишним мегабайта. Аналогичный проект на дельфи, только полноценный, работающий с БД, с десятками форм, таблиц, отчетов, графикой и прочим, exe-шник был примерно такого же размера. Можно ли еще что-нибудь настроить в опциях проекта чтоб файлы получались меньше?
SeZuka писал(а):чтоб файлы получались меньше?
С какого рожна они получатся меньше, если прилинковывается фактически весь код vcl?
И так будет всегда.
во времена MS DOS вообще действовало правило - один файл - один объектный модуль - и именно он - та единица, с которой работает линкер и только она может вставляться/изыматься в библиотеках. Возможно, это до сих пор осталось. Как наследие - например в Си принято было каждую функцию совать в отдельный файл, иначе например в одном файле 50 функций, используется только одна, но код присутствует для всех пятидесяти. Потому что объектный файл неделим.
1. Есть ли нормальная альтернатива глючному компоненту PageControl?
Ну я пользуюсь табами, глючности не замечал, что не так?
Или собираются ли разработчики допиливать его или все-таки допилят MDI?
Хочется надеяться что хоть этим некрофильским шлаком не загадят LCL.
SSerge писал(а):То есть, используете что-то из класса - линкуется весь его код, особенно при применении виртуальных или динамических методов средства сборки не могут работать иным путем - они обязаны обеспечить код, потому что не могут оценить, будет он вызван или нет
Ну как не могут, что тут сложного то? Всегда считал что линкуется только то что используется, а не все подряд.
qivi писал(а):Ну я пользуюсь табами, глючности не замечал, что не так?
По крайней мере в винде косяки с границами, которые не нужны и от них никак не избавишься, и к тому же они не симметричны самому контролу. И самый большой косяк в самих закладках, когда они расположены снизу, а вид такой же как с верху, у TabControl`а они всегда сверху при любом выборе их положения, а стиль в виде кнопок вообще работает?
qivi писал(а):Хочется надеяться что хоть этим некрофильским шлаком не загадят LCL.
Был бы он некрофильским, его бы в LCL и не было, но он есть, только такой же не доделанный как и ваш TDI.
SSerge писал(а):Аналогичный проект на дельфи
Дельфи 1?
svk12 писал(а):Дельфи 1?
Изначально делался на 7, потом был переведен на 10, размер практически не изменился.
SeZuka писал(а):линкуется только то что используется
У классического линкера единицей, с которой он работает, является объектный файл. Поделить его и анализировать его отдельные части он не может. Это еще с зарождения стандартизации. Ща последнее время стали оптимизировать размер за счет тотального внедрения .dll и переноса функций в них. у MFC эта dll что то около 4-х мегабайт, при статическом связывании и .exe такого же объема примерно организуются.
- Sergei I. Gorelkin
- энтузиаст
- Сообщения: 1409
- Зарегистрирован: 24.07.2005 14:40:41
- Откуда: Зеленоград
FPC для винды прекрасно все делит на части уже несколько лет. При добавлении в командную строку ключа -Xm создается файл <имя проекта>.map, в котором написано, что от чего зависит и что выкинуто.
Проблема совсем в другом: в библиотеках калибра LCL в буквальном смысле все зависит от всего.
Проблема совсем в другом: в библиотеках калибра LCL в буквальном смысле все зависит от всего.
- alexs
- долгожитель
- Сообщения: 4066
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
SeZuka
Если очень хочется MDI - то посмотри в RxFPC. Я там сделал компонент, позволяющий организовать почти полный аналог. Не стал делать только дурацкое сворачивание дочерних окон. Бонусом там идёт сразу и кнопки навигации по окнам.
Если найдёшь ошибки - сразу сообщай. Будем править.
Демка есть в исходниках.
Ну а насчёт локализации - тема не однократно обсосана на форуме.
PS
Кстати - размер у готовой программы не сильно растёт от кол-ва форм. Есть минимальный размер. А потом рост достаточно медленен. Не будешь в формы рисунки пихать на многие метры - не будет и большого размера.
Если очень хочется MDI - то посмотри в RxFPC. Я там сделал компонент, позволяющий организовать почти полный аналог. Не стал делать только дурацкое сворачивание дочерних окон. Бонусом там идёт сразу и кнопки навигации по окнам.
Если найдёшь ошибки - сразу сообщай. Будем править.
Демка есть в исходниках.
Ну а насчёт локализации - тема не однократно обсосана на форуме.
PS
Кстати - размер у готовой программы не сильно растёт от кол-ва форм. Есть минимальный размер. А потом рост достаточно медленен. Не будешь в формы рисунки пихать на многие метры - не будет и большого размера.
Sergei I. Gorelkin
Спасибо за развернутый ответ.
alexs
Смотрел я вроде этот компонент, но что-то он меня не устроил, еще раз посмотрю. Сворачивание как раз и не надо, а вот кнопки навигации как раз нужны, в идеале надо как в 1С реализовано.
Просто когда заходит разговор о размерах файлов, начинаю ностальгировать о былых временах, когда быстродействие процессоров измерялись десятками мегагерц, а размеры программ килобайтами...
Вот вспомнил свой курсовой, программа для анализа голоса, много всяких окошечек, менюшек, графики и куча алгоритмов внутри, а размер всего несколько десятков килобайт, прицепил во вложение если кому интересно глянуть.
Спасибо за развернутый ответ.
alexs
Смотрел я вроде этот компонент, но что-то он меня не устроил, еще раз посмотрю. Сворачивание как раз и не надо, а вот кнопки навигации как раз нужны, в идеале надо как в 1С реализовано.
Просто когда заходит разговор о размерах файлов, начинаю ностальгировать о былых временах, когда быстродействие процессоров измерялись десятками мегагерц, а размеры программ килобайтами...
Вот вспомнил свой курсовой, программа для анализа голоса, много всяких окошечек, менюшек, графики и куча алгоритмов внутри, а размер всего несколько десятков килобайт, прицепил во вложение если кому интересно глянуть.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
SSerge
спорно, при правильном подходе там прибавляется не много. А если еще и над экзешником "поработать", моно на 100 + кб "сбросить размер. И если сравнивать с лазарем, то нормальное рабочее приложение занимает 1,5 метра (только если пользовать стандартные компонеты). Кстати, кажись 2.7.1 фпс чет там с размерами меняет (по крайней мере у мну одно и то же приложение на 100 кб меньше получилось в 2.7.1). Но это не суть важно.С какого рожна они получатся меньше, если прилинковывается фактически весь код vcl?
1. глючность присутствует в PageControl но не столь критичная. Кроме алекса есть еще tdi вариант. А вот MDI отжил свое и кажись давно. А так реализация в виде компонентов есть.
2. Тута моно сказать Э...э? а по поводу сообщений
3. нюю стринг
4. размер конечно минус да и не только размер. Но чем дальше тем больше лазарь нравитсо. И на дельфин смотреть не хочется.
Случай:
попросили сделать "каку". Говорю на лазаре сделаю работать будет норм, токо размер огромный бу. Ответ: пофик лишь бы работало без глюков. В результате гдет месяц вылавливания глюков. и уже как год работает и ниче не просит. 3 метра кака вышла в инсталяторе 1,5 кажись.
