Комментарии 181
И чего душой кривить, вот 30 числа нужно было срочно написать конвертор для больших файлов для отправки в ЕГАИС… реально 20 минут и готово.
Нам, дельфистам, некогда курить и пить пиво — работы много. И если честно, не видно внятных альтернатив для решения конкретного ряда задач.
К примеру: система финансово-управленческого учёта специального назначения, Windows native (требование спорное, но оно есть), ничего лишнего, максимальная эргономика с защитой от дурака и зловреда, минимальное время реакции на изменяющиеся требования бизнеса, минимальные требования к инфраструктурному обеспечению (типа ничего, кроме sql сервера).
Предложите альтернативу, я рассмотрю. Честно-честно. Давно хочу альтернативу.
Qt+cpp;
Это в лучшем случае шило на мыло. Ну т.е. если вы знаете C++, и вам нужна среда быстрой разработки толстых, но нативных приложений, то Qt для вас вполне годится. Но мигрировать на неё с Delphi, это просто головная боль, куча времени на поиск новых граблей, и ноль преимуществ в итоге.
Вы кормите мудаков из Эмбракадеро? Ну кто-то же должен кормить мудаков...)
Извини, но ты мудак ;)
На остальное отвечать тебе не вижу смысла.
Поразительно то, что к каждой статье про Delphi найдется такой мудак, не способный пройти мимо. Благо теперь стали минусовать их.
Вы кормите мудаков из Эмбракадеро?
Так, чисто для справки: коммерческая лицензия на Qt стоит порядка $150/месяц.
А оправдываться что в случае лазаруса ты бы не оставил здесь свой «полезный» комментарий не стоит.
- Lazarus, к сожалению, не является полноценной альтернативой Delphi. Для добавления нового компонента в среду разработки необходима пересборка самой среды разработки, что отнимает немало времени и ломает то самое преимущество "склепал за несколько минут работающее приложение".
- QT не подходит по другой причине: у него намного меньше автоматизации при написании кода. Все это мелочи, конечно, но разработку замедляет существенно, что и определяет все то же конкурентное преимущество Delphi — "быстро склепать приложение".
Единственным реальным конкурентом Delphi (в старом понимании сего бренда, сейчас это дело объединили под общим названием) я назвал бы CBuilder, который использует тот же способ быстрой разработки приложений. Но на C++ RAD технология (если правильно помню ее наименование) ложится из-за особенностей языка гораздо хуже.
Часто встречались на форумах претензии к качеству компилятора у билдера особенно на работу с ссылками. Но по скорости разработки, я в 90х писал и на Дельфи и на Билдере, разницы в принципе никакой не было, на билдере всё было так же быстро и приятно.
Жаль, что не сделали среду под Линукс нормальную. (Kylix) так и не взлетел, компилятор вроде не исправили, после перехода на ядро 2.4.18 — помнится, поменяли формат ELF файлов, а Борланду было уже не до него.
Watcom was acquired by Powersoft in 1994, and Powersoft merged with Sybase in 1995.[2] In May 2000, Sybase spun off their mobile and embedded computing division into its own company, Sybase iAnywhere (formerly iAnywhere Solutions Inc.). Sybase tried to re-target the Watcom compiler into a visual RAD tool, Optima++, but in 2003, because the product competed directly with the Sybase offering PowerBuilder, the product was discontinued.
Так вот, Optima++ выглядела примерно как первый 32-битный C++Builder, с различными удобными фичами. Причём поскольку она не несла груз совместимости с Win16 в неё не было VCL-подобного монстра, всё было проще, компактней и поддерживались все Win32-контролы и все их свойства. В общем, «Жаль что она умерла».
Имел возможность познакомиться с этим продуктом. Неплохая штука. Но рядом с CBuilder и Delphi оно и рядом не стояло в плане быстроты разработки.
В RAD от Borland была достигнута самая высокая степень автоматизации создания приложения. И VCL — закономерная плата за это, иначе было просто невозможно столь просто связывать элементы управления друг с другом, создавать на их базе новые и простым образом подключать получившееся как элемент конструктора.
Что-то отдаленно близкое по идеологии разработки приложений, пожалуй, в те старые добрые времена было только у IBM с их Visual Age C++, хотя и он не был столь удобен, как продукция от Borland.
Даже современным конкурентам до Delphi и CBuilder далеко.
Как правило у конкурентов все ограничивается "рисованием интерфейса" и "созданием основных функций для реакции на события". А вот связать визуальные и не визуальные компоненты парой кликов мышки — уже нет. Да и у тех, кто продвинулся чуть дальше, все равно не то.
Так Delphi в общем-то не для больших долго сопровождаемых проектов.
У них в теории другая ниша: в течении короткого отрезка времени (максимум неделя) сваять достаточно простое работающее приложение. Т.е. для быстрого создания одноразовых (а если вдруг сразу получится хорошо, то и постоянно применяемых, но это уже скорее случайность) инструментов, быстрого макетирования "на коленке".
И именно для этой ниши инструмент подходит идеально, намного обходя конкурентов.
При проектировании более серьезных проектов все эти возможности уже дейчствительно теряют актуальность, и особых преимуществ в разработке не дают. Но описанная выше ниша реально существует и требует соответствующего инструмента, который на данный момент представлен продуктами-наследниками Delphi и CBuilder (как они там сейчас называются, "RAD Studio"?).
И их таких много, судя по конференциям. Не говорите о том, о чем понятия не имеете.
Я как раз имею понятие, в том числе о разработке сложных и простых проектов под Delphi, поскольку сам и тем, и другим непосредственно занимался.
Возможно, я не вполне по русски выразился, или вы читали через слово, но я совсем не отрицаю возможности использования Delphi для больших сложных проектов.
Просто баланс использования разных возможностей Delphi несколько меняется. И в результате конкуренты Delphi становятся уже не такими "бесконечно отстающими", а очень даже близкими. И выбор в пользу Delphi становится не таким уж и однозначным, как в случае простых приложений.
По моему опыту при создании простых приложений очень полезна возможность все сделать в несколько кликов мышью, в том числе и невизуальную часть. А при создании серьезных приложений это уже отходит на второй план (разве только при макетировании в начале разработки), а основное внимание уже уделяется собственно коду и его правке "руками". И большое количество связей невизуальных компонент, "спрятанных" в дизайн формы, уже начинает в некоторой степени мешать и раздражать, а потому потихоньку частично "переезжает" непосредственно в код.
Вообще, кто-то всерьёз в 21-м веке предлагает делать меню вот так:

???? И ставит мне минусы, когда я предлагаю RAD альтернативы? Удивительные люди :)
Можно также вспомнить отличную переносимость кода вверх. Делфи, может, несколько консервативен, зато переносимость кода у него отличная. А это — один из больших плюсов как раз на долгоиграющих больших проектах. Насколько я знаю — этим могут похвастаться далеко не все языки.
Разработка чего-то вроде приведенного примера автоматизируется не только в Delphi, а потому не является преимуществом Delphi,
А вот возможность мышкой быстро набросать неочевидные связи между визуальным и невизуальным (то самое конкурентное преимущество) при сопровождении большого проекта часто превращается в серьезную проблему (т.е. в совсем не преимущество), поскольку эти связи не всегда просто отслеживаются (в силу своей необязательности и неочевидности).
Есть, конечно, вещи достаточно простые и понятные вроде таймера на форме.
А вот когда, например, в изобилии появляются разнообразные компоненты для доступа к БД, связанные с различными визуальными компонентами, то при превышении некоторой сложности проекта становится "весело". Оно, конечно, красиво и на первый взгляд понятно выглядит, но спрятанные связи...
а потому не является преимуществом Delphi
Согласен на такую формулировку: является преимуществом не только Delphi.
Стоит смотреть не только наличие механизма визуального проектирования, но и на количество и качество компонент для Делфи и для других языков.
Пример с другого форума, сравнивали компоненты TRichEdit для разных языков:
Delphi:
C++

то при превышении некоторой сложности проекта становится «весело».
У нас не было описанных проблем, и я ни разу не видел жалобы на это на форумах, возможно, просто повезло, конечно.
Схемы данных не помогут?

И каким именно образом схемы данных могут помочь быстро понять, с каким именно TDatabase связаны различные TQuery? А таких связей у компонента может быть очень много.
И каким именно образом схемы данных могут помочь быстро понять, с каким именно TDatabase связаны различные TQuery?
Если опустить тот момент, что задумываться о связи между TQuery и TDatabase вам придется скорее всего только один раз, в момент первичной настройки TQuery, то в Delphi для этого был другой инструмент, назывался Object TreeView или что-то в этом роде. В любом случае, VCL спроектирована таким образом, что связи между компонентами в подавляющем большинстве случаев иерархические, а не «многие ко многим», и хорошо визуализируются и анализируются. Я в своё время участвовал во многих достаточно крупных проектах на Delphi, с мегабайтами текстов и сотнями форм. Своих проблем хватало, но чего-чего, а проблем со сложными неочевидными связями между компонентами не было никогда.
при сопровождении большого проекта часто превращается в серьезную проблему
Это больше вопрос соблюдения архитектурных стандартов, нежели недостатков среды разработки. Можно подумать, с помощью делегатов и свойств в C# есть какая-то сложность сделать жуткий спагетти-код.
Вопрос в необходимости отказа в больших проектах от использования главного конкурентного преимущества Delphi, без которого он становится таким же, как остальные IDE с редактором форм. И тогда начинают сказываться другие вопросы вроде крайней падучести многих версий Delphi, особенно обостряющейся на как раз больших проектах.
Не знаю — откуда у вас появляется такая глобальная проблема со связями. У меня таких проблем не было ни разу.
У себя, что бы связи к базам долго не искать, расставляю компоненты на дата-модулях. Вот, например, один из модулей, каждая транзакция под своим коннектом. Всё связанное — снизу. Просто, удобно и всё видно:

Чтобы заставить Indy работать многопоточно надо также приложить немало усилий, по сравнению с которыми возможность увидеть его иконку на форме — ничто.
Я лет десять назад писал HTTP-сервер для клиент-банка на Indy. Многопоточный, с пулом коннектов, с шифрованием и т.д… Поэтому хотелось бы, чтобы вы уточнили, какие там усилия были нужны. У меня, насколько я помню, от библиотеки не потребовалось ничего — там всё прекрасно работало из коробки. Только класс-прокладку от TIdHTTPServer к датамодулю WebBroker надо было подправить.
В итоге приходится искать решение через хитрые комбинации nginx с другими инструментами с отказом от части требований.
Мне бы такое выкладывать было стыдно.
Можно также вспомнить отличную переносимость кода вверх.
О да!
var
Bounds: TRect;
Width: Integer;
...
with Bounds do
begin
Width := Right - Left;
...
Упс, в новой версии у record
появились свойства, в том числе и Width
у TRect
…
То, что за использование with
стоит бить по рукам — другой вопрос.
Поэтому with не рекомендуют использовать
Что никак не мешает им быть в унаследованном коде.
не давать переменным распространенные имена.
Это не серьёзно. Имена должны быть удобными и понятными.
на практике проблема с with возникает когда указывают несколько объектов — with a, b do, и в b появляется то к чему обращаешься в a.
другие случаи это криворукость программиста
Если же вас зацепила первая фраза, то это просто реальная характеристика инструмента, который можно использовать в самых разных целях.
Если для быстрого создания простых приложений Delphi подходит идеально и на порядок лучше других, в то время как в других областях он хотя и очень даже подходит, но уже совсем не лучший, то логично предположить, что он все-таки предназначен именно для для быстрого создания простых приложений, а не для больших проектов.
И при добавлении каждого нового модуля его можно сразу писать серьезно прорабатывая архитектуру, а можно визуально набросать необоходимый функционал, вернуться к основному функционалу, а затем постепеннно прорработать этот модуль. это сильно сокращает общие сроки разработки проекта.
У Лазаруса список поддерживаемых платформ вообще огромен. При том, что он бесплатный, и последние сборки, например, отсюда: https://www.getlazarus.org вполне пригодны для работы. Есть биндинги Qt и Gtk, под виндой и линуксом. Так что для того, что бы работать с Qt совсем не обязательно переходить на плюсы.
JS, который мы тоже используем, сильно ограничен рамками браузера. Некоторые банальные вещи — например — копирование в буфер в нём сделать просто нельзя. Многие вещи браузеро-зависимые. То есть — получается не просто платформы, а куча браузеров на множестве платформ. Мы активно используем HMLT5, многопоточную обработку, WebGL. У разных браузеров на разных платформах свои особенности. Вместо написания функциональности приходится постоянно заниматься оптимизацией под браузеры.
Платная, да. По цене смартфона. Есть и бесплатные варианты, например http://www.morfik.com
Есть backend-фреймворки — https://github.com/silvioprog/brookframework
Web Front End Framework (on Delphi)
система финансово-управленческого учёта специального назначения
ничего лишнего, максимальная эргономика с защитой от дурака и зловреда, минимальное время реакции на изменяющиеся требования бизнеса, минимальные требования к инфраструктурному обеспечению (типа ничего, кроме sql сервера)
Как вариант платформа 1С 8.3.х. (про цену лицензий в требованиях ничего не было :)). Но если система большая то цена лицензий в стоимости системы занимает от силы 1% ну и Delphi тоже не бесплатная.
По остальным показателям именно в «финансово-управленческом учёте» 1С вполне способна составить конкуренцию Delphi.
А если нужно и «минимальное время реакции на изменяющиеся требования бизнеса» то delphi сильно отстает от 1С.
А если нужно и «минимальное время реакции на изменяющиеся требования бизнеса» то delphi сильно отстает от 1СГде?!!!
Главная проблема с 1С — то, что она живёт своей жизнью, развивается и обновляется исходя из собственных интересов. Фактически, с какого-то момента придётся выбирать — или фиксировать их версию, или минимизировать своё вмешательство. И что будет через несколько лет такой жизни? Тут нету полного контроля и владения. Что и зачем там происходит внутри — тема для отдельной платной консультации. Куча лишних сущностей, нам не нужных, при том, что наверняка нет отдельных немаловажных кусочков.
Это как тот халат — перламутровые пуговицы на него перешить можно, но галоши не наденешь без боли. А бизнес хочет галоши и шляпу.
Короче, вы упустили слова: «специального назначения» (не универсальная, не общего назначения), «ничего лишнего». Из рыночного ПО — это, наверное, поле для ERP систем, до которых 1С ценой не доросла. Вот только реальное внедрение и сопровождение ERP — очень затратная вещь в реальности.
В целом же платформа содержит все что не обходимо:
1. Работа с почтой, фтп, WEB сервисы (как сервер так и клиент) HTTP сервисы (аналогично), поле HTML документа позволяет встраивать HTML в разрабатываемые решения.
2. Мощная система контроля доступа на уровне строк RLS
3. Ведение журналов на уровне системы
4. Мощная система отчетов которую в т.ч. могут настраивать и пользователи СКД
5. Работа с COM
6. Поддержка всего более менее используемого торгового оборудования (Сканеры ШК, терминалы смарт карт, фискальные регистраторы, кассовые аппараты).
Это далеко не полный список. Плюс многие разработки уже есть в типовых системах и так же доступна БСП в которой накоплен опыт огромной компании и которая доступна при разработке своих решений.
«Вот только реальное внедрение и сопровождение ERP — очень затратная вещь в реальности.»
Вы хотите сказать что написать с 0 систему уровня ERP и затем внедрить ее на предприятии намного дешевле? Сколько времени вам потребуется на написание подобной системы?
В целом же при прочих равных на 1С можно гораздо быстрее и гораздо дешевле написать для бизнеса практически все что можно написать на Delphi.
Притом вы сразу получаете WEB клиент + в нагрузку возможность создать клиентов для Android/IOS
В качестве примера, сколько денег и времени у вас уйдет на реализацию:
https://www.youtube.com/watch?v=DgPuF_WTyB8
В 1С это будет доступно по подписке ИТС (которая в общем то есть почти всегда).
А бизнесу это нужно еще вчера.
«Вот только реальное внедрение и сопровождение ERP — очень затратная вещь в реальности.»
Вы хотите сказать что написать с 0 систему уровня ERP и затем внедрить ее на предприятии намного дешевле? Сколько времени вам потребуется на написание подобной системы?
Лет 13-14 и можно не останавливаться… Её не надо писать — она есть. И вопрос в том, целесообразен ли переход на 1с, если организационных проблем возникнет — море, а существующая система в полном порядке, развивается, дорабатывается и свои задачи выполняет?
Я не говорю, что 1с — это неправильно. Кому как. Есть много правильных решений, и наше — одно из них. И если вернуться чуть пораньше, речь шла не о выборе разрабатывать / покупать, а «Несчастные, вы пишете на Дельфи?!!! Есть же куча более модных языков!» — «Да, мы пишем на Дельфи, и нам кайфно! Мы счастливые, правда!». Честно, не знаю никого, кто наслаждается программированием под 1С. Не говорю, что их нет, но правда — не знаю.
Видео про 54-ФЗ глянул, честно говоря, мельком — уж очень медленно барышня вещает. Кассу с передачей данных коллега прикрутил со вторника по утро пятницы, и самое сложное было, судя с моей стороны наблюдателя, это экономия бумаги (торгуем оптом, чеки получаются многометровые). Вот и все затраты на более, чем 10 филиалов. Никаких настроек на местах, никаких семинаров по 3500 рублей за билет. Купят несколько десятков касс, подключат, будут работать. У бизнеса это уже есть, и даже не вчера.
по нумерованным пунктам — у нас это тоже есть. Есть автоматизация склада, есть интеграция с системами мобильной торговли, есть электронный документооборот с поставщиками… Много чего есть. И зачем платить за 1С? Из любви к революциям? Может, у нас меньше перламутровых пуговиц и размеренно вещающих видеобарышень, но всё, что нужно, есть сейчас и будет потом.
Есть гигантская масса учетных задач где 1С нет равных по скорости разработки. Стоимость лицензии, по сравнению экономией на разработке и стоимостью владения, ничтожна.
Есть гигантская масса других задач, которые решить с помощью 1С никак нельзя. Тут вотчина Delphi и еже с ними.
В спорах по лицензиям 1С не нужно забывать и такой аспект как единовременность этих выплат. Лицензия покупается один раз и потом на этой машине можно использовать столько баз (конфигураций) – сколько душе угодно. Так часто и поступают: Берут «бухгалтерию», а потом еще с десяток внутренних систем внедряют.
Можно долго спорить что круче, но если 1С-ник понятия не имеющий про SQL, утечки памяти и прочие «интересности», может в мгновение ока, буквально на коленке, наклепать мини учетную систему — это дорогого стоит. И только за одно это 1С можно уважать.
Главная проблема с 1С — то, что она живёт своей жизнью
Я бы лучше и не сформулировал. Они ведь на основе чего-то строят свои планы по развитию платформы. Или типа художник так видит….
Изучать надо WinAPI, тогда и проблем не будет.
Работаю с OWL/VCL более 20 лет. Про «проблему мерцания» слышу в первый раз.
но вы форсируете «папу» «напечататься» (WM_PRINTCLIENT), а это может иметь побочные эффекты. Лет адцать назад я встречал контролы, которые не давали «печататься» — чтобы нельзя было сделать, скажем, слепок с защищенной пдфки, которую контрол демонстрирует.
Как я уже писал, класс показал свою надежную работу :)
Но для таких «кривоватых» контролов я сделал виртуальный метод procedure DrawBackground(DC: HDC); virtual;, в котором для обхода проблем подобных компонентов можно переопределить отрисовку фона.
Кроме того компонент имеет множество настроек буферизации.
Блин, вы о чем?
Что за мерцание?
Пример такого стандартного Windows приложения и как это самое мерцание воспроизвести?
Открыл Device Manager — ничего не мерцает, как я ни меняю размер окна.
С какой частотой и как быстро его надо менять?
Можно еще открыть «Управление компьютером» и полистать там вкладки.
Ну предположим, что я совсем идиот, и флаг "отображать содержимое" у меня был отключен.
Проблема в том, что он был включён и поведение не воспроизводилось.
Аналогично с вкладками компьютера.
Вы можете уточнить свою конфигурацию, на которой вы это воспроизводите?
Действительно надо достаточно долго его туда/сюда дергать.
Но я не уверен, что подобное требует фикса :)
Наследовать компоненты не требовалось, более того этот механизм работал и с вообще чужими компонентами, которые и знать не знали что мы боремся с мерцанием.
Блин, вы о чем?
Что за мерцание?
Как вы интересно боролись если не знали о мерцании?
Легко боролись.
Точно так же как друг на курсовой боролся с ним же при рендере самодельной ртс.
Но вот где-то с начала 2000-х как-то не доводилось встречать настолько криворукие офисные приложения где прямо необходимо было с этим бороться.
Отсюда и удивление, что кто-то сейчас умудряется это мерцание встречать…
И что удивительно создавать его в своих приложениях, чтобы
от мерцания вытекают глаза.
Легко боролись.
Точно так же как друг на курсовой боролся с ним же при рендере самодельной ртс.
Я к тому, что странно бороться с мерцанием, не зная что это:
Блин, вы о чем?
Что за мерцание?
И что удивительно создавать его в своих приложениях, чтобы
Ну майкрософт создает как-то же?
решалась подобная задача путем отрисовки «всей» формы в буфер и только после этого вывода ее.
К слову в Win32 невозможно все окно забуферизировать нормально.
Я думаю вы просто «не в теме», проблема есть, и простых способов «из коробки» нет
Я к тому, что странно бороться с мерцанием, не зная что это:
Я к тому, что не у рукожопов эта проблема в офисных приложениях отсутствует как класс настолько давно, что упоминание вызывает удивление.
И решения из коробки не было и в 90-х
В том же vb4 приложении использовались вызовы winapi функций из gdi32 библиотеки.
Какие конкретно уже не помню. В памяти остались лишь ключевые слова getDC, HWND
Ну майкрософт создает как-то же?
Угу, ровно там и так, что надо очень постараться, чтобы его заметить и воспроизвести.
Это сильно отличается от ваших приложений от которых, по вашим словам «вытекают глаза».
Я к тому, что не у рукожопов эта проблема в офисных приложениях отсутствует как класс настолько давно, что упоминание вызывает удивление.
Ну раз я, все отблагодарившие меня, люди использующие в своих проектах данное решение «рукожопы», то я не намерен продолжать дискуссию.
Минусанул.
Миллионы леммингов не могут ошибаться…
Ведь вы один из тех миллионов.
И вы, конечно же, не ошибаетесь
Успокойся, если не понимаешь о чем речь — промолчи, не надо засирать комментарии.
Сначала пишут такие программы

Потом героически преодолевают трудности…
Переход на личности — еще один показатель вашей полной некомпетентности.
Хотя это не худший из образцов, просто первый попавшийся
Возможно, в данном случае такой вид был оправдан.
Объем человеческого внимания ограничен.
Оправдан или нет это отдельная тема
ЕМНИП у того же SAP в каких-то продуктах доступ к экрану интерфейса любого уровня вложенности можно было получить в три нажатия клавиши
Не всегда есть резон упрощать интерфейс, ломая при этом удобство использования.
Соответственно редактировался он года 3-4 назад
Во-вторых, офисным ПО не занимаюсь уже примерно половину вашей жизни.
В-третьих, ваше «не всегда» это детский лепет.
Поскольку удобство использования напрямую зависит от навыков человека и в том числе его внимания.
Если этого самого внимания не хватает, то и скорость и удобство использования будут отрицательными.
Во-первых, профилю примерно треть вашей жизни уже.
Во-первых нет ничего тупее апеллирования возрастом оппонента.
Соответственно редактировался он года 3-4 назад
Тем не менее это показатель.
Во-вторых, офисным ПО не занимаюсь уже примерно половину вашей жизни.
Во-вторых, если вы не занимаетесь уже давно разработкой ПО, ваши знания могли устареть.
А очередное упоминание возраста не красит вас.
В-третьих, ваше «не всегда» это детский лепет.
Поскольку удобство использования напрямую зависит от навыков человека и в том числе его внимания.
Если этого самого внимания не хватает, то и скорость и удобство использования будут отрицательными.
В-третьих, вы вообще не привели никаких логичных доводов, кроме упоминания возраста.
Я, как пользователь, чувствую неудобство от «интерфейсов для домохозяек», и я рад когда применяется инженерный подход, пусть и не всегда красивый, но при этом удобный и функциональный.
Предлагаю закончить этот флейм.
Во-вторых, если вы не занимаетесь уже давно разработкой ПО, ваши знания могли устареть.
Я тупых не люблю категорически.
Упоминание vb4 должно было явно вам показать когда это было. Более того никакой отсылки к современному апи не было.
Вы решили вернуться к этому вопросу повторно.
В связи с этим у меня есть вопрос — вы тупой?
Тем не менее это показатель.
Показатель это то, что указанные домены в свое время держали нагрузку в 2-2.5 млн уникальных посетителей в сутки
А это вам статистика рунета сейчас
http://www.liveinternet.ru/rating/ru/
Для понимания.
Я, как пользователь, чувствую неудобство от «интерфейсов для домохозяек», и я рад когда применяется инженерный подход, пусть и не всегда красивый, но при этом удобный и функциональный.
Вы путаете инженерный подход и тяп-ляп перегруженный интерфейс по факту.
В результате инженерного подхода может родиться как тысячекнопочный так и двухкнопочный интерфейс.
Вы путаете инженерный подход и тяп-ляп перегруженный интерфейс по факту.
В результате инженерного подхода может родиться как тысячекнопочный так и двухкнопочный интерфейс.
Вот именно, при инженерном подходе может выйти интерфейс с кучей контролов, который для кого-то будет выглядеть перегруженным, но для человека пользующегося этой программой он будет очень удобным.
Показатель это то, что указанные домены в свое время держали нагрузку в 2-2.5 млн уникальных посетителей в сутки
А это вам статистика рунета сейчас
http://www.liveinternet.ru/rating/ru/
Вы можете написать что угодно задним числом, почему я должен в это верить?
А писал я о том, как можно обвинять кого-то в криворукости, тупости и т.д. когда вы не удосужились из профиля ссылки нерабочие потереть за столько лет?
Я тупых не люблю категорически.
Упоминание vb4 должно было явно вам показать когда это было. Более того никакой отсылки к современному апи не было.
Вы решили вернуться к этому вопросу повторно.
В связи с этим у меня есть вопрос — вы тупой?
Я долго пытался не поддаваться на провокации, но вы усердно добивались своего, и вы добились!
Вы — критин.
Вот именно, при инженерном подходе может выйти интерфейс с кучей контролов, который для кого-то будет выглядеть перегруженным, но для человека пользующегося этой программой он будет очень удобным.
Это не инженерный подход.
Рекомендую сходить в интернет и почитать об этом.
Вы можете написать что угодно задним числом, почему я должен в это верить?
А писал я о том, как можно обвинять кого-то в криворукости, тупости и т.д. когда вы не удосужились из профиля ссылки нерабочие потереть за столько лет?
Не обязаны. И мне собственно говоря насрать верите вы или нет.
Презентационная роль профиля мне сейчас не требуется. Соответственно зачем мне его исправлять или тем более писать что-то вроде «лучший контрол....»? :-D
P.S.
Вы — критин.
крЕтин
Я тупых не люблю категорически.
Получается вы сами себя недолюбливаете?
3 человека из 1000 с таким же или более высоким интеллектом немного примиряют меня с моими недостатками.
Не знаю о ваших недостатках, но у вас явно комплексы связанные с уровнем IQ
Раскрою вам глаза.
Нетерпимость к чужой тупости естественно произрастает из собственных комплексов о недостатке моего личного интеллекта.
Что не отменяет указанных выше цифр.
P.S. И, да, не вам судить об истинности. Не тот уровень у вас
Показатель это то, что указанные домены в свое время держали нагрузку в 2-2.5 млн уникальных посетителей в сутки
И мы типа джентльмены должны верить друг другу на слово?
А нагрузка разве в уникальных посетителях измеряется? правда?
тогда и мне есть чем похвастать:
Мой домашний компьютер легко справляется с обработкой 15-80 тысяч запросов (статика) в секунду. Получается если в среднем уникальный посетитель генерирует 100 хитов, то мой домашний компьютер будет «держать» 25-30 млн. уникальных посетителей в сутки.
Понятно что мой пример (как и ваш) — это метрики сферических коней в вакууме. Но все же получается, что ваши домены справлялись с нагрузкой на порядок меньшей чем моя домашняя (не самая навороченная) машина.
Таким образом вытекает самый главный вопрос:
Как же вы умудрились добиться столь низких показателей производительности для вашего сферического коня в вакууме?
А теперь верну вам ваше же выражение — вопрос (цитата):
В связи с этим у меня есть вопрос — вы тупой?
и закончу вашим же выражением
Я тупых не люблю категорически
тут согласен. Вы мне явно не нравитесь…
А нагрузка разве в уникальных посетителях измеряется? правда?
тогда и мне есть чем похвастать:
Ну вот когда вашу статику захотят посмотреть в таких объемах, тогда и поговорим о разнице в нагрузке между статикой и полнотекстовым поиском.
А до тех пор не обезьяничайте, пытаясь подражать мне
Ну вот когда вашу статику захотят посмотреть в таких объемах, тогда и поговорим о разнице в нагрузке между статикой и полнотекстовым поиском.
Так статистику вашего полнотекстового поиска никто и не видел. Это лишь ваши слова — то есть пшик.
А до тех пор не обезьяничайте, пытаясь подражать мне
Обезьянничая подражать вам? Вы себя считаете обезьяной, коль подражая вам обезьянничают?
Но позвольте! Вы себе явно льстите, я вам не вовсе и подражал.Много чести для обезьяны…
Ну ок, а мне-то это зачем?
Вы себе явно льстите, я вам не вовсе и подражал.Много чести для обезьяны…
Ну раз для вас слишком много чести…
То, гражданин обезьяна, самоликвидируйтесь из обсуждения непонятно чего.
да и вообще, прежде чем написать, я проверил — с выключенными темами мерцает с включенными нет.
Возможно у вас быстрая машина и вы не успеваете заметить мерцание, или приложение на котором вы проверяете буферизирует отрисовку.
Новое есть — если про VCL, то теперь есть поддержка юникода, скинов.
Появился новый интерфейсный фреймворк — FMX, а с ним и поддержка MacOS, Android, iOS.
В следующем релизе будет серверный Linux.
Ну и кончено же в языке много изменений произошло.
Класс имеет свойство BufferedChildrens
Используйте Childs или Children (а еще лучше глагол: BufferChilds). Слова Childrens не существует, ибо Children — уже множественное число.
Но я знаю как можно в течении времени исправить, добавив правильный «двойник» свойства, скрыть в дизайнере неправильное свойство через ToolsApi и т.д., при этом из dfm будет считываться неверное свойство, а записываться будет верное свойство. Если возможно будет исправить не сломав совместимость, то будет исправлено.
См. TVS_EX_DOUBLEBUFFER и LVS_EX_DOUBLEBUFFER.
Его достаточно подключить в файле с формой :)
{$ifdef VER210UP} {$REGION 'BACKUP'}
(*
// Main magic located here:
procedure TESCustomControl.PaintWindow(DC: HDC);
var
BufferDC, TempDC: HDC;
BufferBitMap: HBITMAP;
UpdateRect: TRect;
SaveViewport: TPoint;
Region: HRGN;
begin
Зачем вам система контроля версий, если вы продолжаете хранить полуразложившиеся трупы в комментариях?
(я не автор поста) Иногда удаленный код удобно оставлять в комментариях, чтобы видеть его происхождение через blame/diff. Иначе отследить, что тут когда-то давно был какой-то код, довольно сложно
На сколько я помню всё можно было буферизировать кроме richedit эта редиска плевать хотела на dc который ей передают и вместо текста получалась дырка от бублика. Вы смогли это победить?
memo1.visible.false
// много изменений в сожержимом
memo1.visible.true
нет ни мерцания, и задержка на обращение к компоненту снижается по времени раз в 10, придумал такое «методом тыка». Может кому-то пригодится тоже.
Используйте:
Memo1.Lines.BeginUpdate;
try
// изменения
finally
Memo1.Lines.EndUpdate;
end;
Мерцания пропало (как и ожидалось), но теперь получился просто исчезающий и появляющийся компонент.
По мне так лучше будет мерцание, чем моргание всем компонентом ))
Помню, сколько я часов провел на форумах, применяя всякие уловки против мерцания… Честно признаюсь, я в то время так и не нашел годного решения. Потому данная статья вызвала лично мне приятную ностальгию, а автору — реальное уважение.
Я когда-то около трех лет работал с VCL, правда на CBuilder. Задачей было организовать автоматизацию с красивым интерфейсом быстрыми темпами в одном банке. На то время лучшего решения чем Delphi5/CBuilder5 (кому что нравилось) попросту не было. Вот, столько лет прошло, а наши программы до сих пор нормально и успешно там работают без всякого саппорта.
Теперь же, работая чуть в другой сфере, отойдя от оконных приложений, мне лично, особенно когда надо «нафигачить что-то под винду с окнами побырику» кроме RADStudio я ничего не хочу знать, он меня устраивает всем. На CBuilder, к примеру, я пишу редактор уровней для своего движочка. Правда, чтобы избавиться от мерцания основного поля, я полностью отказался от TCanvas в его классическом применении, рендерю в него прямо OpenGL контекст.
Уже использую в проекте, обнаружил непонятное поведение TEsLayout при использовании тем.
Пишу в личку.
Поднадоели исходники С# и C++ в функциональном стиле, как приятно видеть старый добрый Паскаль
При этом кто-то продолжает спокойно, в своё удовольствие, работать с полюбившимся инструментом, не смотря на то, что его активно постоянно поливали и поливают грязью. Зарабатывая при этом достаточно, что бы выкупить землю в центре областного города и построить там частный дом. Завидуйте дальше :)
VCL, избавляемся от мерцания, раз и навсегда