問題タブ [delphi-6]
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.
delphi - AcrobatPDFファイルはサムネイルのような画像で見る必要があります
重複の可能性:
DelphiのPDFサムネイル
私はDelphi6で、サムネイルのように、AcrobatViewerに送信する前にいくつかのAdobeAcrobatファイルを表示するアプリケーションを開発しています。
TImageにファイルを表示するためのコードを提供してくれませんか。
前もって感謝します。
delphi - モーダルフォームのコンテキスト内から未処理のDelphi6例外をトラップする方法は?
最近、モーダルフォームがときどき消えてしまう(ウィザード)という問題がありました。長いデバッグセッションの後、モーダルフォームを含むユニットの一部ではないコードの一部で未処理の例外が原因であることが判明しました。この問題は、モーダルフォームを表示するDelphiのコードが原因です。これは、 show操作をtry finallyブロックにラップし、途中でモーダルフォームを非表示にします。例外が発生すると、モーダルフォームの制御外のコードでも、例外ハンドラーは、表示されているモーダルフォームのコンテキストで例外を発生させ、前述のtry/finallyブロックをトリガーします。したがって、モーダルフォームは一見奇妙な時間に消えます。
エラーを報告するより高いレベルの例外コードがありますが、2つの理由から、モーダルフォームのコンテキスト内からエラーをトラップできるようにしたいと考えています。まず、モーダルフォームのコンテキスト内でエラーを表示することにより、不快感の少ないユーザーエクスペリエンスを提供します。次に、モーダルフォームを終了せずに、可能であればエラー回復操作を試行します。
モーダルフォームのユニットの外部でそのユニット内から発生する例外をトラップする方法はありますか?このための戦略がある場合は、キーボード入力のフォーカス、フォームの可視性、ウィンドウの状態に関する奇妙な問題を回避するために実装する必要のあるニュアンスを教えてください。これは、ほとんどのソリューションが通常使用できなくなるためです。
delphi - TTCPServer の onAccept で ShowModal を実行すると、アプリケーションがハングしますか?
TTCPServer を使用して Delphi 6 で 1 つのネットワーク アプリケーションをプログラミングしています。このコンポーネントの OnAccept イベントで、別のフォームに対して showmodal を呼び出します。これにより、メイン フォームがハングします。スレッドのせいだと思いますが、このイベントでフォームを表示する方法がわかりません。私は本当にそれを呼び出す必要があります。どんな答えでも感謝します。ありがとう。
delphi - Delphi 6アプリケーションでStrToFloat()を使用したEConvertErrorのその他の原因は?
Delphi6アプリケーションの海外ユーザーの少なくとも一部に影響を及ぼしている奇妙な問題が発生しています。シナリオは次のとおりです。
- 私のプログラムは、HTTPサーバーとして機能する外部デバイスから定期的にステータスレポートを要求します。
- デバイスは、名前と値のペアの形式でパイプ文字で区切られた一連のフィールドを持つ応答ドキュメントとしてステータスレポートを送り返します(例:--field1 = -0.437)。
- レポート文字列をフィールドに分割してから、もう一度各フィールド名と数値を取得します。
- StrToFloat()を使用して、浮動小数点フィールドの値を文字列形式に変換し、その関数の結果をVariant変数に割り当てます。
これはほとんどのPCで正常に機能しますが、数値でStrToFloat()を使用しようとすると、一部の海外ユーザーにEConvertErrorが発生します。これが私のログからのエラーメッセージの具体例です:
EConvertError:'-0.685'は有効な浮動小数点値ではありません
ご覧のとおり、-0.685は有効な浮動小数点数ですが、EConvertError例外が発生しています。通常、小数点がある場所にコンマが表示されるか、その他のロケール固有の句読点の問題が発生することが予想されますが、この場合、数値は正常に表示されます。また、私の知る限り、外部デバイスには文字セットを設定するオプションさえありません。
では、Delphi 6と国際的な文字セットに関する微妙なニュアンスがこの問題を引き起こしている可能性があります。おそらく、ユーザーのWindows XP/Win7の文字設定に関連しているのでしょうか。プログラム全体で標準のDelphi6" string "キャスト文字列を使用しているため、マルチバイト文字セットの問題が根本的な原因である可能性がないことに注意してください。誰かがこの問題を抱えていて、それについて何をすべきか知っていますか?
delphi - ネットワーク通信 - 一部の情報がサーバーに届かない
現在書いているプログラムに少し問題があります。
まず、それが達成すべきことを説明しましょう。
これはチャット プログラムに非常に似ているため、基本的に、クライアント ウィンドウで発生するいくつかのことに関するデータを格納する情報クラス (私はパケットと呼びます) を持っています。プログラム自体は、2 つの異なるクライアント ウィンドウとサーバー ウィンドウで構成されます。(そして、それらのそれぞれを開くための 1 つのウィンドウですが、それは今は重要ではありません。)
したがって、クライアントは自分のウィンドウでいくつかのことを変更し、送信を押します。
次に、私のパケットはこのすべての情報を保存します。これは、ニックネーム、テキスト、いくつかの異なる数値 (基本的にはサイコロの結果)、および「種類」変数で構成されます。
メッセージには 3 つの異なる種類があり、この「パケット」は送信できます。
- 通常のテキスト メッセージ (完全に機能します。)
- 3 つのサイコロの結果、難易度の値、才能の値で構成されるサイコロ メッセージ。
- 別のサイコロ メッセージ。今回は 1 つのサイコロの結果のみで構成されます。
メッセージが送信される (そしてサーバーによって受信される) たびに、プログラムはメッセージの種類を (kind 変数を介して) 読み取り、メッセージの内容に応じてメッセージを処理するためのさまざまな手順を開始します。
チャット メッセージはチャットに表示されるだけで、各クライアントに送信されて表示されます。これは、バグや何かなしで動作します。
サイコロメッセージは両方とも、表示される特別な形をしています。基本的には、ダイスロールが成功したかどうかを示すために、この形で生成されたチャット メッセージです。
今私の問題があります:
プログラムを LAN バージョンで (ロケール IP を使用して) テストしたところ、完全に機能しました。問題なし、バグなし。
しかし今、私は友人にインターネット経由でテストするのを手伝ってくれるように頼みました. ポート転送が機能し、クライアントは接続できます。
いよいよメッセージの送信です。チャットメッセージ: 正常に動作します Dice1-Message: ニックネームと 2 つのサイコロの結果のみが送信されます。3 番目のサイコロの結果は表示されず、他のすべての情報は、表示されるはずの場所に空白が残るだけです。2 番目のダイス メッセージについても同様です。ダイスの結果とニックネームのみが表示され、その他の情報は表示されません。
知っておくと役立つ場合、プログラムは Delphi 6.0 で書かれています (はい、少し古いですが、私はこのプログラムに慣れていて、まだプログラミングが得意ではありません..基本を学び、自分のそのような最初の大きなプログラム。)
パケット自体は次のように定義されます。
メッセージは、次のような情報を参照します。
そう..それはどのようにです。誰かが何が問題なのか (または、この場合は LAN とインターネットの問題の原因となる違い) を知っていて、これを解決する方法を知っていることを願っています。
よろしくお願いします〜
PS: サーバーは単純に情報を取得し、同じ方法で表示します。どのクライアントも同じように表示し、それを各クライアントに直接送信します。各クライアントはそれを受信して表示します。
編集:
うーん、「その他の情報」は大差ないので、このままでいいと思いました。
でも大丈夫〜詳細:)
「その他の情報」はすべて文字列 [255] 型ですが、そのうちの 1 つはブール値です。
Dice1 -Type は以下を使用します。
ニックネーム、リザルト1、リザルト2、リザルト3、難易度、スキルポイント、タレント(ダイスロールが成功または失敗をテストするタレントの名前のみ)、および「成功」と呼ばれるブール値。
Dice2 の用途:
ニックネーム、結果、難易度、才能 (タレントの名前。値を間違えないでください^^)、TalentPoints (基本的に、タレントの値からダイスロールの難易度を差し引いたもの)、およびブール値の「成功」と同様に、 「種類」と呼ばれる文字列[255]。種類の機能は上で説明されています。
プロトコルに関しては、私は特別なものを使用していないと思います..
SendBuf と ReceiveBuf を介して TPacket クラス全体を送信するだけです。私はプログラミングにまったく慣れていないので、それ以上の情報を提供できなくて申し訳ありません:/
サーバーが TPacket の受信とリダイレクトに使用する手順のコードを示します。
私はドイツ語でプログラムを書いているので、間違いがないことを願っています..^^
もう一度、私の TPacket の宣言全体..重要かもしれません
私はそれがより理解しやすくなったことを願っています..私は説明するのが得意ではないと思います:/
しかし、ここに私を歓迎してくれてありがとう、私はあなたたちに迷惑をかけず、何かのケースでも助けられることを願っています!
delphi - アプリケーション内のすべてのクラスを取得する方法
EnumResourceNames API 呼び出しを介してアプリケーション リソースから DFM 情報を読み取るローカリゼーション アプリケーションを作成しています。
ただし、この関数は、DFM が関連付けられているフォームの名前を返します。FindClass からクラスを取得しようとしましたが、この操作全体がパッケージでコーディングされているため、FindClass は失敗します。RegisterClass ルーチンは、exe の初期化セクションから呼び出されます。
FindClass は、exe プロジェクトに記述されたコード内から呼び出すと正常に動作します。そのため、すべてのフォーム クラスを追加する独自の登録フレームワークを開発しましたが、フォームのユニットを追加してフォーム クラスを RegisterClass ルーチンに渡す必要があるため、これは非常に面倒です。
クラス名を検索してオブジェクトのインスタンスを作成できる実行可能ファイルにあるすべてのクラスを取得する簡単なソリューションを誰かが提供できるかどうかを期待していました。
ところで、私は Delphi 6 Update 2 を使用しています。
ありがとうラフルW
delphi - ワイド文字列を TStringStream に渡す方法はありますか?
私はこのDelphi関数を持っています:
目的は、一連の RTF 形式のテキストを取得し、それらを他のテキストと連結して、単一の TStringStream で返し、フォームの TRichEdit に表示することです。
「オンザフライのRichEditを使用する」をスキップして、結果のテキストをTStringStreamとして送信するにはどうすればよいですか?
delphi - Delphi Chromium Embeddedで名前で要素を取得するには?
ID を使用して TChromium インスタンスから現在の Web ドキュメントに埋め込まれた特定の DOM ノードを取得するには、ICefDomDocument.getElementById() を使用します。しかし、NAME 属性で要素を見つけるにはどうすればよいでしょうか。Javascript には document.getElementsByName() メソッドがあり、TWebBrowser (IE をラップする) にも同様の呼び出しがありますが、TChromium でこれを行う方法がわかりません。NAME 属性を持ち、ID 属性を持たない DOM 要素を見つける必要があります。私はceflibユニットを検索しましたが、それを行うものは何も見当たりませんでした。
副質問。だれかが TChromium の「レシピ」スタイルのサイトまたはドキュメントへのリンクを持っていれば、それを使用できます。
更新: 回答を待っている間に、getElementsbyName() を実行するための次のコードを思いつきました。DOM ツリー全体をスキャンするよりも高速な方法が必要です。コードに何か問題がある場合は、お知らせください。
silverlight - Chromium と Silverlight (Delphi)?
Silverlight と Chromium の統合を試みた人はいますか? もしそうなら、それを機能させるための手順をリストしたドキュメントを知っていますか? Delphi 6 と TChromium コンポーネントを使用しています。
delphi - パネル内に透明なフォームを作成する方法は?
実行時に、Panel 内に部分的に透明な Form を作成する必要があります。
どうすればこれを達成できますか?