問題タブ [trichedit]
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 - TRichEdit のサイズ/制限を増やしますか?
TRichEdit に問題があります。
最初の問題は、クリップボードから空の TRichEdit に大量のテキストを貼り付けようとすると、テキストの下部が切り捨てられることです。
最初の問題に関連していると思われる 2 番目の問題は、TRichEdit が表示できる文字数に制限があるように見えるため、クリップボードから貼り付けるとデータの一部が失われることです。
TJvRichEdit (Jedi) に貼り付けると、まったく別のコンポーネントであるため、問題なく動作します。
現時点では、TRichEdit のソリューションが必要です。これは、多くのプロシージャ/関数などを使用しているためです。別のリッチ エディット クラスに変更すると、多くのコードを編集して機能させる必要があります。
だから基本的に私が求めているのは:
- TRichEdit に制限はありますか? あると確信しています。
- TRichEdit の制限を増やして、より多くの文字や行などを受け入れるにはどうすればよいですか?
TRichEdit のみにアドバイス/解決策を提供してください。
編集
次を使用して答えを見つけてもかまいません。
delphi - D2005 から D2010 へのアップグレード: TRichEdit
次のコードは、D2005 でうまく機能します。
しかし、D2010 では、このコードはテキストを rtf ではなくプレーン テキストで出力します。
問題を解決するために、次のコードを使用しています
プロセスでファイルを使用せずにデータベースから TRichEdit に rtf テキストをインポートするにはどうすればよいですか? この質問の解決策を試しました が、うまくいきません。プレーンテキストで表示され、各文字の間にスペースがあります。
ありがとうサム
delphi - TRichEdit で特定の文字の色を変更するにはどうすればよいですか?
私は Delphi 7 プロジェクトを行っています。ここでは、クリスマス ツリーを作成するためにユーザーに数字 (レイヤーを下に向ける) を入力させる必要がありますが、出力を*
(星) として表示する必要もあります。TRichEdit で特定の星の行を編集して、実際のクリスマス ツリーが輝いているように色をランダムに変更するのに問題があります。
delphi - TRichEdit をキャンバスにペイントする
Delphi XE で RTF 対応のツール ヒント ウィンドウを実装しようとしています。リッチ テキストをレンダリングするために、オフスクリーン TRichEdit を使用しています。私は2つのことをする必要があります:
- テキストのサイズを測定します。
- テキストをペイントする
両方のタスクを達成するために、次のメソッドを作成しました。
Range パラメーターが渡されるので、このメソッドの外で計算されたディメンションを使用できます。MustPaint パラメータは、範囲を計算する (False) かペイントする (True) かを決定します。
範囲を計算するには、次のメソッドを呼び出します。
ペイントするには:
問題は、幅 438 ピクセル、高さ 212 ピクセルの四角形を計算するときに、実際には非常に幅が広く (クリッピングされ)、高さ 52 ピクセルしかない四角形を描画することです。
ワードラップをオンにしていますが、それは必要ないというのが私の印象でした。
何か案は?
delphi - Delphi の行に色を付けたテキスト コンポーネントを TRichEdit に置き換えてパフォーマンスを向上
私は現在、ソフトウェアの 1 つ (Delphi 7) で TRichEdit を「リアルタイム」イベント ログ ビューアとして使用しています。最近、ソフトウェアのプロファイリングを行ったところ、TRichEdit がソフトウェアの CPU 時間の 40% 以上を消費しています。
パフォーマンスを比較するために他のコンポーネントをテストしたいだけです。このコンポーネントには次のものが必要です。
- 行の色付け (異なる色の行には異なる接頭辞または HTML の色付けなどがあるため、LINE 構文の色である可能性があります)。
- ファイル機能への簡単な保存 (RTF または HTML へ)。
- 無料またはオープンソース。
- 良いパフォーマンス。ビューアとして「大きなファイル」(200 Mo の場合もあります)の場合でも。
情報 : 私はまだこの投稿を見ていますが、良い答えはありません。
delphi - TRichEdit で EM_AUTOURLDETECT を設定した後に URL リンクを検出する方法は?
EM_AUTOURLDETECT メッセージを使用して TRichEdit コンポーネントの URL 検出を実装しようとしています。
次のコードに問題があります
それは機能しますが、これらの設定の後に TRichEdit のテキストを変更して、既に記述されたテキストの URL を検出できるようにする必要があります。この機能を適用すると TRichEdit が読み取り専用モードになるため、これが問題です。
このコードを実行して TRichEdit に既に記述されたテキスト内の URL を強制的に検出させた後、どうすればよいですか?
私はドキュメントを見ていましたが、このようなことについての言及はありません。
ありがとうございました
delphi - 背景色付きのリッチエディットを印刷する
Delphi TRichedit コントロールからプリンターにテキストを出力しています。背景画像があるので、このロジックで EM_FORMATRANGE を使用しています...
...そして、リッチエディットの色に関係なく、テキストがレンダリングされるときに常に白い背景を持つことを除いて、それはうまく機能します。理由はありますか?
編集:投稿されたコメントから:
Range
でありRANGEFORMAT
、次のような値が割り当てられます。
winapi - Richedit 2.0コントロールは、WM_PAINTメッセージのWParamを無視しますか?
リッチエディットコントロールをダブルバッファリングしようとする際の多くの問題を読みましたが、この特定の質問に対する直接的な答えは見ていません(Microsoftが公式声明を発表している引用/リンクがあると本当に素晴らしいでしょう)。
これが私がテストに使用しているいくつかのコード(VCL / Delphi / Borland Builder 6.0)です:
継承される前にBeginPaint()を呼び出すと(VCLを知らない人のためにメッセージをコントロールに渡します)、コントロールはメモリDCまたは実際のウィンドウDCに何も描画しません。代わりにGetDC()を呼び出すと、コントロールはメモリDCを描画しませんが、ウィンドウDCを直接描画します。BitBlt()呼び出しをコメントアウトすることでこれを確認します。コメントアウトされていない場合、クライアント領域はすべて黒になります(つまり、コントロールがメモリDCにまったく描画されませんでした)。その行をコメントアウトすると、コントロールは正しく描画します(つまり、WParamメモリDCに点火し、ウィンドウDCに直接移動しました)。
私は自分の質問に答えたように聞こえますが、私が本当に望んでいるのは、他の人からの確認です(MS KBの記事またはMSDNへのリンクは素晴らしいので、上司に見せることができます:)、およびダブルバッファリングを実現するための他のアイデアの可能性? コントロールを画面外に非表示にしたり、WM_PRINTを使用したりするなど、見つけたハックのほとんどを使用することはできません。このコントロールは、ユーザー入力とスクロールバーで実際に機能する必要があるため、表示専用ではありません。
また、VCLを使用しているにもかかわらず、コントロールはRichEdit2.0を使用しています。ウィンドウを「richedit20a」クラスとして作成するように変更されています。また、VCLレイヤーがペイントをまったく混乱させていないことも確認しました。したがって、これと同じ動作が純粋なwin32コードでも見られるはずです。
delphi - Delphi 7 TRichTextEdit ボックス内のテキストが正しく表示されない
Delphi 7 TRichEdit コンポーネントを使用して、RTF データが msword ドキュメントからコピー アンド ペーストによってインポートされますが、データがボックスに含まれている場合、正しく表示されません。
手伝ってください