Native VB 6 Замены для элементов управления Sheridan 3d (например, ssCommand, ssCheck и т. Д.) - PullRequest
2 голосов
/ 12 мая 2009

Я работаю над приложением VB6 и хотел бы избавиться от старых элементов управления Sheridan и заменить их встроенными элементами управления VB6.

Однако некоторые из этих элементов управления имеют некоторые приятные свойства, такие как ForeGround на кнопке ssCommand. Стандартная командная кнопка VB6 не имеет свойства переднего плана.

Я знаю, что в VB6 потенциально есть много других элементов управления, которые я могу включить, но я не уверен, какие из них являются довольно "стандартными" (то есть, не сторонними элементами управления). Мне бы хотелось, чтобы это приложение было как можно более простым, а не создавало зависимости. (Да, я знаю, что любые компоненты для VB6 давно стали заброшенными. Я просто ожидаю более высокий уровень совместимости со встроенным элементом управления VB6, поскольку он, вероятно, использовался чаще и, таким образом, "стучал" по это недостатки были бы более известны.

Есть предложения?

Ответы [ 7 ]

3 голосов
/ 13 мая 2009

По моему мнению, threed32.ocx (Sheridan SSControls) следует отбросить, поскольку у него есть ряд проблем. Он больше не поддерживается , все элементы управления захватывают фокус при отображении , включая панели и рамки (!), Его сложно обновить до VB.NET - их больше. Для моей компании они достаточно сильны, чтобы перевесить дополнительную функциональность, которую она дает - мы исключаем ее из всех наших программ.

Некоторые обсуждения слишком пессимистичны, ИМХО. VB6 еще не заброшен - мы не все обречены - хотя, без сомнения, нам придется обновить код однажды. Microsoft скажем :

Среда выполнения VB6 поддерживается для полное время жизни Windows Vista, Windows Server 2008 и Windows 7, что пять лет основного поддержка сопровождается пятью годами расширенная поддержка.

Microsoft по-прежнему поддерживает ряд своих элементов управления VB6. Проверьте онлайн-список и используйте только те элементы управления, которые они поддерживают . Это стандартные, проверенные, поддерживаемые элементы управления, которые Clay ищет в исходном вопросе. Если вы хотите использовать сторонние компоненты, проверьте, поддерживается ли их поставщик. Я согласен с тем, что вам всегда следует задуматься о том, какую выгоду вы получите, прежде чем вводить зависимости, что может быть головной болью поддержки. Если вы используете специальные компоненты, попробуйте обернуть их в слой абстракции. Это может спасти боль позже, если вам нужно заменить их. Вы можете скрыть все необычные функции, кроме тех, которые вам действительно нужны.

Последнее слово - не используйте свойство ForeColor в SSCommand. Нет соответствующего свойства BackColor, поэтому вы не можете гарантировать, что ваш специальный цвет переднего плана будет контрастировать с цветом фона кнопки «лицо». Также как Рэймонд говорит .

2 голосов
/ 19 ноября 2010

Иногда немного изобретательности будет иметь большое значение. Например, я хотел, чтобы мои командные кнопки VB6 имели настраиваемые цвета фона и переднего плана, даже если это нарушает «стандартный внешний вид Windows»; однако я не был готов выложить много денег за эту функциональность, так как мои проекты не являются коммерческими. Поэтому я попробовал несколько вещей и, наконец, остановился на том, что для меня является очень подходящим решением: я наложил свои кнопки на элементы управления метками, и теперь у меня есть разноцветные кнопки, которые выглядят абсолютно аутентично. Я могу управлять цветами кнопок программно, чтобы отражать различные состояния работы, даже выходя за рамки простой комбинации «щелчок / отсутствие щелчка». Одно из моих приложений использует группу из пяти кнопок, которые принимают разные цвета в зависимости от объединенных значений кнопок.

1 голос
/ 12 мая 2009

Я прошел через это, и вы будете долго этим заниматься, и ИМХО не очень довольны результатами.

VB6 не может быть долгосрочным решением в любом случае. Почему бы не оставить их там? Да, они заброшены, но я использовал их и в любом случае никогда не нуждался в поддержке. (Плюс это пошло к черту после того, как они были впервые куплены.) Мой опыт был, что они чертовски надежны. Я бы просто пошел с этим, и если у вас есть проблемы с точками, предоставьте точные обходные пути.

1 голос
/ 12 мая 2009

В этом сценарии вам предстоит тяжелая битва. Попытка устранить зависимости от давно устаревших компонентов, вероятно, является хорошей идеей, но в таком случае вы уже отказались от технологии. Для меня ясно, что перестройка приложения в более современные технологии (EG, .NET) нежизнеспособна, поэтому у вас остается ограниченный набор опций.

  1. Замените элементы управления Sheridan существующими элементами управления VB6, которые наиболее близки, а затем обновите код соответствующим образом. Это будет сложный, сложный процесс, и вы правы, предполагая, что во многих случаях совпадения не будет - Шеридан (теперь Infragistics) построил свой бизнес, предоставляя возможности пользовательского интерфейса, которые не были встроены в VB6. Во многих случаях ваш пользовательский интерфейс должен быть серьезно адаптирован для поддержки этого.
  2. Подумайте о написании «достаточно хороших» версий элементов управления в VB6 самостоятельно или даже в .NET (последний использует советы из этого вопроса StackOverflow ).
  3. Подумайте о замене этих элементов управления (вероятно, давно уже заброшенных) элементами управления VB6 с открытым исходным кодом. Google будет вашим другом здесь. Причина, по которой я рекомендую этот маршрут, заключается в том, что многие элементы пользовательского интерфейса были представлены в ActiveX на протяжении многих лет как открытый исходный код - и если они являются открытым исходным кодом, вы можете по крайней мере «поддерживать себя» на них.

Я знаю, что вы собираетесь использовать стандартное развертывание VB6, но для некоторых элементов пользовательского интерфейса это может оказаться невозможным. Если вы можете перестроить свой пользовательский интерфейс в соответствии со спецификациями # 1, то сделайте это, но у вас может быть так много работы для вас, что, возможно, пришло время подумать о том, чтобы пойти на переворот и перестроиться на современной поддерживаемой платформе. *

1 голос
/ 12 мая 2009

Я думаю, что сохранение приложения как «простой ванили» - стоящая цель. Разумеется упрощает развертывание.

Я бы сказал, что лучший способ найти стандартные компоненты для VB6 - это установить VB6 (плюс пакеты обновления) на чистую машину. Все доступные компоненты будут стандартными.

Если вы не можете сделать это, для каждого отмеченного компонента или ссылки в вашем проекте изучите файл (dll, ocx и т. Д.), На который есть ссылки.

0 голосов
/ 28 ноября 2011

Зачем беспокоиться? Если ваш продукт работает, не беспокойтесь об этом. Я нашел, что управление Шеридана было довольно твердым. Если у вас нет с ними проблем, оставьте их в покое.

0 голосов
/ 12 мая 2009

Я должен не согласиться с твоими рассуждениями. Можно ожидать лучшей поддержки от кого-то, чья жизнь зависит от того, станете ли вы счастливым клиентом.

Также вероятно, что любой поставщик, зависящий от продаж VB6, скорее всего обанкротится в ближайшее время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...