問題タブ [delphi]

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

delphi - Delphi 変数はデフォルトで値で初期化されますか?

私は Delphi を初めて使用します。いくつかのテストを実行して、デフォルトでどのオブジェクト変数とスタック変数が初期化されるかを確認しました。

これは私が他の言語で慣れ親しんでいる動作ですが、Delphi でこれを信頼しても安全かどうか疑問に思っています。たとえば、コンパイラの設定に依存するのか、それともマシンによって動作が異なるのか疑問に思っています。オブジェクトのデフォルトの初期化値に依存するのは正常ですか、それともコンストラクターですべてのインスタンス変数を明示的に設定しますか?

スタック (プロシージャ レベル) 変数については、私のテストでは、ユニット化されたブール値は真であり、ユニット化された整数は 2129993264 であり、初期化されていないオブジェクトは単に無効なポインター (つまり、nil ではない) であることが示されています。アクセスする前に常にプロシージャレベルの変数を設定するのが標準だと思いますか?

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

delphi - Delphi で外部アプリケーションを最小化する

Delphi アプリケーション内から制御できない外部アプリケーションを最小化する方法はありますか?

たとえば、notepad.exe などです。ただし、最小化したいアプリケーションにはインスタンスが 1 つしかありません。

0 投票する
15 に答える
19080 参照

delphi - Delphiでのパスワード暗号化

データベースのパスワードを設定ファイルに保存する必要があります。明らかな理由で、私はそれらを暗号化したい(できればAESで)。10,000行を超える歴史的に成長した(URGH!)ソースコードを使用して既存のプロジェクトに簡単に導入できるDelphiの実装を知っている人はいますか?

明確化:簡単とは、ユニットをプロジェクトに追加し、最大数を追加することを意味します。構成ファイルが読み取られ、それを使用して実行される5行のコード。15分以上かかることはありません。

別の説明:パスワードは、アプリケーションのユーザー管理スキームをサポートするためではなく、データベースへの接続を作成するために必要です。したがって、ハッシュを使用しても効果はありません。dbエンジンは、アプリではなく、パスワードが有効かどうかを確認します。

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

delphi - グラフィックを TLabel に追加する際の問題

TLabel から継承されたコンポーネントを Delphi で作成しようとしており、TLabel.Paint にいくつかのカスタム グラフィックが追加されています。グラフィックをテキストの左側に配置したいので、GetClientRect をオーバーライドしました。

このソリューションには、解決したい大きな問題があります。コントロールの「グラフィック領域」をクリックすることはできず、ラベル領域のみをクリックすることはできません。キャプションが空の文字列の場合、デザイナーでコンポーネントをクリックしても選択できません。何か案は?

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

delphi - Delphi:OpenFileDialogがURLでクラッシュする

TOpenFileDialogへのURLを指定すると、Executeメソッドは例外をスローします。

ただし、URLからファイルを開くことは許可されています。

Delphi 5

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

delphi - Delphiポップアップメニューのチェック

Delphiでポップアップメニューを使用しています。ユーザーが項目を選択するとチェックされ、他の項目はチェックされない「ラジオグループ」方式で使用したいと思います。AutoCheckプロパティを使用してみましたが、これにより複数の項目をチェックできます。1つの項目だけをチェックできるようにポップアップメニューを設定する方法はありますか?

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

windows - 登録済みのmimeヘルパーアプリケーションを起動する

以前は、Windowsレジストリに特定のmimeタイプを登録することで、ローカルにインストールされたヘルパーアプリケーションを起動できました。これにより、ユーザーが内部ブラウ​​ザアプリケーションの現在のインストールへのリンクを1回クリックできるようになりました。これは、Internet Explorer 5(ほとんどの場合)およびFirefoxで正常に機能しましたが、InternetExplorer7では機能しなくなりました。

shell / open / commandに渡されたファイル名は、ダウンロードされたインストールパッケージへの完全な物理パスではありません。IEから渡されるパスパラメータは

残念ながら、これは呼び出し時またはオブジェクトFileExists()の作成を試みたときに物理ファイルに解決されません。TFileStream

"Content.IE5\ALBKHO3Q"物理パスに、絶対パスが次のように表されるインターネット一時ファイルのInternetExplorer隠しキャッシュサブディレクトリがありません。

はい、サブディレクトリはIEによってランダムに生成されます。残念ながら、IEがヘルパーアプリケーションへのフルパスを渡す限り、これは問題になりません。

mimeヘルパーアプリケーションのインストールは問題ではありません。これは、世界中の10,000人以上のユーザーすべてのグローバルログインスクリプトによってインストール/更新されます。mimeヘルパーは、ユーザーがデスクトップブラウザアプリケーションのインストールへのリンクを含む内部Webページをクリックしたときにのみ呼び出されます。そのインストールは、mime-typeので返され"application/x-expeditors"ます。".expd"/ mime-typeの登録は"application/x-expeditors"次のようになります。

ユーザーのすべてのIEキャッシュエントリを列挙することを検討しましたが、それらすべてを調べるのにどれくらいの時間がかかるか、または探している現在のエントリの前に古いキャッシュエントリを見つけてしまう可能性があるかどうかが心配です。ただし、括弧で囲まれたファイル名のサフィックス"[n]"が一意のキーである場合があります。

私はwininetメソッドを試しましGetUrlCacheEntryInfoたが、IEから渡された仮想パスではなく、URLが必要です。

私の望みは、仮想パスを指定すると物理パスを返すシェル関数があることです。

0 投票する
8 に答える
4245 参照

sql-server - ストアド プロシージャが null パラメータを受け取るのはなぜですか?

わかりました、これは巻き毛です。私が書いていない Delphi コードに取り組んでいるのですが、非常に奇妙な問題に遭遇しています。ストアド プロシージャのパラメーターの 1 つが、null確実に送信されているにもかかわらず、として送信されてい1ます。

Delphi コードは、TADOQuery を使用してストアド プロシージャを実行します(匿名化)。

Integer(SomeFunction())現在、常に 1 を返します - デバッガーで確認しました。

ただし、ストアド プロシージャ (デバッグ目的で変更) では:

TempLog確かに「ああ、がらくた」で終わります(副次的な質問:ストアドプロシージャをデバッグするより良い方法があるに違いありません:それは何ですか?)。

プロファイラーからのトレースの例を次に示します。

これは私には少し奇妙に見えます。@p3@P3 を使用していることに注意してください。これが問題の原因になっている可能性はありますか?

もう 1 つの奇妙な点は、使用する TADOConnection に依存しているように見えることです。

プロジェクトは、別のアプリケーションから TADOConnection を渡される dll です。この接続を使用して、すべてのストアド プロシージャを呼び出します。

この接続を使用する代わりに、最初にこれを行います。

その後、問題は発生しません!この状況からのトレースは次のとおりです。

残念ながら、これは私が従うには少し多すぎます。これに影響を与える可能性のある TADOConnection オプションの種類は何ですか?

誰にもアイデアはありますか?

編集: 以下の更新(この質問をもう作りたくありませんでした:P)

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

delphi - Delphiポップアップメニューの可視性

Delphi 7には、Visibleプロパティがないため、ポップアップメニューが表示されている(画面に表示されている)かどうかを確認する方法はありますか。

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

delphi - Windows 2003 での Delphi 2009 および Informix dbExpress

dbExpress を使用して Informix データベースに接続する単純なアプリケーションがあります。TurboDelphi でコンパイルすると、WinXP と Win2003 の両方で動作します。

新しい Deplhi 2009 を使用すると、アプリは WinXP では問題なく動作しますが、Win2003 では起動しません。エラーのある MessageBox はありません。EventLog の情報のみ:

障害のあるアプリケーション inf_dbexpress_test.exe、バージョン 0.0.0.0、障害のあるモジュール kernel32.dll、バージョン 5.2.3790.4062、障害アドレス 0x0000bee7。

これはdbExpressドライバーの問題だと思いますが、ODBCを使用してInformixに接続するDelhi 2009でコンパイルされた他のアプリはWin2003で動作します。

Delphi 2009 の Informix dbExpress ドライバが Windows 2003 で動作するかどうか、誰でもテストできますか?


ご協力いただきありがとうございますが、うまくいきません。

に関しては$INFORMIXDIR:ClientSDK 3.5を再インストールしました$INFORMIXDIRが、現在は次のとおりです。

c:\informix

(c:\Program Files ... でした)。

ODBC を使用するアプリから DB に接続できます。ただし、WinXP 互換モードでも dbExpress アプリを起動できません。


Delphi Quality Central でバグ #67823として報告しました。