フォーム上のTStaticTextをダブルクリックすると、そのTStaticTextのキャプションがクリップボードにコピーされます。ダブルクリックイベントは必要ありません。Delphi XE2アプリでTStaticTextをダブルクリックすると、キャプションがクリップボードにコピーされます
再現する手順:勝利64を使用して
- とDelphi XE2の更新4.
- VCLを作成してアプリをフォーム。
- フォームにTEditを配置します。
- フォームにTStaticTextを配置します。キャプションを "TStaticText1Caption"に変更する
- フォームに2番目のTStaticTextを配置します。キャプションを「TStaticText2Caption」に変更する
- プログラムを実行する(F9)
- テキストをTEditに入力します。すべて選択し、CTRL + Cでコピーします。
- TEdit内のテキストを削除します。テキストを貼り付けて、テキストがコピーされたものであることを確認します。
- TEdit内のテキストを削除します。
- TStaticTextをダブルクリックします。
- テキストをTEditに貼り付けます。コピーされた元のテキストではなく、TStaticTextのキャプションであることに注意してください。
私はすでにEmbarcaderoにバグレポートを提出しています。
私はTStaticTextsにダブルクリックイベントを割り当てようとしました。ダブルクリックイベントを実行してもキャプションはクリップボードにコピーされます。
procedure TForm1.StaticText1DblClick(Sender: TObject);
begin
Edit1.Text := 'Hello';
end;
procedure TForm1.StaticText2DblClick(Sender: TObject);
begin
Edit1.Text := 'World';
end;
これは私が試したTLabelや他のVCLコントロールでは起こりません。
ビジュアルデザインのために私たちのフォームにたくさんのTStaticTextがあり、TLabelsへの変更はオプションではありません。
誰にもこのようなことが起こらないようにする方法はありますか?
あなたがリンクしている記事によると、「SS_NOTIFY」静的コントロールの*ダブルクリック機能を無効にしたい場合は、静的コントロールをサブクラス化して、あなた自身。 " –
はい、これも有効なオプションです。 – RRUZ
私は答えを感謝します。私はVCLコントロールが古いデルファイと比較して新しいデルファイでどのように作成されるのかを内部的に変更したと思います。 Delphi 6からXE2への変換には、ほとんど問題はありませんでした。これが問題の原因となる代替案を見つける必要があります。 –