問題タブ [dfm]

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 投票する
6 に答える
8187 参照

delphi - Delphi の「EClassNotFound」エラー、および破損した DFM の可能性

Delphi 2007 プロジェクトで一連の「EClassNotFound」エラーが連鎖的に発生しています。よくあるケースのように、Name プロパティ値の欠落が原因ではないようです。また、初期化セクションに RegisterClass(XXX) を追加すると、EClassNotFound エラーがすぐに修正されますが、別のエラーが一見無期限に続きます。

最後に、テキスト エディターで DFM ファイルをクラックして開きましたが、破損しているように見えます (フォーム要素名に非 ASCII 文字が多数含まれており、DFM ファイルで見慣れていたものと比較すると、非常に「構造化されていない」ように見えます)。 )。(私はここに同じことを投稿しますが、非aSCIIで問題ないかどうかわからないので、延期します)。

フォームは正常にロードされ、コンパイル/構文チェックもOKのようですが、実行すると問題が発生します。

SVN の初期バージョンに戻ると、しばらくの間この状態にあるように見えます。そのため、A) DFM ファイルが問題ではないか、B) Delphi フォーム ストリーミングに問題があるかのいずれかだと思います。 -寛容/堅牢 (ボーナス質問: どちらですか?).

DFM ファイルに問題があり、破損している場合、ロールバックはロールバック WAY である必要があり、コストが高くなります。IDE がまだファイルをロードできることを考えると、ファイルをクリーンアップできるユーティリティはありますか?

それとも、DFM が主な容疑者であるということで、私は完全に基地から外れているのでしょうか?

ご意見をお寄せいただきありがとうございます。DFM ファイルのバイナリ/テキスト オプションを忘れていたので、役に立ちました。DFM 自体は破損していないようです。

ただし、まだ EClassError の問題があります。re: プロパティ値が欠落している、または存在しないプロパティを参照しているなど、さらなる質問: エラーが発生したクラスは (現在は TnxSqlUpdateObject ですが、これまでの経験が一貫している場合はおそらくもっと待っています) 通常/常に実際の「犯人」クラス/オブジェクトですか?

たとえば、現在、私のメイン フォームには TnxSqlUpdateObject への 4 つの参照があり、それらは実際にフォームにドロップされています。RegisterClass(TnxSqlUpdateObject) を初期化セクションに配置すると、その EClassNotFound エラーに対しては問題なく実行されますが、次のエラー (この場合は TStringField) に進みます。

この場合、NexusDB コンポーネントを再インストールし、問題と思われるコンポーネントのいくつかを使用して新しいプロジェクトを構築しました。実際のプロジェクトからこの他のフォームを追加するまで、コンパイルして正常に実行されます(残念ながら、他の多くのフォームを参照しています)。

SO、私の本当の問題は、すべての EClassNotFound エラーを体系的に診断して修正する方法のように思えますか?

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

delphi - 特殊文字を含む Delphi DFM を D2009 に移行する

「度」記号と「オーム」記号など、いくつかの特殊文字を使用する Delphi フォームがいくつかあります。これらの文字は、DFM ファイルに保存されたラベル キャプションで使用され、実行時に生成または変更されません。これらのフォームを最初に設計したとき、角度記号は Ansi 文字セット (コード 176) に含まれていたので簡単でしたが、オーム記号はコード 217 で使用するギリシャ文字セットが必要でした。 need (文字と数字) は、ギリシャ文字セットで正常に機能します。

ここで、これらのフォームが D2009 でも同じように見えるようにします。度記号は正常に表示されますが、dfm テキストが "Caption = 'Typed in Ohms - 1234 '#217" であるため、オーム記号は 'Ù' と表示されます。フォームを編集して正しい Unicode オーム記号 (8486) を入力できることがわかりましたが、もちろんこれは「?」で失われます。D7に戻るとき。理想的には、dfm の #217 がオーム記号にマップされるように、フォームでギリシャ文字セットを引き続き使用するように D2009 に指示したいと思います。これは可能ですか?「GREEK_CHARSET」である Font.Charset 設定を無視しているようです。これを解決する汚い方法を発見しました。これは、すべてのコンポーネントを反復処理して "StringReplace( S, 'Ù', OhmsChar, [rfReplaceAll] )" を実行することですが、これは恐ろしいことであり、もっと良い方法があるに違いありません。

ありがとう、ブライアン

0 投票する
7 に答える
6600 参照

delphi - Delphi は、テキスト フォーム ファイル(DFM)をバイナリ形式に戻すことがありますか?

Delphi 7 開発チームは、フォーム ファイル(dfm)をテキスト モードで保存し、ソース管理システム(Subversion)を使用して変更を追跡します。

ときどき、リビジョン間でフォーム ファイルがバイナリ形式に戻り、TortoiseMerge などの差分ツールにエラーが発生することに気付きました。

Subversion の変更ログを使用すると、以前は DFM ファイルがテキスト形式で保存されていたことがわかります。ソフトウェア開発者は、ストレージ ファイル形式を手動でバイナリに戻すことはありません。

あなたは同じことに遭遇しましたか?それは既知の問題ですか?

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

regex - 正規表現の問題:コンテキストでの一致

DelphiのGUIを説明する階層テキストを含む構造化ファイル(DFMファイル)があります。

このファイルがあり、TmyButton(マーク付き)のコンテキストにあるすべての「Color = xxx」行に一致する必要があるが、他のコンテキストには一致しないと仮定します。TMyButton-Context内には、より深い階層レベルはありません。

私はそれを2日間、多くの異なる試みで試しました。ここに私の不完全なパターンの一部があります:

(理由はわかりませんが、「$」の代わりに「\ r \ n」を使用する必要がありました...)。これをまとめる必要がありますが、他の「object xxx:yyy」と「end」の行を除く他の行を無視します。

助けていただければ幸いです。

0 投票する
4 に答える
1276 参照

delphi - 表示時に閉じるように Delphi DFM リソースを変更しますか?

表示時にフォームが閉じられるように DFM (Delphi のフォーム スクリプト形式) を編集することはできますか?

私は Delphi でコードを書いていないので、これらのフォームがどのように機能するかはよくわかりませんが、フォームのOnShowまたはOnCreateイベントにコードを入れることはできるようです (ただし、標準の Delphi コードではないようです)。ただし、CloseExitFormNameExitDestroyなどのステートメントをいくつか試しても機能しません (OnShow プロパティの値が無効であるなどのエラーを示すログが作成されます)。

フォームを閉じる通常の方法はボタンを使用することですが、ボタンにはOnClickイベントはなく、プロパティ " ModalResult = 1 " だけです。

開いたときにウィンドウを閉じる方法はありますか?フォームの OnCreate または OnShow イベントに配置できる標準関数はありますか? それとも、フォーム自体に ModalResult = 1 を与えるチェックボックスを作成するのでしょうか? (これが機能するかどうかはわかりません)

ご提案ありがとうございます。
=)

(注: 明らかかもしれませんが、ソースはありません。)

0 投票する
4 に答える
12202 参照

delphi - Delphi-ExplicitWidthとExplicitHeightが.DFMファイルに表示され続けるのはなぜですか?それは何ですか?

更新をチェックインすると、.DFMファイルExplicitWidthExplicitHeightプロパティが追加されていることに気づきましたが、その理由はわかりません。

私の質問は次のとおりです。

  • これらのプロパティは何のためにありますか?
  • Delphiによって自動的に追加されるのはなぜですか?

ExplicitWidth以下は、追加されたプロパティを示す例です。

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

sql - Delphi フォーム ファイルからすべての SQL コマンド文字列を抽出できるツールはありますか?

ドキュメントと詳細な調査のために、多くのプロジェクトのすべての DFM ファイルで「文字列の抽出」を実行して、すべての SQL ステートメントを見つけたいと考えています。これを実行できるコマンド ライン ツールはありますか? DFM ファイルはすべてテキスト形式です。

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

delphi - Delphi: dfm-s を変更しないようにロックする方法は?

Delphi は 6 年前に使用しました。Delphi には DFM に関する 2 つの問題があります。

1.) リンクされたリソース (DataSet など) が削除されると、Delphi は「リソースの一部がリンクされています。リダイレクトする必要があります...」という質問を何度も忘れます。これは、実際のフォームがプロジェクトに追加されていないか、開かれていない場合に発生します。

2.) DFM を開いただけで、何かしか表示されない場合は、それを変更できます (アクティブなタブシート、フォームの位置)。次に、Delphi はフォームを自動保存します。リンクが削除されることもあります。これに関するもう1つの問題は、SVNを使用し、SVNがこれらの変更を検出することです...

DFM ファイルを読み取り専用に変更しようと考えていましたが、これにより SVN の使用も妨げられる可能性があります...

誰かが私たちを助けてください: 変更を避けるために DFM をロックできる Delphi の拡張機能 (gexpert など) と、データセットが他の形式で使用されているかどうかを確認するための他のツールを用意してください。

0 投票する
0 に答える
1594 参照

delphi - TFrame コンポーネント: リソースが見つかりません

ツール: Delphi 6 プロ

Component -> New Component オプションを使用して、TFrame の子孫であるメイン コンポーネント パッケージに新しいコンポーネントを作成しました。設計時にフォームにコンポーネントを描画しようとすると、「リソース {コンポーネント クラス名} が見つかりません」というエラーが表示されます。「実装」宣言の直後に {$R *.dfm} という行をコンポーネント ユニットに追加しようとしましたが、うまくいきませんでした。(最初にホスト パッケージを再コンパイルしました)。別のフレームから DFM をコピーしてから、すべての名前を変更して、DFM ファイル名自体を含む本体と同期することさえ試みました。それもうまくいきませんでした。

設計時にプロパティ エディタに表示されるプロパティを追加したいので、新しい TFrame バリアントを作成するだけでなく、TFrame の子孫をコンポーネントとして使用したいと考えています。これを機能させる方法はありますか?

前もって感謝します。

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

delphi - データベーステーブルに基づくDelphiDFM生成の支援(足場?)

私はデルファイに不慣れで、デルファイの基礎となるテクノロジーについてもっと学び、その過程で私の仕事で何か役立つものを作る方法を探しています。あなたの心を話すために...

dfmsに対してある種のスキャフォールディングを作成したいのですが、アイデアは次のとおりです。Firebirdデータベーステーブルに基づいて生成したい-明確に定義されたドメインを使用して-フォームの大部分。

アイデアが単純すぎるか、難しい全体像が見えないと思います。うまく再発明しないようにしています。グーグルで調べましたが、良い結果が得られなかったので、誰かが私に方向性を与えることができればここで私は最も感謝するでしょう。

更新: @Larry Lustigありがとう、私はデルファイフレームワークについて考えていませんでした-私はそれらを調べるつもりです。

フォームオブジェクト/処理とデータベースメタデータについては知っていますが、デルファイオブジェクトをHDにセリライズすることに慣れていません。シリアル化とdelphiフレームワークに関するヒント(オープンソースなので、見てみましょう:))は大歓迎です!