6

TFrame クラスを微調整 (プロパティ、メソッドなどを追加) していると、IDE が混乱し、フレームがヘッダー/キャプション、境界線などを備えたフォームであると認識しているかのように動作します。クラスは TFrame の子孫として宣言されます。これの原因、防止方法、および修正方法についてのアイデアはありますか?

Delphi 2007 Pro を使用しています。また、(重要な場合) 注意してください。TFrame の子孫は通常、設計時パッケージを介して IDE に (つまり、パレット上に) 登録されます。


後で: 追加の「詳細」: 現時点でこの問題が発生しているフレームは、視覚的には非常に基本的な TFrame です (真新しい TFrame からの変更はサイズと背景色のみです)。

クラス宣言は次のとおりです。

TBasePanel = class(TFrame)
  private
    FPanelManager: TPanelManager;
    procedure SetPanelManager(const Value: TPanelManager);
  protected
    procedure Connect; virtual; abstract;
    procedure Disconnect; virtual; abstract;
    procedure Refresh; virtual;
    procedure Requery; virtual; abstract;
  published
    property PanelManager: TPanelManager read FPanelManager write
        SetPanelManager;

このフレームは、他の多くの基本クラスとして使用されます。私は通常、EXE プロジェクトの一部としてではなく、関連するフォームを開いた状態などで、それが属する BPL プロジェクトから直接編集しています (これらのフレームはすべてパレットにインストールされるため)。

また、「ツール」→「オプション」で「埋め込みデザイナー」にチェックを入れます。

すべての DFM ファイルも、バイナリではなくテキストとして保存しています (それが重要な場合)。

4

5 に答える 5

1

おそらく、[埋め込みデザイナー] チェック ボックスをオフにしていませんか? (ツール | オプション | 環境オプション | VCL デザイナー)。次に、実際に、フレームは設計時にフォームとして表示されます (キャプション、境界線などを含む)。また、問題のある TFrame の子孫の具体的なコード、またはケースの詳細が役立ちます。

于 2009-02-26T08:10:36.600 に答える
0

TFrameで多くの問題に遭遇し、最終的にすべての問題を解決するような回避策に到達しました。フレームを視覚的に作成および設計しますが、それらは手作業でのみ使用します。

副作用として、dfm-sが少ないため、アプリケーションが小さくなりました。

于 2009-12-19T12:59:56.143 に答える
0

私の知る限り、フレームを編集するときはフォームとフレームの両方をエディターで開いておく必要があります。そうしないと、更新の問題が発生する可能性があります。私はこれを見たことがありませんが。

しかし、私はフレームがあまり信頼できるとは思わなかったので、ずっと前にフレームをあきらめました.

現在、私はそれらをプロトタイピング、カスタム コンポーネント (適切なコントロールを備えたパネルから派生) の作成にのみ使用しています。

于 2009-02-26T07:52:01.353 に答える