Как давно вам доводилось клепать формы? Легко ли дается?
Что пробовали? Какой подход вам зашел, какие технологии полюбились больше всего?
Про себя. У меня был опыт и на WinForms, и на WebForms, и на ASP.Net MVC, и на XAML, немного MFC, немного QT. Даже написал свой фреймворк для генерации юзабельных форм на основе JSON. Ах, да, еще был свой Web-фреймворк для создания сложных форм на основе HTML-шаблона. Сейчас на Flutter третий проект. Так что я, в некотором роде, заядлый формоклеп.
Имхо, самое удобное из того что я видел — это реализация Flutter. Как-то без лишних абстракций, все кратко и максимально компактно. Лучше может быть только авто-генерация форм, но это уже совсем другая история.
K>>могли бы остановиться на дельфи/builder и направить свои усилия в более интересное русло, но нет.... S>А как там для телефонов на форме размеры указывать — в пикселях или логических пикселях?
я это дело забросил лет за *дцать до телефонов, так что не знаю
но в целом понятно, что пришлось бы уходить от одного размера экрана (хотя раньше вот непонятно было, надеялись на резиновой верстке вырулить, но размер пальца не обманешь)
Здравствуйте, Shmj, Вы писали:
S> K>могли бы остановиться на дельфи/builder и направить свои усилия в более интересное русло, но нет....
S> А как там для телефонов на форме размеры указывать — в пикселях или логических пикселях?
В условных, разумеется. Delphi сто лет назад умела подстраивать размеры под текущий ppi (ты в дизайнере указываешь размеры относительно своего ppi, на конечном устройстве они корректируются в соответствии с текущим), а уж сегодня это вообще странный вопрос...
Здравствуйте, koenig, Вы писали:
K>могли бы остановиться на дельфи/builder и направить свои усилия в более интересное русло, но нет....
А мне чето 1С еще вспомнился, до билдера еще.
А от билдера тоже неприятные воспоминания, как он жутко свопил на 24Мб, так что мышкой как по минному полю ходил, чтоб по несколько минут не ждать всплывающую подсказку.
Здравствуйте, Shmj, Вы писали:
S>Как давно вам доводилось клепать формы? Легко ли дается? S>Что пробовали? Какой подход вам зашел, какие технологии полюбились больше всего?
Последний раз в 2021. Но там были уже не формы, а довольно продвинутый гуй — многослойный пирог из WPF и WinForms. До этого формы на Delphi делал, последний раз примерно в 2005 или 2006. Само собой это был VCL. Потом были WinForms — именно классические "формы", без какого-либо продвинутого гуя. Довольно быстро тогда перешёл от элементарного накидывания контролов на форму к написанию собственных: отображение NULL'а, значений по умолчанию, подсветки ошибок ввода и т.д. Ну и дальше по накатанной — "продвинутые" таблицы, с сортировкой по нескольким полям сразу, подсветка отдельных ячеек и строк и т.п.
Потом меня научили делать DPI-aware, и в частности "сборка" гуя — уже не просто накидыванием контролов, а построение всего гуя на FlowLayoutPanel и TableLayoutPanel.
Примерно в 2017 познакомился с WPF. Понравилось! Со временем понравилось, не сразу. То, на что на винформах уходили долгие часы, а на VCL я просто не знал как и что такое возможно, там делалось сильно проще.
В общем-то всё зависисит от задачи: надо накидать контролов на форму — возьму WinForms. Надо чтоб DPI-aware, со сложной вёрсткой на стеках и таблицах — WPF. Нужны анимации в гуе — WPF. Много данных и предполагается, это надо будет сопровождать — WPF: отделение гуя от слоя отображения (паттерн MVVM) последующее сопровождение сильно упростит. Собственными руками (своими силами) такое замучаешься делать.
Больше ничего не пробовал. Да, насчёт Delphi — сейчас не представляю где её ниша. Не знаю зачем она может понадобиться.
Всё сказанное выше — личное мнение, если не указано обратное.
Здравствуйте, Shmj, Вы писали:
S>Как давно вам доводилось клепать формы? Легко ли дается?
WinForms, WPF, Blazor WebAssembly. Довольно часто, хотя не моё это от слова совсем!
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, Shmj, Вы писали:
S>Как давно вам доводилось клепать формы? Легко ли дается?
Почти никогда не переставал.
S>Что пробовали? Какой подход вам зашел, какие технологии полюбились больше всего?
XAML. В iOS так и ковырялся со storyboards, но больно неудобно делать вложенные views, да и коллекции неудобные в сравнени с XAML. А вот flutter так и не освоил толком.
Здравствуйте, koenig, Вы писали:
K>могли бы остановиться на дельфи/builder и направить свои усилия в более интересное русло, но нет....
И ничего интересного всё равно бы не вышло. Тут подход изначально неверный. Если трудиться над хорошим UI, то (может быть) получится хороший UI. А с его подходом хоть Делфи бери, хоть Шмелфи, выйдет одно... поклёпство.
Это не придирки к словам, просто люди так и выбирают технологию. Смотрят на чужие красивые примеры, хотят получить результат не хуже, смотрят на чём это сделано, какие у этой технологии требования к ресурсам, сколько усилий надо затратить, чтобы получить такое же, и останавливаются на каком-то компромиссе.
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
Здравствуйте, Shmj, Вы писали:
S>Как давно вам доводилось клепать формы? Легко ли дается?
Иногда приходится. Зависит от многих факторов.
S>Что пробовали? Какой подход вам зашел, какие технологии полюбились больше всего?
Технологии тут не самое главное. Они имеют значение, когда на элементы управления нужно какой-нибудь функционал навесить. Важнее, чтобы поведение формы было предсказуемым и удобным для конечного пользователя. А то иногда можно на тотализаторе разыгрывать, на какой следующий элемент перейдёт система.
Но лично мне (лично мне) winforms нравится больше, чем WPF. Наверное потому, что я долгие годы сидел на серверной части, точнее на middleware, а там формы не нужны.
Здравствуйте, Privalov, Вы писали:
P>...Важнее, чтобы поведение формы было предсказуемым и удобным для конечного пользователя. А то иногда можно на тотализаторе разыгрывать, на какой следующий элемент перейдёт система.
А что, не везде можно tab order / tab index выставить?
Я думал, что это базовая функциональность любого gui-дизайнера.
В WPF я не знаю, есть ли такое — я в своё время настолько замучался с его дизайром, что выключил его навсегда, и стал так делать сразу после установки студии — весь XAML только руками (TabIndex тоже руками), от дизайнера там вреда больше чем пользы.
Всё сказанное выше — личное мнение, если не указано обратное.
Ничего не понравилось, везде геморрой. Впрочем я далеко не всё пробовал.
В целом ближе всего к идеалу React. Но много писанины. Могу предположить, что если сделать грамотную библиотеку своих компонентов, то будет нормально, но я пока до такого не доходил.
Здравствуйте, Философ, Вы писали:
Ф>А что, не везде можно tab order / tab index выставить? Ф>Я думал, что это базовая функциональность любого gui-дизайнера.
Там, где я формошлёпствовал, можно. Впечатление, однако, такое, что не все про tab order знают. Или полностью доверяют автоматике. При этом tab order существовал ещё в настольных СУБД типа FoxPro или Clarion.
Ф>В WPF я не знаю, есть ли такое — я в своё время настолько замучался с его дизайром, что выключил его навсегда, и стал так делать сразу после установки студии — весь XAML только руками (TabIndex тоже руками), от дизайнера там вреда больше чем пользы.
Я пару раз всего пробовал его. Но скорее для себя. В реальных проектах с ним не сталкивался. Надеюсь, и не столкнусь.
Здравствуйте, Privalov, Вы писали:
Ф>>В WPF.... P>Я пару раз всего пробовал его. Но скорее для себя. В реальных проектах с ним не сталкивался. Надеюсь, и не столкнусь.
Почему? Что не понравилось?
Всё сказанное выше — личное мнение, если не указано обратное.
Здравствуйте, Философ, Вы писали:
Ф>Почему? Что не понравилось?
Да собственно рисовальщик не понравился. Сейчас уже всех деталей не вспомню. Скажу, что он тормозной был до ужаса.
Я на winforms для себя пару небольших утилит сделал, затем попытался их на WPF переделать. На winforms я всё сделал, что называется, за один вечер. А WPF не зашёл. Я его и забросил.
Здравствуйте, Философ, Вы писали:
vsb>>Ничего не понравилось, везде геморрой. Впрочем я далеко не всё пробовал.
Ф>А что пробовал?
Delphi, Java Swing, Java FX, Qt, Web/Angular, Web/React, React Native, Android (Java), iOS (Cocoa Touch), немного macOS (Cocoa). Далеко не всё из этого глубоко копал, но всё же достаточно чтобы определённое впечатление получить.