Dwukrotne kliknięcie TStaticText na formularzu powoduje skopiowanie podpisu tego TStaticText do schowka. Nie jest potrzebne zdarzenie z podwójnym kliknięciem.dwukrotne kliknięcie TStaticText w Delphi XE2 kopiowanie podpisów aplikacji do schowka
Kroki do odtworzenia:
- Korzystanie aktualizacji Win 64 i Delphi XE2 4.
- Tworzenie VCL Forms aplikacji.
- Umieść TEdit na formularzu.
- Umieść tekst TStaticText w formularzu. Zmień podpis na "TStaticText1Caption"
- Umieść drugi TStaticText w formularzu. Zmień podpis na "TStaticText2Caption"
- Uruchom program (F9)
- Wpisz tekst do TEdit. Wybierz wszystko i skopiuj za pomocą CTRL + C.
- Usuń tekst z TEdit. Wklej go, aby sprawdzić, czy tekst jest tym, co skopiowałeś.
- Usuń tekst z TEdit.
- Kliknij dwukrotnie tekst TStaticText.
- Wklej tekst do TEdit. Zauważ, że nie jest to oryginalny skopiowany tekst, ale podpis TStaticText.
Złożyłem już zgłoszenie błędu do Embarcadero.
Próbowałem przypisać zdarzenie dwukrotne do TStaticTexts. Nadal kopiuje podpis do schowka, nawet jeśli wykonuje zdarzenie dwukrotne kliknięcie.
procedure TForm1.StaticText1DblClick(Sender: TObject);
begin
Edit1.Text := 'Hello';
end;
procedure TForm1.StaticText2DblClick(Sender: TObject);
begin
Edit1.Text := 'World';
end;
Nie dzieje się tak z TLabel lub jakimkolwiek innym sterownikiem VCL, którego próbowałem.
Mamy wiele tekstów TStaticText w naszych formularzach do celów projektowania wizualnego, a zmiana na TLabels nie jest opcją.
Ktoś ma jakieś pomysły, jak temu zapobiec?
Zgodnie z artykułem, do którego linkujesz, istnieje alternatywa: "jeśli chcesz wyłączyć funkcję * podwójnego kliknięcia, aby skopiować * w sterowaniu statycznym' SS_NOTIFY', musisz podklasować kontrolę statyczną i zjeść kliknięcia siebie." –
Tak, jest to również ważna opcja. – RRUZ
Doceniam odpowiedź. Sądzę, że jest to wewnętrzna zmiana sposobu, w jaki formanty VCL są tworzone z nowszym Delphi w porównaniu ze starszym Delphi. Wystąpiło wiele drobnych problemów podczas konwersji z Delphi 6 na XE2. Będziemy musieli znaleźć alternatywę tam, gdzie mogłoby to spowodować problem. –