169 похожих чатов

Друзья, подскажите, пожалуйста. Реализация форм в dll, на сколько оправдано?

Будет ли возможность соединения с БД из неё? Вынесен отдельный модуль DM в котором находятся компоненты доступа к БД. Форма при открытие делает тот или иной запрос в зависимости от переданного в неё значения переменной. А то проект разрастается и хотелось бы какой-то модульности.

63 ответов

132 просмотра

я за то что ни насколько не оправдано

работать будет. насколько оправданно, сложно сказать, периодически проскакивают сообщения о сотнях форм в проектах и как-то слабо это кого-то останавливает )

Handatros
работать будет. насколько оправданно, сложно сказа...

отладка усложняется в разы, сразу же. как и распространение/обновление

Handatros
работать будет. насколько оправданно, сложно сказа...

У меня 261 форма. Размер .exe 8,9Мб Delphi7, если что.

Евгений- Автор вопроса
Владимир Аксенов
У меня 261 форма. Размер .exe 8,9Мб Delphi7, если ...

Ничего себе!) Тут самая сложность наверно, как имена давать)

Евгений
Ничего себе!) Тут самая сложность наверно, как име...

Ваще никакой сложности. Почти все по схеме идет.

Владимир Аксенов
У меня 261 форма. Размер .exe 8,9Мб Delphi7, если ...

А на каждой форме по 1 кнопке - "Закрыть" 😊

Владимир Аксенов
screenshot

Хаотично набросанные в огромном кол-ве невыравненные контролы разных размеров, на разной высоте. имхо Меня за такое бьют 😞

Михаил Усков
Хаотично набросанные в огромном кол-ве невыравненн...

Тщательно выверенные размеры, расположение, порядок обхода. Каждый элемент скурпулезно подгонялся под свое место.

Михаил Усков
Хаотично набросанные в огромном кол-ве невыравненн...

А какие иные варианты? Бахнуть одним списоком в 2 колонки, со скроллом по вертикалди и горизонтали, что бы без мышки было никак?

Владимир Аксенов
Тщательно выверенные размеры, расположение, порядо...

Володь, не спорь. Априори он лучше знает. Но не покажет 😁

Надо писать плагинную систему и компилировать dll и exe с bpl - тогда будет проще. Использовать FASTMM4 - тогда менеджер памяти будет един. А если менеджеров памяти будет несколько придется использовать WideString для передачи строк. Такое напилить будет сложнее, но на мой взгляд для большого приложения это оправдано, особенно, если несколько человек пилят приложение.

Владимир Аксенов
А какие иные варианты? Бахнуть одним списоком в 2 ...

как самое бросающееся в глаза. Чекбокс висит фиг его знает где, если он относится к подсказке по цене, то его нужно в групбокс поместить, на то он и групбокс, если не относится- выровнять по вертикали/горизонтали со связанным эдитом. Разные по ширине поля для числовых параметров. Комбо формата слишком широкое и не выровненное. Разные отступы рамки групбокса слева справа и ненужное пустое пространство. и т.д. Конечно, это только мое ИМХО, но форма - вырви глаз, как за счет размещения, так и за счет перегруженности Стоит посмотреть на организацию карточки товара в 1С, как они решают проблему перегруженности интерфейса - дополнительными PageControl-ами или разворачивающимися списками. Может быть стоит сделать внутри еще один пэйджконтрол со страницами "Основные хар-ки", "Цены", "Дополнительно"

Михаил Усков
screenshot как самое бросающееся в глаза. Чекбокс висит фиг е...

всё так, в целом там норм. но некоторые элементы явно просятся потюнить

Alexander 👋
Надо писать плагинную систему и компилировать dll ...

думается что можно работу распределить по людям по-форменно. кто что исключительно пишет и коммитит в общую репу, тут я проблем не вижу

Владимир Аксенов
screenshot

Вот так выкладывать картинки формочек) Все ж дизайнеры, особенно шеф мой. Ой, давай тут рамочкой выделим, это так важно для пользователя. Добавляется новое поле, вид становится страшнючий , т.к. оно ни к чему не относится. Рамочка сносится, и важными-важными становятся другие группировки )))

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

Михаил Усков
screenshot как самое бросающееся в глаза. Чекбокс висит фиг е...

Чекбокс висит фиг знает где именно потому что он ни к чему другому на этой форме не относится. И в гроупбоксе "Подсказка по цене" ему делать совершенно нечего. Гроупбокс такой пустой справа потому как когда-то та самая подсказка (которая жирным выделена) была вот там, в конце, но было неудобно сравнивать подсказку с полем "Цена выходная". Цену передвинул, ширину не поправил. Комбобокс "Формат" делать Уже нельзя - его ширина подобрана под контент, иначе не каждая запись будет видна целиком. Остальные претензии высосаны из пальца.

Катерина Свиридова
Вот так выкладывать картинки формочек) Все ж дизай...

И что ни поменяй, с какими благими намерениями - всегда будут недовольные :)

Владимир Аксенов
Чекбокс висит фиг знает где именно потому что он н...

Основная претензия - перегруженность контролами. Тебе кажется, что все ок, потому что это твоя родная форма. Взгляни на такое же, только чужое:

Михаил Усков
screenshot Основная претензия - перегруженность контролами. Т...

не факт что сильно лучше в плане количества контролов сделать получится

вот 'идеальная ритмичность' в TValueList нашим как раз не нравится

Handatros
вот 'идеальная ритмичность' в TValueList нашим как...

Да мне тоже не нравится, вообще нечитабельно.

Владимир Аксенов
Да мне тоже не нравится, вообще нечитабельно.

программисту только такое и валуеЛист должны нравиться))

Alexander
Вот это GUI. За такое разве не увольняют?

Тут упор на быстрый ввод. Один глаз смотрит на бумагу, другой на монитор.

Неъматжон
Тут упор на быстрый ввод. Один глаз смотрит на бум...

Одна рука водит палцем на бумажке, другой порхает над клавой. :)

Неъматжон
Одна рука водит палцем на бумажке, другой порхает ...

причём желательно только над цифровым блоком

Неъматжон
Тут упор на быстрый ввод. Один глаз смотрит на бум...

с перескакиванием по контролам по Tab'у 👍🏻

Михаил Усков
screenshot Основная претензия - перегруженность контролами. Т...

Когда дизайнеры начинают втирать что нужно сделать красиво, а на функционал и эффективность всем плевать - то такие дизайнеры идут лесом. Вам шашечки или ехать?

Ed Doc
с перескакиванием по контролам по Tab'у 👍🏻

Иногда переход по энтер на цифровом блоке.

Катерина Свиридова
Даже Ентер)

не по феншую :) Для мня Энтер/Контрл+Энтер - это завершение ввода Вернее, Энтер - перевод строки в многострочном контроле

Ed Doc
не по феншую :) Для мня Энтер/Контрл+Энтер - это з...

Когда над клавой одна рука, таб не по феншую :)

Неъматжон
Когда над клавой одна рука, таб не по феншую :)

я себе сделал переходы между контролами по табу/шифт+таб (иногда можно выбранный контрол ЛКМ/ПКМ клацнуть), между вкладками по Ctrl+Shift+Left/right. Если на pagecontrol лежит дочерний pagecontrol, то Ctrl+Shift+Alt+Left/right

Ed Doc
я себе сделал переходы между контролами по табу/ш...

Может, где так удобнее, но я час наблюдал, как кассирша чеки и платежки вводить в базу. :) Тут только одна рука над клавой работает. :)

Ed Doc
с перескакиванием по контролам по Tab'у 👍🏻

И по Enter. А по Ctrl+Enter - нижняя кнопка Ок внизу формы.

Владимир Аксенов
И по Enter. А по Ctrl+Enter - нижняя кнопка Ок вни...

Массированный ввод данных, он другой. Там валидация полей решает. Чтобы не смотреть.

Ed Doc
я себе сделал переходы между контролами по табу/ш...

Переход по Tab/ShiftTab - это дефолтное поведение, ничего делать не требуется, только расставить правильно TabOrder и TabStop. Переход по вкладкам - стандарт Ctrl+PgUp/PgDown - так в браузерах, в Excel и много где. В Delphi7 такое поведение приходится программировать, а в Лазарусе оно искаропки оказалось что есть. Только нужно будет подзаморочиться с VTV потому как у него тоже такая комбинация есть, и будет перехватывать PageControl.

Alexey Gavrilov
Массированный ввод данных, он другой. Там валидаци...

Пришел к тому, что данные для БД заливать оптом через CSV

Кокошник наголо
Пришел к тому, что данные для БД заливать оптом че...

Если есть где взять этот CSV - то естессно, лучше так а не врукопашную.

А зачем туда смотреть? Это все находится наощупь , все комбинации стрелок и 6 кнопок над стрелками + плюс все то же с Ctrln - это базовое поведение руки на клаве :) Главное что бы клава была со стандартной раскладкой в этом месте. Но вот на всяких ноутах нажимать эти комбинации - это боль, тем более что в ряде случаев тупо не можешь вспомнить что там за кнопки жать надо, ибо жмешь их на рефлексах.

Ed Doc
screenshot Во-о-о... Опередил 😁 В качестве иллюстрации

В огонь эту гадость. Вообще, всех производителей нестандартных раскладок - расстрелять.

Ed Doc
screenshot Во-о-о... Опередил 😁 В качестве иллюстрации

Это вот та самая "красота" - ритмично,без дырок расположенные контролы :)

Владимир Аксенов
Это вот та самая "красота" - ритмично,без дырок ра...

вот, поэтому и стараешься прогать так, чтобы лишний раз не елозить по клаве :)

Ed Doc
screenshot Во-о-о... Опередил 😁 В качестве иллюстрации

А... это у тебя ноут... это да, боль. Ну, можно внешнюю прицепить. Или начать использовать vim-раскладку, ведь для чего-то их делают? :)

Ed Doc
вот, поэтому и стараешься прогать так, чтобы лишни...

Есть минимум 2 типа пользователей, мышкодвигам пофиг клавиши вообще. Мы с напарницей прямые противоположности, я пользуюсь горячими клавишами, а она быстрее программирует))

Владимир Аксенов
screenshot Юзайте классику.

дома так и делаю, на работе в разных офисах (где стоят древние машины XP и Win7 x32) проще на ноуте

Катерина Свиридова
Есть минимум 2 типа пользователей, мышкодвигам поф...

а я еще и амб.карту печатаю, параллельно слушая бред пациентов и понимающе кивая головой. Данные вводятся на уровне рефлексов. Ибо думать уже не получается :)

Ed Doc
screenshot Во-о-о... Опередил 😁 В качестве иллюстрации

Не-не-не! У меня волосы еще не совсем седые… Не хочу ускорить.

Владимир Аксенов
https://youtu.be/IchnTZRkKo8?si=sP_-sKumtczRHdAb

) на ноуте буквы уже сами стираются

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
DS
8
Карта сайта