2009-05-12 15 views
2

私はVB6アプリケーションで作業しています。古いSheridanコントロールを取り除き、VB6コントロールを組み込んだものに置き換えたいと思います。ネイティブVB 6 Sheridanの3Dコントロールの代替品(ssCommand、ssCheckなど)

しかし、これらのコントロールには、ssCommandボタンのForeGroundのような素晴らしいプロパティがあります。標準のVB6コマンドボタンには、フォアグラウンドのプロパティはありません。

私はVB6には可能な他のコントロールがたくさんあることは知っていますが、どれが「標準」(すなわち、サードパーティのコントロールではない)であるかはわかりません。私はできるだけ単純なバニラとしてこのアプリケーションを保持したいと思います依存関係を作成しないでください。 (はい、私はVB6のためののコンポーネントが長い意味が放棄されていることを知っています。それはおそらくより多く使用されたと考えられているVB6のコントロールから互換性の高いレベルを予期しているもっと知られています。

任意の提案を?

答えて

3

私の考えでは、threed32.ocx(Sheridan SSControls)にはいくつかの問題があるため、削除する必要があります。それはno longer supported、パネルとフレーム(!)を含むすべてのコントロールgrab the focus when made visibleです、それはVB.NETにアップグレードするのは難しいです - それ以上です。私の会社にとっては、これらの機能は、それが与える余分な機能を上回るほど強力です。私たちはすべてのプログラムからその機能を奪い取っています。

議論のいくつかはあまりにも悲観的なIMHOです。 VB6はまだ放棄されていません - 私たちはall doomedではありません - 間違いなくコードをいつでもアップグレードする必要があります。 延長サポートの5年間続い主流 支援の5年間でVB6のランタイムは、Windows Vistaの 完全な寿命のためにサポートされて

、 Windows Server 2008およびWindows 7、:マイクロソフトsay

マイクロソフトでは、まだ多くのVB6コントロールをサポートしています。 online listをチェックし、がサポートするコントロールを使用するのはです。これらは、クレイが元の質問で探している、標準でテスト済みでサポートされているコントロールです。サードパーティコンポーネントを使用する場合は、サードパーティコンポーネントがベンダーによって引き続きサポートされているかどうかを確認してください。依存性を導入する前に、どれだけ多くの利益が得られているかを常に考えなければならないことに同意します。これは、サポートの頭痛になる可能性があります。特別なコンポーネントを使用する場合は、抽象レイヤーでラップしようとします。あなたがそれらを交換する必要がある場合、後でいくつかの痛みを節約するかもしれません。あなたは本当に必要なもの以外のすべての派手な機能を隠すことができます。

最後の単語 - SSCommandでForeColorプロパティを使用しないでください。対応するBackColorプロパティはないので、特殊なフォアグラウンドカラーがシステムバックグラウンドの「ボタンフェース」カラーとは対照的であるという保証はありません。ちょうどRaymond saysのように。

0

私はあなたの推論に反対する必要があります。一つは、誰かの生活あなたが幸せな顧客であることに依存しますから、より良いサポートを期待するかもしれない。

また、ケースになりそうですVB6の販売に依存しているベンダーは間もなく分けられる可能性が高い。

+2

この場合、シェリダンはもう何年も前にインフラジスティックスになるために、他の会社と合併しました(私は誰を思い出すことができません)。 OPには正しい考えがあります。 –

+0

そのような意味で、OPは「彼の生活は幸せな顧客に依存している人」になっています。 :-)彼はうまくいけない人です。 "誰がVB6の売り上げに依存しているのですか"。言うまでもなく、これは強いヒントになるはずです。 –

1

私はアプリを「プレーンバニラ」として保つことは価値のある目標だと思います。確実に展開を簡素化します。

VB6用の標準コンポーネントを見つける最良の方法は、VB6(サービスパックを含む)をクリーンマシンにインストールすることです。使用可能なすべてのコンポーネントが標準となります。

これができない場合は、プロジェクト内のチェックされたコンポーネントまたはリファレンスごとに、参照されているファイル(dll、ocxなど)を調べます。

1

このシナリオでは、あなたは上り坂です。長い死んだコンポーネントの依存関係を解消しようとするのは良い考えですが、このような場合は、すでに放棄されている技術です。より現代的な技術(EG、.NET)でアプリケーションを再構築することは実用的ではないため、限られたオプションを残しています。

  1. Sheridanコントロールを最も近い一致するVB6コントロールに置き換えて、それに応じてコードを更新します。これは複雑で難しいプロセスであり、多くの場合一致しないと仮定して正しいと思います。Sheridan(現在のInfragistics)は、VB6ではなく、UI機能を提供してビジネスを構築しました。多くの場合、あなたのUIはこれをサポートするために真剣に適合しなければなりません。
  2. VB6でコントロールの「十分な」バージョンを作成することを検討してください。.NET(this StackOverflow questionのアドバイスを使用してください)。
  3. これらのコントロールを(おそらく長く放棄された)オープンソースのVB6コントロールに置き換えることを検討してください。 Googleがあなたの友人になります。私がこのルートを推奨している理由は、オープンソースとして、何年にもわたってActiveXで多くのUI要素が表現されていたからです。オープンソースであれば、少なくとも自分自身をサポートすることができます。

私は、単純なバニラのVB6のデプロイメントを検討していますが、一部のUI要素では実現できないことが分かります。 UIを#1仕様にリビルドすることができれば、それを試してみてください。しかし、そこには多くの作業が必要なので、近代的でサポートされているプラ​​ットフォームでギフトやリビルドを検討する時間があるかもしれません。

1

私はこれを経験してきました。あなたはそれに長くいるでしょうし、IMHOは結果にあまり満足していません。

VB6は、とにかく長期的な解決策ではありません。どうしてそこに残さないの?はい、彼らは放棄されましたが、私はそれらを使用し、とにかくサポートを必要としませんでした。 (それが初めて買った後は地獄に行きました)私の経験は、彼らがかなり信頼できるということでした。私はちょうどそれと一緒に行くだろうし、スポットの問題がある場合は、スポット回避策を提供してください。

2

時には少しの工夫が長くなることがあります。たとえば、私はVB6のコマンドボタンがカスタムの背景色と前景色を持っていて、それが 'Windows標準の外観'に違反していても欲しいと思っていました。私のプロジェクトは商業的ではないので、私はその機能性のために多くの金を出す準備ができていませんでした。そこで私はいくつかのことを試してみましたが、最終的には、私にとっては非常に実行可能な解決策です:私はラベルコントロールでボタンを重ねて、本当に本物のように見えるマルチカラーボタンを持っています。私はボタンの色をプログラム的に制御して、単純な「クリック/クリック」の組み合わせを超えて、さまざまな操作状態を反映させることができます。私のアプリケーションの1つは、組み合わせられたボタンの値に応じてさまざまな色を取る5つのボタンのグループを使用します。

0

なぜ迷惑ですか?あなたの製品がうまくいくなら、それについて心配しないでください。 Sheridanのコントロールがかなり安定していることが分かりました。問題が発生していない場合は、そのままにしておいてください。