Bir formdaki bir TStaticText çift tıklatıldığında, bu TStaticText dosyasının yazısını panoya kopyalar. Çift tıklama etkinliğine gerek yoktur.Delphi XE2 uygulamasında TStaticText uygulamasının çift tıklatılması panoya kopyalanır
Yeniden oluşturma adımları:
- Win 64 ve Delphi XE2 güncelleme kullanılması 4.
- bir VCL Forms uygulaması oluşturun.
- Form üzerine bir TEdit yerleştirin.
- Formda bir TStaticText yerleştirin. Başlığı "TStaticText1Caption" olarak değiştir
- Formda ikinci bir TStaticText yerleştirin. Altyazıyı "TStaticText2Caption" olarak değiştirin
- Çalıştırma (F9)
- TEdit'e bir metin yazın. Hepsini seçip CTRL + C ile kopyalayın.
- Metni TEdit'te silin. Metnin kopyaladığınız şeyi doğrulamak için yapıştırın.
- Metni TEdit'te silin.
- TStaticText öğesini çift tıklatın.
- Metni TEdit'e yapıştırın. Orijinal kopyalanmış metin değil, TStaticText'in yazısı olduğuna dikkat edin.
Embarcadero'ya bir hata raporu gönderdim.
TStaticTexts için çift tıklama olayı atamayı denedim. Çift tıklama etkinliğini yürütmesine rağmen, yazıyı panoya yine de kopyalar.
procedure TForm1.StaticText1DblClick(Sender: TObject);
begin
Edit1.Text := 'Hello';
end;
procedure TForm1.StaticText2DblClick(Sender: TObject);
begin
Edit1.Text := 'World';
end;
Bu, TLabel veya denediğim başka bir VCL denetimi ile gerçekleşmez.
Görsel tasarım amacıyla formlarımızda birçok TStaticTexts var ve TLabels'e geçmek bir seçenek değil.
Bunun olmasını önlemek için herhangi bir fikri olan var mı?
Bağlandığınız makaleye göre, bir alternatif var: "* SS_NOTIFY" statik denetiminde * kopyalamak için çift tıklatma özelliğini devre dışı bırakmak isterseniz, statik denetimi alt sınıflara ayırmanız ve tıklamaları kendin." –
Evet, bu geçerli bir seçenek de. – RRUZ
Cevabı takdir ediyorum. VCL kontrollerinin eski Delphi'ye kıyasla daha yeni Delphi ile nasıl yaratıldığının bir iç değişimi olduğunu düşünüyorum. Delphi 6'dan XE2'ye dönüştürülen çok sayıda küçük sorunla karşılaştık. Bunun bir sorun yaratacağı bir alternatif bulmamız gerekecek. –