0

次のようなデルファイのオブジェクトがあります。

  object DXDraw: TDXDraw
    Left = 0
    Top = 0
    Width = 640
    Height = 360
    AutoInitialize = True
    AutoSize = False
    Display.BitCount = 16
    Display.FixedBitCount = True
    Display.FixedRatio = True
    Display.FixedSize = False
    Options = [doFullScreen, doAllowReboot, doWaitVBlank, doHardware, 
        doRetainedMode, doDrawPrimitive, doSelectDriver, doTexture, 
        doRGB, doMono]
    SurfaceHeight = 360
    OnInitialize = DXDrawInitialize
    TabOrder = 1
    Visible = False
    OnClick = LbBackScreenClick
    OnDblClick = DXDrawDblClick
    OnDragDrop = FormDragDrop
    OnDragOver = FormDragOver
    OnKeyPress = EdFocusKeyPress
    OnMouseDown = LbBackScreenMouseDown
    OnMouseMove = LbBackScreenMouseMove
    OnMouseUp = LbBackScreenMouseUp
  end

これが ASM でどのように見えるかを理解しようとしています。特にオプション。その列挙テーブルを見つけましたが、読み飛ばされているようです。doFullScreen フラグを削除することに興味があります。

4

1 に答える 1

6

.dfm フォーム ファイルに関連付けられたアセンブラー コードはありません。.dfm ファイルのプロパティはバイナリ .dfm リソースに変換され、実行可能ファイルにリンクされます。実行時に、フォーム永続化コードはリソースをロードし、RTTI を使用してそのコンテンツを動的に処理します。

詳細を表示するには、リソース エディターを使用します。フォーム リソースは RCData | 下に表示されます。という名前のフォーム クラスの TMyForm TMyForm。次に、実行可能ファイルからリソースを抽出して、ディスクに保存できます。convertDelphi に付属のユーティリティを使用してテキストに変換し、それを-t行うために渡します。次に、テキスト .dfm を編集します。-b次に、convertオプションを使用してバイナリに変換します。次に、実行可能ファイルを更新すれば完了です。

そして @Remy は、はるかに簡単な解決策を指摘しています。XN Resource Editorなど、Delphi .dfm ファイルをサポートするリソース エディタを使用します。これで、上記のすべての詳細からあなたを保護します.

于 2013-02-01T20:24:31.773 に答える