問題タブ [delphi-2006]

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 に答える
320 参照

delphi - Delphi アプリケーションのハングアップ

この Delphi 2006 アプリケーションは、数年間正常に動作しています。DPRファイルの「初期化」に到達する前のある時点までハングアップすることを狭めたので、書かれたコードが実行される前にハングアップします。「実行」アイコンを押すと、何も表示されず、実行が停止するだけです。提供する情報はあまりありませんが、何かアイデアはありますか?

0 投票する
6 に答える
11022 参照

delphi - Delphi アプリの初期化が完了したら、コードをどこに配置すればよいですか?

アプリの初期化が完了し、メイン フォームが作成された後に実行したい機能があります。フォームの OnShow イベントにコード (ProcedureX と呼びます) がありましたが、OnShow が 2 回起動しているため、コードが 2 回呼び出されていることに気付きました。メインプログラムの DPR が以下を呼び出すと起動します。

私が期待するように。しかしその後、画面上のフォームの位置を含む INI ファイルから内容を読み取ると、次の呼び出しが発生します。

これにより、OnShow イベントが再び発生するように見えます。

ProcedureX への呼び出しをどこに置くことができますか? これは 1 回だけ呼び出す必要があり、実行する前にメイン フォームを作成する必要があります。

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

delphi - PC 間で Delphi の共通メモリ領域を共有する

私は、データを収集し、TDrawGrid の行ごとに 1 つのチャネルで、多くのチャネルの概要として表示する Delphi 2006 アプリを持っています。ネットワーク上の他のさまざまな PC で同じアプリを実行していますが、これらの他の PC はスレーブです。データを収集するのではなく、要約をリモートで表示するだけです。

現在、スレーブはマスターの要約表示画面の模倣を表示するだけであり、これはマスターからのメールスロットによるブロードキャストを介して実装されます。

これを別の方法で実装して、マスターの負荷を軽減し、スレーブがデータを解釈する方法についてもう少し柔軟性と独立性を提供したいと考えています。また、サブネット間のデータのメールスロット ブロードキャストに問題があります。

共有メモリ スキームを使用して、データをメモリ マップ ファイルに配置し、スレーブがどこからでも (Web 経由でも) アクセスできるようにすることはできますか? マスター フォアグラウンド タスクの応答性を維持するために、最大 100k バイトのメモリ サイズについて話しています。

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

delphi - フレームが埋め込まれたToolbar2000のサイズに問題があります

実行時にTFrameを埋め込んで作成し、アプリケーションのメインフォームにドッキングするJordanRusselのToolbar2000ツールバーがあります。このフレームには、他のパネルやさまざまなコントロールを含むペインが埋め込まれています。したがって、構造は次のとおりです。

パネル2、3、4の高さは明示的にサイズ設定され、フレーム(したがってツールバー)は新しいサイズに合わせて自動的にサイズ変更されます。

ツールバーがアプリケーションのメインフォームにドッキングされて初めて表示されるときにツールバーのサイズが間違っていることを除いて、正常に機能します。その時点でツールバーのサイズを強制的に変更すると(たとえば、マウスクリックからTPanelの高さを明示的にサイズ変更することにより)、正しくなります。ルーチンを呼び出してサイズを2回設定し、Update、Application.ProcessMessages、ReAlignを呼び出してみました。メインフォームをペイントしてから、手動でサイズ変更を再度実行する以外は何も機能しないようです。

サイズ変更ルーチンの最後で中断してパネルサイズとフレームサイズを調べると、それらは正しいですが、ツールバーサイズが正しくないため、最初に表示されるときに、フレームが間違ったサイズのツールバーに部分的に表示されます。これは、サイジングルーチンへの別の呼び出しの直後に発生しますが、メインフォームがそれ自体をペイントした後でのみ発生します。

タイマーの期限が切れた後にパネルのサイズを明示的に変更するなど、厄介なことをやっつけてもかまいませんが、問題の原因を解決したいと思います。

なぜこれが起こっている(または起こっていない)のかについてのアイデアはありますか?

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

delphi - 実行時に Delphi TADOCommand からパラメータを安全に削除できますか

私のDelphi 2006 TADOCommandには

プロパティはすべて設計時に設定されます。

これらの変更に対応するためにCommandTextを変更することなく、実行時にそのパラメーターの一部を削除する方法はありますか。これは、パラメーターが参照するテーブル列の一部が更新/挿入を必要としない場合に望ましいものです。

の線に沿って何かを考えている

どうもありがとう、
ダンカン

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

delphi - 開くダイアログと保存するダイアログで、Delphi の状況依存ヘルプが機能しない

CHM ヘルプ ファイルを含む Delphi 2006 アプリを使用しています。TOpenDialog と TSaveDialog の [ヘルプ] ボタンに接続するためのヘルプが得られないことを除けば、すべて問題なく動作します。

これを示す簡単なプログラムを以下に示します。ボタン 2 をクリックすると、ヘルプ ファイルが開き、正しいページが表示されます。ボタン 1 をクリックするとダイアログが開きますが、ダイアログのヘルプ ボタンをクリックしても効果がありません。

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

xml - XML ファイルの読み取りと書き込み

Delphi を使用して XML ファイルで作業する必要があります。

DBGrid の xml データをユーザーに提示し、ユーザーが行った変更を XML ファイルに保存したいと考えています。

たとえば、次の xml (ユーザーに提示されたもの) では、ユーザーchanged City of ABC under clientadded a new customer with NickName as "AAA"その変更を XML ファイルに反映する必要があります。

これを達成するために XMLDocument と ClientDataSet を使用していますが、成功していません。

これを達成するために誰かが私を助けることができますか?

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

delphi - ClientDataSet を介して保存中に XML ファイルの Change_Log を無効にする

これは私の前の質問の続きです。

メソッドを使用して ClientDataSet にデータを保存しているときに、XML ファイルに PARAMS CHANGE_LOG データを入れたくありませんClientDataSet1.SaveToFile()

私のコードは次のようになります。

どうすればこれを達成できますか。

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

delphi - XML データ バインディングの使用中に複合型を生成する際の問題

XML データ マッピングを使用していますが、使用中に複雑な型を生成する際に問題が発生します。

以下のような XML がある場合、正常に動作します

として複雑な型を取得していSampleType, ConnectionType and ItemTypeます。

しかし、次のような XML がある場合

SampleType, ConnectionType, ItemType, ItemType2, ItemType22, ItemType222, ItemType2222, and ItemType22222つまり、ItemTypes は XML に存在する項目の数と同じだったので、複雑な型を取得しています。

なぜこれが起こっているのか、どうすればこの問題を解決できますか?

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

delphi - COMサーバーからWideStringを返すには?

_TLB.pas ファイルのこのインターフェイス

これはOS Windowsに見えます

COMサーバーの関数は次のようになります

COMクライアントでは、この関数を次のように呼び出しています

$75A9FBAE でエラー First chance exception を取得します。メッセージ「モジュール 'RPCRT4.dll' のアドレス 75A409A4 でのアクセス違反」を伴う例外クラス EAccessViolation。アドレス FFFFFFF8' の読み取り。プロセス Project1.exe (2296)

整数を返したい場合は、うまくいきます。ワイドストリングを返す方法は?