Несколько вопросов

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Несколько вопросов

Сообщение SeZuka » 13.03.2013 09:47:22

Назревшие вопросы по мере важности:

1. Есть ли нормальная альтернатива глючному компоненту PageControl? Или собираются ли разработчики допиливать его или все-таки допилят MDI?

2. Почему текст на кнопках BitBtn, ButtonPanel в дизайнере отображается на русском, а в готовом файле на английском, тоже относится и к Application.MessageBox, где и что надо поправить, чтоб в исполняемом файле было все на русском?

3. Почему у Application.MessageBox параметры Text и Caption типа PChar, а не string? Ведь вроде в Delphi (к совместимости с которым так "стремятся" разработчики) они были типа string. Неужели так сложно было сделать преобразование внутри метода, чтоб нам каждый раз не вспоминать об этом?

4. Извечный вопрос про размер файлов лазаря. Оболочка проекта из двух форм, нескольких контролов и парой компонентов UIB, с отключенной отладочной информацией, компилируется в 2 с лишним мегабайта. Аналогичный проект на дельфи, только полноценный, работающий с БД, с десятками форм, таблиц, отчетов, графикой и прочим, exe-шник был примерно такого же размера. Можно ли еще что-нибудь настроить в опциях проекта чтоб файлы получались меньше?
SeZuka
постоялец
 
Сообщения: 209
Зарегистрирован: 05.09.2012 14:58:05

Re: Несколько вопросов

Сообщение SSerge » 13.03.2013 10:46:16

SeZuka писал(а):чтоб файлы получались меньше?


С какого рожна они получатся меньше, если прилинковывается фактически весь код vcl?
И так будет всегда. :mrgreen: Ну или до той поры, пока будет поддерживаться формат стандартного объектного файла для линкера и сам линкер будет близок к стандартному; иначе в том, с чем он работает, нет информации о том, что можно выкинуть. То есть, используете что-то из класса - линкуется весь его код, особенно при применении виртуальных или динамических методов средства сборки не могут работать иным путем - они обязаны обеспечить код, потому что не могут оценить, будет он вызван или нет.

во времена MS DOS вообще действовало правило - один файл - один объектный модуль - и именно он - та единица, с которой работает линкер и только она может вставляться/изыматься в библиотеках. Возможно, это до сих пор осталось. Как наследие - например в Си принято было каждую функцию совать в отдельный файл, иначе например в одном файле 50 функций, используется только одна, но код присутствует для всех пятидесяти. Потому что объектный файл неделим.
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Несколько вопросов

Сообщение qivi » 13.03.2013 11:29:54

1. Есть ли нормальная альтернатива глючному компоненту PageControl?

Ну я пользуюсь табами, глючности не замечал, что не так?

Или собираются ли разработчики допиливать его или все-таки допилят MDI?

Хочется надеяться что хоть этим некрофильским шлаком не загадят LCL.
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Несколько вопросов

Сообщение SeZuka » 13.03.2013 16:23:33

SSerge писал(а):То есть, используете что-то из класса - линкуется весь его код, особенно при применении виртуальных или динамических методов средства сборки не могут работать иным путем - они обязаны обеспечить код, потому что не могут оценить, будет он вызван или нет

Ну как не могут, что тут сложного то? Всегда считал что линкуется только то что используется, а не все подряд.

qivi писал(а):Ну я пользуюсь табами, глючности не замечал, что не так?

По крайней мере в винде косяки с границами, которые не нужны и от них никак не избавишься, и к тому же они не симметричны самому контролу. И самый большой косяк в самих закладках, когда они расположены снизу, а вид такой же как с верху, у TabControl`а они всегда сверху при любом выборе их положения, а стиль в виде кнопок вообще работает?

qivi писал(а):Хочется надеяться что хоть этим некрофильским шлаком не загадят LCL.

Был бы он некрофильским, его бы в LCL и не было, но он есть, только такой же не доделанный как и ваш TDI.
SeZuka
постоялец
 
Сообщения: 209
Зарегистрирован: 05.09.2012 14:58:05

Re: Несколько вопросов

Сообщение svk12 » 13.03.2013 16:40:27

SSerge писал(а):Аналогичный проект на дельфи


Дельфи 1?
svk12
постоялец
 
Сообщения: 409
Зарегистрирован: 09.06.2008 18:42:47

Re: Несколько вопросов

Сообщение SeZuka » 13.03.2013 17:54:25

svk12 писал(а):Дельфи 1?

Изначально делался на 7, потом был переведен на 10, размер практически не изменился.
SeZuka
постоялец
 
Сообщения: 209
Зарегистрирован: 05.09.2012 14:58:05

Re: Несколько вопросов

Сообщение SSerge » 13.03.2013 18:04:36

SeZuka писал(а):линкуется только то что используется


У классического линкера единицей, с которой он работает, является объектный файл. Поделить его и анализировать его отдельные части он не может. Это еще с зарождения стандартизации. Ща последнее время стали оптимизировать размер за счет тотального внедрения .dll и переноса функций в них. у MFC эта dll что то около 4-х мегабайт, при статическом связывании и .exe такого же объема примерно организуются.
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Несколько вопросов

Сообщение Sergei I. Gorelkin » 13.03.2013 18:42:55

FPC для винды прекрасно все делит на части уже несколько лет. При добавлении в командную строку ключа -Xm создается файл <имя проекта>.map, в котором написано, что от чего зависит и что выкинуто.
Проблема совсем в другом: в библиотеках калибра LCL в буквальном смысле все зависит от всего.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1407
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: Несколько вопросов

Сообщение alexs » 13.03.2013 19:27:47

SeZuka
Если очень хочется MDI - то посмотри в RxFPC. Я там сделал компонент, позволяющий организовать почти полный аналог. Не стал делать только дурацкое сворачивание дочерних окон. Бонусом там идёт сразу и кнопки навигации по окнам.
Если найдёшь ошибки - сразу сообщай. Будем править.
Демка есть в исходниках.

Ну а насчёт локализации - тема не однократно обсосана на форуме.

PS
Кстати - размер у готовой программы не сильно растёт от кол-ва форм. Есть минимальный размер. А потом рост достаточно медленен. Не будешь в формы рисунки пихать на многие метры - не будет и большого размера.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Несколько вопросов

Сообщение SeZuka » 13.03.2013 20:23:01

Sergei I. Gorelkin
Спасибо за развернутый ответ.

alexs
Смотрел я вроде этот компонент, но что-то он меня не устроил, еще раз посмотрю. Сворачивание как раз и не надо, а вот кнопки навигации как раз нужны, в идеале надо как в 1С реализовано.

Просто когда заходит разговор о размерах файлов, начинаю ностальгировать о былых временах, когда быстродействие процессоров измерялись десятками мегагерц, а размеры программ килобайтами...
Вот вспомнил свой курсовой, программа для анализа голоса, много всяких окошечек, менюшек, графики и куча алгоритмов внутри, а размер всего несколько десятков килобайт, прицепил во вложение если кому интересно глянуть.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
SeZuka
постоялец
 
Сообщения: 209
Зарегистрирован: 05.09.2012 14:58:05

Re: Несколько вопросов

Сообщение amateur » 13.03.2013 21:09:50

:) ну очень смешно...

SSerge
С какого рожна они получатся меньше, если прилинковывается фактически весь код vcl?
спорно, при правильном подходе там прибавляется не много. А если еще и над экзешником "поработать", моно на 100 + кб "сбросить размер. И если сравнивать с лазарем, то нормальное рабочее приложение занимает 1,5 метра (только если пользовать стандартные компонеты). Кстати, кажись 2.7.1 фпс чет там с размерами меняет (по крайней мере у мну одно и то же приложение на 100 кб меньше получилось в 2.7.1). Но это не суть важно.

1. глючность присутствует в PageControl но не столь критичная. Кроме алекса есть еще tdi вариант. А вот MDI отжил свое и кажись давно. А так реализация в виде компонентов есть.

2. Тута моно сказать Э...э? а по поводу сообщений :) с вики познакомтесь о PO файликах...

3. нюю стринг :) интересно что Вы скажете по поводу кодировок и парсингу... может так :shock:

4. размер конечно минус да и не только размер. Но чем дальше тем больше лазарь нравитсо. И на дельфин смотреть не хочется.

Случай:
попросили сделать "каку". Говорю на лазаре сделаю работать будет норм, токо размер огромный бу. Ответ: пофик лишь бы работало без глюков. В результате гдет месяц вылавливания глюков. и уже как год работает и ниче не просит. 3 метра кака вышла в инсталяторе 1,5 кажись.
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 260

Рейтинг@Mail.ru