Давно хотел задать этот вопрос, боялся, что запинают. Но все-таки задам. Итак,
Почему VCL такая дубовая?
Я имею в виду как раз то, за что ее так хвалят — быстрое создание удобного пользовательского интерфейса. Вот как раз этого качества я в ней обнаружить не могу, наоборот, сделать что-то совсем простое или практически невозможно или очень сложно. Чтоб было понятно о чем я, скажу, что когда-то писал программки на Access, вот там действительно получается очень удобный и красивый интерфейс (надеюсь, никто не будет мне советовать на него перейти).
Например, такая простая вещь, как переход между контролами через Enter, стрелочки, да, знаю, можно сделать через обработку KeyPress, есть и компоненты для этого, но это же все лишний геморрой и причем для каждой формы и переход по стрелочкам все равно не сделаешь.
Потом, что меня убивает, невозможно определить такое событие, как ввод пользователем чего-либо в какое-то поле. Ведь мелочь же совершеннейшая! Тем не менее помню, как на эту мелочь я когда-то убил уйму времени и все равно красиво сделать не удалось, а нужно было всего-то лишь, чтобы при вводе пользователем даты открывался архив, ну и на какое событие его открывать? На exit нельзя, пользователь ввел дату и спокойно ждет когда откроется архив и уходить никуда не собирается, на change тоже нельзя, он реагирует на каждый нажатый символ, тем более, что можно дату не вводить, а выбрать из календаря, на клавишу Enter, опять-таки, если дата выбирается из календаря, то с какой радости пользователь должен нажимать Enter? В общем так и не удалось эту проблему решить.
Можно было еще долго продолжать этот список, но ладно, не буду утомлять народ.
Конечно все эти проблемы можно решить с помощью создания компонент в ран-тайм, но тогда теряется визуальность разработки и зачем тогда вообще нужен этот RAD?
Здравствуйте Writer, Вы писали:
W>Давно хотел задать этот вопрос, боялся, что запинают. Но все-таки задам. Итак,
W>Почему VCL такая дубовая?
W>Например, такая простая вещь, как переход между контролами через Enter
А чем тебе Tab не подходит, как у всех Windows программ
календаря, то с какой радости пользователь должен нажимать Enter? В общем так и не удалось эту проблему решить.
А в access как это решается как он угадфыает что пользователь закончил вводить например строку.
W>Конечно все эти проблемы можно решить с помощью создания компонент в ран-тайм, но тогда теряется визуальность разработки и зачем тогда вообще нужен этот RAD?
Зачем в runtime. Напиши свой компонент кторый все делает как надо и юзай его.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Re[2]: Почему VCL такая дубовая?
От:
Аноним
Дата:
08.08.02 07:08
Оценка:
Здравствуйте Anatolix, Вы писали:
A>А чем тебе Tab не подходит, как у всех Windows программ
Ну приучили нас к трепетному отношению пользователю, бабушки, которые с досовских программ привыкли переходить ентером не будут на таб переучиваться
A>календаря, то с какой радости пользователь должен нажимать Enter? В общем так и не удалось эту проблему решить.
A>А в access как это решается как он угадфыает что пользователь закончил вводить например строку.
А там для этого есть специальное событие и можно быть уверенным, что оно всегда отработает, когда нужно, либо после выбора значения из списка, либо после ввода и нажатия Enter, либо при переходе на другой контрол и т.д.
W>>Конечно все эти проблемы можно решить с помощью создания компонент в ран-тайм, но тогда теряется визуальность разработки и зачем тогда вообще нужен этот RAD?
A>Зачем в runtime. Напиши свой компонент кторый все делает как надо и юзай его.
И сколько человеко-месяцев, -лет, -десятилетий на это уйдет? Я даже из готовых библиотек ничего по настоящему стоящего не видел. Ну есть что-то хорошее в Ehlib, но до идеала далеко.
Когда пытаешься переписывать, приходишь к тому, что всю VCL целиком надо переписать :)
&Y>Здравствуйте Writer, Вы писали:
W>>Например, такая простая вещь, как переход между контролами через Enter,
&Y>так есть же исходники, взял переделал у главного предка и перекомпили VCL, всех делов то
Это мечты. Из исходников весь VCL нельзя собрать, они не полные.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте Writer, Вы писали:
W>Давно хотел задать этот вопрос, боялся, что запинают. Но все-таки задам. Итак,
W>Почему VCL такая дубовая?
Не согласен. VCL в первую очередь это идея и технология?
Вопрос не коректен — из того что ты написал ниже он должен звучать так:
Почему текщая реализация VCL от фирмы Borland такая дубовая?
W>Можно было еще долго продолжать этот список, но ладно, не буду утомлять народ. W>Конечно все эти проблемы можно решить с помощью создания компонент в ран-тайм, но тогда теряется визуальность разработки и зачем тогда вообще нужен этот RAD?
Умиляет меня это — то VCL ругаю за то что в ней навороченно много всего, то за то что мало всего...
RAD и "визуальность разработки" — это веши связанные только косвенно, не нужно путать.
Можно создавать не визуальну програму и использовать RAD.
Здравствуйте Writer, Вы писали:
W>Давно хотел задать этот вопрос, боялся, что запинают. Но все-таки задам. Итак, W>Почему VCL такая дубовая? W>Конечно все эти проблемы можно решить с помощью создания компонент в ран-тайм, но тогда теряется визуальность разработки и зачем тогда вообще нужен этот RAD?
Всё это ерунда, а не аргументы. Моё мнение заведомо несубъективно, тк я Дельфи вообще одним глазом видел. И я грубый сторонник VC++.
Но это не аргументы против. Это ерунда какая-то.
MFC тоже такую дрянь не поддерживает. Так что ДУБОВАЯ ОНА?
Здравствуйте Аноним, Вы писали:
A>>Зачем в runtime. Напиши свой компонент кторый все делает как надо и юзай его. А>И сколько человеко-месяцев, -лет, -десятилетий на это уйдет? Я даже из готовых библиотек ничего по настоящему стоящего не видел. Ну есть что-то хорошее в Ehlib, но до идеала далеко. А>Когда пытаешься переписывать, приходишь к тому, что всю VCL целиком надо переписать :)
Вот-вот!!! За это я и не люблю VCL. Одним словом проблема формулируется так: "Или пишешь так, как предусмотрено Borland'ом или пишешь все сам с нуля". :maniac:
W>>Можно было еще долго продолжать этот список, но ладно, не буду утомлять народ. W>>Конечно все эти проблемы можно решить с помощью создания компонент в ран-тайм, но тогда теряется визуальность разработки и зачем тогда вообще нужен этот RAD?
Y>Умиляет меня это — то VCL ругаю за то что в ней навороченно много всего, то за то что мало всего...:)
Да нет же, ни за то и ни за это. За костность, негибкость и тормознутость. Извените за бональность, но геморойно создать в нем WinAmp и это так. VCL не может быть главной платформой для создания интерфейсных приложений, потому что не может быть никогда!!!
Y>RAD и "визуальность разработки" — это веши связанные только косвенно, не нужно путать.
Согласен. Это истина.
Y>Можно создавать не визуальну програму и использовать RAD.
Здравствуйте DrMom, Вы писали:
DM>Вот-вот!!! За это я и не люблю VCL. Одним словом проблема формулируется так: "Или пишешь так, как предусмотрено Borland'ом или пишешь все сам с нуля".
Хм. Вообще говоря это относится ко всем библиотекам.
(за исключением тех в которых ничего не предусмотрено вообще
и все надо писать с нуля)
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте PSP, Вы писали:
PSP>Здравствуйте Writer, Вы писали:
W>>Давно хотел задать этот вопрос, боялся, что запинают. Но все-таки задам. Итак, W>>Почему VCL такая дубовая? W>>Конечно все эти проблемы можно решить с помощью создания компонент в ран-тайм, но тогда теряется визуальность разработки и зачем тогда вообще нужен этот RAD?
PSP>Всё это ерунда, а не аргументы. Моё мнение заведомо несубъективно, тк я Дельфи вообще одним глазом видел. И я грубый сторонник VC++.
PSP>Но это не аргументы против. Это ерунда какая-то.
Вот ты вначале поработай в VCL разрабатывая сложный интерфейс с нестандартными элементами и посмотрим, что-ты скажешь потом. :)
PSP>MFC тоже такую дрянь не поддерживает. Так что ДУБОВАЯ ОНА?
Вот только не надо так про MFC. Я может и не долюбливаю MFC, но он все же позволяет сделать и такое и многое др. и ваще все, что хочешь. (с последним это я конечно же загнул) :)
Здравствуйте DrMom, Вы писали:
PSP>>Но это не аргументы против. Это ерунда какая-то.
DM>Вот ты вначале поработай в VCL разрабатывая сложный интерфейс с нестандартными элементами и посмотрим, что-ты скажешь потом.
PSP>>MFC тоже такую дрянь не поддерживает. Так что ДУБОВАЯ ОНА?
DM>Вот только не надо так про MFC. Я может и не долюбливаю MFC, но он все же позволяет сделать и такое и многое др. и ваще все, что хочешь. (с последним это я конечно же загнул)
Дак и VCL позволяет. Все в прямоту рук упирается в обоих случаях.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте Anatolix, Вы писали:
A>Здравствуйте DrMom, Вы писали:
DM>>Вот-вот!!! За это я и не люблю VCL. Одним словом проблема формулируется так: "Или пишешь так, как предусмотрено Borland'ом или пишешь все сам с нуля". :maniac:
A>Хм. Вообще говоря это относится ко всем библиотекам. A>(за исключением тех в которых ничего не предусмотрено вообще A>и все надо писать с нуля)
Ладно, я понял что не совсем понятно выразился. :shuffle: Вобщем доступ к недрам реализации у VCL очень низкий. На мой взгляд ОЧЕНЬ низкий. Идеальный вариант, когда я могу используя библиотеку в любой момент взять бразды правления в свои руки, а когда закончу сдать их обратно. :super:
Здравствуйте Anatolix, Вы писали:
A>Здравствуйте DrMom, Вы писали:
PSP>>>Но это не аргументы против. Это ерунда какая-то.
DM>>Вот ты вначале поработай в VCL разрабатывая сложный интерфейс с нестандартными элементами и посмотрим, что-ты скажешь потом. :)
PSP>>>MFC тоже такую дрянь не поддерживает. Так что ДУБОВАЯ ОНА?
DM>>Вот только не надо так про MFC. Я может и не долюбливаю MFC, но он все же позволяет сделать и такое и многое др. и ваще все, что хочешь. (с последним это я конечно же загнул) :)
A>Дак и VCL позволяет. Все в прямоту рук упирается в обоих случаях.
Конечно же позволяет, разница лишь в том в какой степени. :)
Здравствуйте DrMom, Вы писали:
DM>Здравствуйте Anatolix, Вы писали:
DM>Ладно, я понял что не совсем понятно выразился. Вобщем доступ к недрам реализации у VCL очень низкий. На мой взгляд ОЧЕНЬ низкий. Идеальный вариант, когда я могу используя библиотеку в любой момент взять бразды правления в свои руки, а когда закончу сдать их обратно.
Ну дак и вперед. Что тебе мешает сделать это в VCL.
Перехватывай сообщения и делай как хочешь. Не вижу
чем это принципиально от MFC отличается.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте DrMom, Вы писали:
DM>Конечно же позволяет, разница лишь в том в какой степени.
Позволяет абсолютно в одинаковой степени. Просто MFC
это в некоторых случаях еще и требует поэтому работа на
низком уровне в ней не вызывает отвращения а в VCL это
для некоторых людей психологически сложно.
Кто нибудь приведите мне пример что легко делается на
MFC и тяжело в VCL. Мне вот кажется таких вещей нет.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев