問題タブ [delphi-2007]

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

delphi - カスタム フォーム デザイナーの作成

Delphi でカスタムの「データ モジュール」を作成したいと考えています。これは、TDataModule のような (おそらく継承された) クラスで、カスタム グリッド ベースのデザイン インターフェイス (1 行に 1 つのコンポーネント、列としていくつかのプロパティ) を持ちます。これは可能ですか?どこから始めればよいですか?

現在、Delphi 2007 を使用しています。

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

delphi - Delphi TMainMenu でホットキーの下線が表示されないのはなぜですか

Delphi 2007 プログラムでは、TAction リスト内のアクションを参照する TMainMenu を使用しています。すべてのメイン キャプションのホットキーの前にアンパサンドを付けました。

デザイン ビューでは、これらのホットキーには予想どおり下線が引かれていますが、プログラムを起動すると下線が引かれなくなりましたが、それでも機能します。これとは対照的に、すべてのサブメニュー アイコンに対して

下線は期待どおりに表示されます。

Windows pisplay のプロパティ オプション [Alt キーを押すまで、下線付きの文字またはキーボード ナビゲーションを非表示にする] を認識しています。そしてそれを無効にしました。Delphi IDE を含む他のすべてのプログラムでは、これは正常に機能します。

新しい VCL アプリケーションを作成し、TMainMenu といくつかのメニュー項目を追加するだけで、期待どおりに動作します。

これには本当に困惑しました。

変更しなければならない TMainMenu コンポーネントまたはアプリケーション オプションのプロパティはありますか? 「ランタイムテーマを有効にする」プロジェクトオプションが何らかの理由でグレー表示されていますが、それが問題でしょうか? はいの場合、これは何が原因ですか?

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

delphi - Delphi 2007 と {$IFDEF...} ディレクティブで、条件が表示されない

コードベースのコンポーネント ファイルには次のものがあります。

その理由は、さまざまなレガシー アプリケーションで、いずれかのタイプのデータベース接続と一連のクラスが使用されるためです。

ただし、新しいマシンの構成中に、条件が考慮されていないようです。プロジェクト設定では、「ADO;DEBUG」と表示されていますが、上記のコードを代わりに odbc タイプでコンパイルします。

奇妙なことは、それが一貫していないということです。同じプロジェクトの一部として構築された 2 つの異なるユニットは、別々の設定を使用します。つまり、ある場所では条件文が表示され、別の場所では表示されません。

間違ってコンパイルされたファイルには、{$UNDEF または同様のディレクティブがなく、ファイルも含まれていません。

ここで何が欠けていますか?

解決済み (うーん) : そうです、Delphi は頭がおかしくなっているだけです。

これらが見つかりました:

どちらも「Platform=BNB」設定について言及しています。診断出力を有効にすると、正確な値が表示されます。そのため、記事に従ってそれを上書きしようとしますが、運が悪く、まだ BNB です。次に、プロジェクト設定に移動し、そこでもオーバーライドできることが判明したので、それも行いますが、まだうまくいきません。

Delphi インストーラーなどによって、オペレーティング システム レベルで「Platform=BNB」環境変数が追加され、それが削除され、Delphi が再起動されたことが判明しました。すべて問題ありません。

まあ、期待できるのと同じように。ただし、まだ Delphi を使用する必要があります。

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

delphi - Delphi Indy IdTcpClient 読み取り操作で、特定の 1 つの要求に対して切り捨てられたデータが返される

これは私がまだ解決できていない興味深い問題です。

インターネットを介してサーバーと通信するクライアントを作成しています。RAD Studio 2007 ネイティブ パーソナリティを使用して、Indy 10 で TIdTcpClient Internet Direct (Indy) コンポーネントを使用しています。

サーバーからデータを取得するために、SSL を使用してポート 443 経由で HTTP 要求を発行します。要求の詳細は HTTP メッセージ本文に含まれています。ここまでは順調ですね。このコードは、1 つの例外を除いて、まるで魔法のように機能します。

サーバーから約 336 KB の応答を生成する必要がある 1 つの要求を送信しています (HTTP 応答ヘッダーには Content-Length: 344795 が含まれています)。問題は、320KB しか返ってこないことです。XML 形式の応答は、XML 要素の途中で明らかに切り捨てられています。

価値のあることとして、XML は単純なテキストです。切り捨ての原因となる特殊文字はありません。私の TIdTcpClient コンポーネントは、部分的な応答を受信した後、サーバーが接続を正常に閉じたことを報告するだけです (これは、切り捨てられていないものであっても、すべての応答が完了すると予想されるため、問題ではありません)。

応答も数キロバイトを超える同じサーバーに対してほぼ同じ呼び出しを行うことができ、これらはすべて正常に機能します。私が行う 1 つの要求では約 850 KB が返され、別の要求では約 300 KB が返されます。

つまり、特定の 1 つの要求でのみこの問題が発生します。多数ある他のすべての要求は、完全な応答を受け取ります。

私はサービスの作成者と話し、私の要求の例を提供しました。彼はその要求が正しいと報告した. 彼はまた、彼のサーバーに同じリクエストを発行すると、完全な応答が得られるとも言いました。

私は途方に暮れています。サービスの作成者が間違っていて、実際にはその側の応答に問題があるか、または私の要求に何か特別なものがあります。

私が見逃している解決策はありますか?他の多くの読み取りメカニズム (ReadString、ReadStrings、ReadBytes など) も使用しましたが、すべて同じ結果 (320KB マークでのこの 1 つの特定の応答の切り捨て) を生成することに注意してください。

コードはおそらく関係ありませんが、とにかく含めます。申し訳ありませんが、専有情報が含まれているため、XML リクエストを含めることができません。(ReadTimeout は 20 秒に設定されていますが、リクエストは約 1 秒で返されるため、タイムアウトの問題ではありません。)

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

delphi - Rad Studio 2007 と Rad Studio 2010 を同じマシンにインストールする

Rad Studio 2007 が既にインストールされているマシンに Rad Studio 2010 をインストールしたいのですが、互換性の問題がありますか?

前もってありがとう、さようなら。

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

delphi - アイテム上を移動すると、リストビューで「ヒント」が再起動します

確かに私はこれが以前に行われたのを見たことがありますが、手元にある例を見つけることができません。

'report'ビュースタイルに設定されたTListViewがあります。約半ダースのサブアイテムがあり、リストビューの「ヒント」(ツールチップ)に別のデータフィールドを動的に表示させることもできます。つまり、特定の行にマウスを移動するたびに、「ヒント」にその特定の行に関連するテキストが表示されます。

私は途中です-OnInfoTipメソッドを使用してこれを行うことができますが、残念ながら、ヒントが表示されると、Windowsは、マウスをリストビューから離すまで、リストビューのヒントを再度表示する必要はないと判断したようです。その後、再び「上に」戻します。マウスを次の行に移動するだけで、常にマウスをコントロール上に置いたままにしても、プログラムに新しいヒントを表示するように説得することはできません。

明確にするために、OnInfoTipを機能させて、プログラムが最初にマウスを移動したアイテムに関連する正しいヒントを表示するようにしました。ヒントテキストの変更は問題ではありません。問題は、リストビュー内の別の項目にマウスを移動しても、ソフトウェアに新しいヒントが表示されないことです。(それが理にかなっていることを願っています)。

この動作を機能させるための適切な方法はありますか、それともマウスオーバーで何か厄介なことをしてから手動でヒントボックス(など)を描画することになりますか?

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

delphi - TGridPanel内のコントロールの位置を見つける

TGridPanel内のコントロールの位置(行と列のインデックス)を確認するにはどうすればよいですか?ボタンの数に一般的なOnClickイベントを使用したいのですが、ボタンのX、Y位置を知る必要があります。

Delphi2007を使用しています。

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

.net - CardSpaceおよびDelphi2007/ WIN32

非常に単純な問題。Delphiアプリケーションを使用していますが、 CardSpaceを使用してログオンするようにユーザーに要求することにより、これへのアクセスを制限したいと思います。基本的に、カードスペースカードからID、名前、住所の情報を抽出する必要があります。

CardSpaceの使用はお客様からの要件であり、次の場合にのみ知りたいと思います。

  1. CardSpaceはDelphiから簡単に使用できますか?
  2. CardSpace用のDelphiコンポーネントはすでにありますか?

最大の問題は?CardSpaceは.NETベースですが、アプリケーションはWIN32アプリケーションである必要があります。

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

sql - Delphi 2007 で firebird の Timestamp フィールドからミリ秒の値を取得する方法

Firebird データベース (サーバー バージョン 2.1.3 で実行) があり、DBExpress オブジェクトを使用して (Interbase ドライバーを使用して) Delphi 2007 で接続しています。

データベース内の私のテーブルの1つはこのようになります

テーブルに追加できます。Flame Robin では、タイムスタンプ フィールドにミリ秒の値があることが示されます。

しかしselect * from MYTABLE、テーブルで select all ( ) を実行すると、常に 000 として返されるため、ミリ秒の値を取得できません。

これは主キーの一部であるため、大きな問題を引き起こします (残念ながら、私はテーブルを設計しておらず、変更する権限もありません)。

ミリ秒の値を取得するために次のことを試しました。

ただし、フォーマットすると、すべて 14/09/2009 14:25:06.000 が返されます。

タイムスタンプからミリ秒を取得するにはどうすればよいですか?

更新: これが将来誰かに役立つ場合に備えて、DBExpress で試したドライバーとその結果を次に示します。

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

delphi - Delphi 2010 で TFileStream に文字列を書き込む

次のような Delphi 2007 コードがあります。

私はそれを次のように呼びます:

これは Delphi 2007 では機能しましたが、Delphi 2010 では大量のジャンク文字が表示されます。これは Unicode 準拠の問題によるものであることはわかっていますが、この問題に対処する方法がわかりません。

これが私がこれまでに試したことです:

  • SourceBuffer のデータ型 (および WideString で必要なパラメーター) を PWideChar に変更します。

  • ここにリストされているすべての提案

私は何を間違っていますか?