問題タブ [custom-component]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
499 参照

delphi - パッケージ内のフレーム継承と複製ファイル

私は、TFrames と ModelMaker を使用して多くのコンポーネントを開発してきました。ビジュアル デザイン/開発 + 継承 + ModelMaker の組み合わせが非常に魅力的であることがわかりました。次に、これらの TFrame の子孫を登録ユニットで登録すると、そこから本格的なパレットベースのコンポーネントになります。Delphi 2007 を使用しています。

このプロセスの小さな「障害」について学習した早い段階で、TFrame の子孫が正しくストリーミングされない (多くの場合、IDE ではフレームではなくフォームとして表示される) ことで遭遇する多くの問題が、導入することで完全に排除できることがわかりました。変更なしで TFrame から継承する独自の「TBaseFrame」クラスを作成し、それを基本クラスとして使用してコンポーネントを開発します (メソッド、プロパティなどを追加します)。TFrame から直接継承するクラス/フレームにプロパティやメソッドなどを追加すると、dfm ファイルのストリーミングが混乱することがよくありました。

それで、私がねじれを解決したら、全体的にうまくいきました.

しかし、昨日、私は新しい問題に遭遇しました:

結果のコンポーネントをパッケージ セットにインストールし、意味のある方法でグループ化します (つまり、アプリ 1 のすべての「パネル」は 1 つのパッケージにあり、アプリ 2 の多数の「ビューアー」は別のパッケージにあるなど)。

TBaseFrame クラスがパッケージに含まれていない場合、継承する TFrame の子孫コンポーネントは IDE に読み込まれません。しかし、TBaseFrame をパッケージに追加すると、複数のパッケージに同じソース PAS ファイルが含まれていると、競合する Delphi レポートが表示されます。

すべての frame= ベースのコンポーネントを 1 つの巨大なパッケージに入れることもできますが、セットの数の性質を考えると、時間の経過とともに大きくなりすぎたり手に負えなくなったりすることがはっきりとわかるので、そうしないことを本当に、本当に望んでいます。開発する予定です。この競合を解決する他の方法はありますか?


更新 -- これを「適切に」動作させるための秘訣があります -- 以下のコメントを必ずお読みください。

0 投票する
1 に答える
4820 参照

delphi - DelphiでTOwnedCollectionの子孫を使用する

コレクションプロパティを使用してカスタムコンポーネントを作成しようとしています。ただし、デザイン時にオブジェクトインスペクターの[...]ボタンをクリックしてコレクションエディターを開こうとすると、何も起こりません。私が欠けているものは何ですか?

これが私のTCollectionの子孫です:

そしてアイテム:

0 投票する
2 に答える
1018 参照

delphi - Delphiパッケージ:「次の変更を行う必要があります...」がなくなることはありません

[名前を付けて保存]と[編集]を使用して別のパッケージから適応したパッケージの1つで、次のメッセージが表示され続けます(これはDelphi 2007にあります)。

=======
このパッケージをコンパイルする前に、次の変更を行う必要があります。[OK]を選択してこれらの変更を適用し、コンパイルを続行します。

=======

[OK]をクリックすると、正常にコンパイルされます。ただし、このメッセージは消えることはありません。パッケージをコンパイルするたびにメッセージが表示されます。

これがプロジェクトソースです。右クリックして[ソースの表示]を使用してそこに移動します。

「cmSizePanel_Reg」はプロジェクトに含まれなくなり、プロジェクトマネージャーパネルに表示されなくなります。Delphiがパッケージに使用しているファイルのどこかに「隠れている」ように見えますが、どこにあるのかわかりません。パッケージを最初から完全に再作成することなく、この小さな不便を取り除く方法はありますか?

0 投票する
1 に答える
1780 参照

delphi - Delphi IDE で「パッケージ情報にアクセスできません」エラーを診断する方法

私は、相互に継承する一連の TFrame ベースのコンポーネントを開発しています (途中で私を大いに助けてくれた多くの人がすでに知っているように!)、パッケージとインストールに関連するさらに別の小さな「障害」に遭遇しています。

基本的に次の階層があります。

...そしてパネルTExtRzPanelは、Raize パネルから継承し、いくつかのサイズ変更/移動機能を追加し、他のいくつかのプロパティ/機能も備えています。TBaseSizeableFrameはこのコンポーネントを使用し、その機能の多くをフレーム自体に渡します。そのため、Viewer の複合コンポーネントを視覚的に開発できます。全体的にうまく機能します。

TFrame の子孫はすべてパレットに登録されています ( 関連する質問については、この投稿を参照してください)。現在、次のようにパッケージを設定しています。

  • MyPanels - TExtRzPanel を含む
  • BaseFrames - TBaseFrame と TBaseSizeableFrame を含む
  • ViewerSet1 - 1 つの Viewer フレームベース コンポーネントと、その Viewer をダイアログ フォームとして呼び出す非ビジュアル コンポーネントが含まれます。(このパッケージには、他のいくつかのビューアーも含める予定です)。

私の現在の混乱を引き起こした主なエラーは次のとおりです。

パッケージ 'MyPanels.bpl' のパッケージ情報にアクセスできません

私が試したことの正確なシーケンスとその順序を思い出すのに苦労しているので、私はこのことで十分にめまいがしていますが、TViewerを使用するViewerSet1にダイアログフォームを追加したときに問題が始まったようです同じプロジェクトのフレームであり、(もちろん) TExtRzPanel (IDE が不満を言っているパッケージ) を使用します。

これに基づいて、DCPファイル(およびDCUファイルもある時点であると思います)を削除し、パッケージをアンインストールしてから、MyPanels-> BaseFramesを再コンパイル/再インストールし、その時点まですべてが機能するようにしましたが、インストール時にViewerSet1 全体が再び吹き飛ばされます。これを理解しようとする途中で気付いたその他のエラーには、次のものがあります。

  • パッケージ C:\Documents and Settings\All Users\Documents\RAD Studio\5.0\Bpl\MyPanels.bpl は、別のバージョンの Delphi または CBuilder で作成されているため、インストールできません。次回プロジェクトをロードするときに、このパッケージのロードを試みますか? (注: 私は Delphi の 1 つのバージョン -- Delphi 2007 でのみこれを構築しました)
  • ある時点で、MyPanels のパッケージの説明が "取得" されていないことに気付きました (つまり、ファイル名が [ツール] -> [コンポーネント] -> [パッケージのインストール] のように表示されました)。 IDEが見つけたり使用したりしているファイルですが、私はそれを見たり見つけたりしていません。
  • 起動時に Delphi が表示する警告は、インストール済みのパッケージをロードできないこと、次回ロードしますか、などを示します。
  • パッケージ 'MyPanels.bpl' のパッケージ情報にアクセスできません (泡立て、すすぎ、繰り返し)

すべてのヘルプ/指示: 診断方法と、何を探すべきかを理解するのに役立つ概念的な説明があれば、最も高く評価されます。前もって感謝します。皆さん、ここでとても役に立ちました!ありがとうございました。: )


後で更新:

これを少し脇に置いて戻ってきた後、すべての DCP / DCU MyPanels ファイルを削除してから、3 つのパッケージを段階的にインストールしてみました。(VMWare は、ここで金の価値がありました。問題が発生した場合に最初からやり直す必要がないように、成功するたびにスナップショットを作成します)。ViewerSet1 パッケージからダイアログ フォームを削除すると、問題なくインストールされることがわかりました。次に、フォームを再度追加すると ( ここで遭遇したように、DFM には表示されません)、正常にインストールされるようです。すべてのコンポーネントがインストールされておらず、正常に動作しているように見えます (そして、VM 内の全体のスナップショットを作成します!) が、何が問題なのか、その理由はまだわかりません。そのフォームを追加すると、最初に何ができて、これらの種類のエラーが発生するのでしょうか? 何か案が?

「パッケージ情報にアクセスできません」というエラーがどのような原因で発生する可能性があるかについてのより良い説明/理解は、長期的には役立つと思います.

0 投票する
1 に答える
542 参照

java - Facelets ループ変数が範囲外に出ないのはなぜですか?

これが多くのテキストのように見えることはわかっていますが、私が見逃しているのは非常に単純な概念だと思います。

Facelets を使用して Web アプリケーションを作成しています。カスタム タグ rq:request-list を取得しました。このタグは、リクエストのリストをパラメーターとして取り、それらを表示する素敵なテーブルを出力します。ここまでは順調ですね。

rq:request-list は、期待どおりに始まります。

そして、それはうまくいきます。テーブルには、リクエストを編集するためのリンクもあります。ヤッピー!

バッキング Bean のリクエストを、現在のテーブル行で表されるリクエストに設定した後、編集ページに移動します。これが問題の場所です。そして微妙です。

rq:request-list は 1 ページで複数回使用されます。そのような:

これで、テーブルは正常に表示されます。つまり、すべてのテキストが正しいです。ただし、commandLinks は間違った Requests を指しています...ページの最後のrq:request-list の対応する行の Request を指しています。リクエストに関連するデータはテーブルにあるはずのように出力されますが、{req} は commandLink をクリックすると間違ったリクエストを指します。

繰り返しになりますが、ページにいくつかの rq:request-list がある場合、すべてのrq:request-list の最初の行の [編集] リンクは、ページの最後の rq:request-list の最初の要求 (行) を指しています。 . rq:request-listの 2 行目の Edit リンクは、ページの最後の rq:request-list の 2 番目の要求 (行) を指しています。等。

時代遅れのリストのインデックスだけでなく、{req} が以前の自分を指すようにするにはどうすればよいでしょうか?

ありがとう!

0 投票する
2 に答える
938 参照

delphi - Delphi2006はコンポーネントパッケージを失います

Delphi 2006は、新しく起動するたびに、コンポーネントパッケージを失います。これは毎日発生します。自分で作成したカスタムVCLコンポーネントを含むコンポーネントパッケージがあります。Delphi 2006を起動するとき、何も記載されていません。しかし、これらのコンポーネントのいくつかが含まれているフォームを開くとすぐに、

bds.exe-コンポーネントが見つかりません

DclOpusRep2006.bplが見つからなかったため、このアプリケーションを起動できませんでした。アプリケーションを再インストールすると、この問題が解決する場合があります。

次にコンポーネントパッケージを再インストールしようとすると、次の2つのことが発生する可能性があります。

  1. デザインパッケージの空のリストを取得しました。新しいパッケージを追加する前に、regeditに移動して問題のパッケージを削除する必要があります。
  2. デザインパッケージのリストを取得しましたが、問題のパッケージがロードされて利用可能であることが示されています。

パッケージは常にローカルドライブで利用できますが、Delphiが存在するドライブではありません。トラブルシューティングのアイデアはありますか?

最初の答えに基づいて私の問題を明確にするために:私はこのプロジェクトの唯一の開発者です。ライブラリは、まだ存在しているのと同じ場所からインストールされており、コンポーネントパッケージリストのパスは正しいです。

0 投票する
3 に答える
19136 参照

delphi - 「パッケージ A をロードできません。パッケージ B にも含まれているユニット X が含まれています」

(より多くのパッケージ/コンポーネントのインストールが私にとって楽しいです -- これまでのすべての助けに感謝します)。

Delphi 2007 で、タイトルに記載されているエラーが表示されます。パッケージ A は、フレーム ベースの「ビューア パネル」のパッケージです。パッケージ B は、特定のデータベースにリンクされたデータセットに関する情報 (SQL、状態、クラス タイプなど) を表示するために使用されるいくつかのコンポーネントを含むパッケージであり、そのうちの 1 つは非ビジュアル コンポーネントです (これをインスペクタ) は、その情報を表示するフォームを作成して呼び出します。ユニットXはその形態のユニットです。

Inspector コンポーネントをパッケージ内のビューアー パネルの 1 つに追加しましたが、それを削除したため、プロジェクトの [ソースの表示] にも、追加したフレームベースのビューアー パネルのユニットにも参照が見つかりません。リファレンスはどこに隠れていますか?

また、その Inspector コンポーネントをビュー パネル フレーム (登録済みコンポーネントとしてもインストールされる) の 1 つに追加すると、この問題が発生するのはなぜでしょうか?

これは、この前の質問これにも関連している可能性がありますが、簡潔かつ明確に保ち、​​後で他の人に役立つことを願って、この特定の症状/問題から新たに始めることにしました. あらゆる助けを前もって感謝します。


アップデート:

Loren のおかげで、問題の原因となっていた USES 参照を見つけて削除することができました。ただし、達成しようとしていることを達成する方法についてはまだ明確ではありません。: \ これが最新です:

Inspector は、DataSet プロパティと内部「情報フォーム」を含む単純な非ビジュアル コンポーネントです。ShowInfo メソッドを呼び出すと、フォームが作成され、リンクされた DataSet に関連するさまざまな情報が入力されます。ビューアーを駆動する SQL をデバッグするために使用したいと考えています。

前述のように、Inspector はパッケージ B に含まれています。ビューアはパッケージ A にあります。TFrame の子孫 (真のパレット コンポーネントとして登録される) の一部で Inspector コンポーネントを使用したいと考えています。ただし、そのコンポーネントを特定の TFrame にドロップして使用し、パッケージ A をコンパイル/インストールすると、「パッケージ A を読み込めません。パッケージ B にも含まれるユニット X が含まれています」というエラーが表示されます。それが原因であることは明らかで、必要に応じて問題を再現できます。

以下のmoobaaの提案は理にかなっていますが、彼が提案するアプローチ2を実行しようとしてもうまくいかないようです私は何が欠けていますか?これは実行可能であるように思われます。実際、私が見たほとんどのパッケージは、他のインストール済みパッケージを常に使用しているようです (VCL 自体を含む)。

注: 私が知る限り、パッケージ B はパッケージ A に依存していません (スタンドアロンでインストールしたので、同意しているようです)。

(ところで、このようなパッケージの依存関係を「グラフ化」するツールはありますか?私は D2007 を使用しています)

いつものように、あなたの時間と助けに感謝します.

0 投票する
5 に答える
11348 参照

delphi - Delphi "E2161エラー:RLINK32:ビルドオール中にファイル________。drfを開くときにエラーが発生しました"

明らかに依存関係の問題がある一連のパッケージの問題を解決しようとしています。すべてのビルド中に、次のエラーが発生することがあります。

Delphi "E2161エラー:RLINK32:ファイル________。drfを開くときにエラーが発生しました"

それはどういう意味/を示し、「drf」ファイルとは何ですか?

0 投票する
2 に答える
6121 参照

delphi - Delphiパッケージでは「暗黙的にインポート」は常に悪いことですか?

パッケージを一連のTFrame 子孫コンポーネント用に再配置しようとしていますが、主に前者が true としてパレットに登録されているため、ユーティリティ TFrame 子孫の一部を、それらを使用するダイアログ フォームから分離する必要があるようです。コンポーネントを使用するダイアログ フォームに関して、IDE を混乱させることがあるようです。次に、ダイアログ フォームは、3 番目のパッケージの一部である非ビジュアル コンポーネントによって呼び出されます。これにより、これまでのところ、コンパイラの依存関係に関連する苦情/混乱のほとんどが解消されるようです。(ただし、私はまだ外出していません)。

(フレームを呼び出す)ダイアログ フォームを使用してパッケージをコンパイルすると、「ユニット 'MyFrames' が暗黙的にパッケージ 'MyDialogForms' にインポートされました」という警告が表示されます。

コンパイラの警告として表示されることを考えると、私はずっと前に、ユニットを「暗黙的にインポートする」ことは一般的に良いことではないという印象を受けました。そうでない特定の例はありますか? つまり、ユニットを暗黙的にインポートしても問題ない場合、および/または適切なプラクティスはどこですか?...もしそうなら、それらの特定のケースは何ですか?

0 投票する
3 に答える
2150 参照

delphi - カスタム フォーム デザイナーの作成

Delphi でカスタムの「データ モジュール」を作成したいと考えています。これは、TDataModule のような (おそらく継承された) クラスで、カスタム グリッド ベースのデザイン インターフェイス (1 行に 1 つのコンポーネント、列としていくつかのプロパティ) を持ちます。これは可能ですか?どこから始めればよいですか?

現在、Delphi 2007 を使用しています。