2011-05-05 11 views
12

Şu anda aşağıdaki hack var:Bir THtmlViewer nesnesinden nasıl kopyalayıp yapıştırabilirsiniz?

procedure TForm1.HTMLViewer1KeyDown(Sender: TObject; var Key: Word; 
    Shift: TShiftState); 
begin 
    if (Key = Word('C')) and (Shift = [ssCtrl]) then 
     HTMLViewer1.CopyToClipboard; 
end; 

Bir html görüntüleyiciden kopyalamayı etkinleştirmenin daha mantıklı/sürdürülebilir bir yolu var mı? Şunu koyabileceğim bir özellik olduğunu umuyorum, çünkü yukarıdakileri yapmak aptalca görünüyor. TCustomEdit'in alt öğeleri varsayılan olarak kopyalama, yapıştırma ve seçilme özelliğine sahiptir, ancak bazı nedenlerle htmlviewer bu şekilde uygulanmıyor gibi görünmektedir.

Başka bir problem de yukarıdaki yöntemin de sağ tıklayıp "copy"

EDIT 'inin seçilmemesidir. DÜZENLEME: Sonunda, yukarıdaki kodu bu derse göre uygun bir bağlam menüsü ile değiştirmeyi seçtim: http://delphi.about.com/od/tmemotrichedit/a/richedit-popup.htm

+1

THTMLViewer nedir? Standart VCL bileşenlerinden biri değil (en azından DelphiXE Professional veya D2007 Pro'da değil). Asla-bu PBear bileşenlerinden biri - başkalarının görmesi için yorum bırakarak.) –

+1

İki öneri: İlk olarak, insanlara yazmayın, yazmak için yeterince güzel şeyler söyleyin ve sonra serbest "aptal" için kullanmanıza izin verin - her zaman Kendi yerine yaz ve "akıllı" yap. İkincisi, kaynağa baktın mı? THTMLViewer, TCustomEdit'ten mi geliyor? Eğer öyleyse, kendiniz bir iniş yaratabilir ve ihtiyacınız olan her şeyi yayınlayabilirsiniz; Aksi takdirde, TCustomEdit'in kabiliyetine göre yapılan karşılaştırmalar mantıklı değildir. –

+0

Yanıt için teşekkürler. Kaynağa baktım ve bunu zaten uygulamıyordu ve bir web tarayıcısı olarak aynı şekilde çalışmasının bir dereceye kadar düşünmesi gerektiğini düşündüm ama sanırım değil. Direksiyonu yeniden icat etmeyi sevmiyorum ama şimdi yaptım. Delphi, endişelendiğim kadar korsanlık yapmak için yapıldı, böylece olduğu gibi bırakacağım. –

cevap

3

kullanıcı Ctrl-C (yani. 1 kendi çözüm # kullanmak)

procedure TForm1.HTMLViewer1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); 
begin 
    if (Key = Word('C')) and (Shift = [ssCtrl]) then 
    HTMLViewer1.CopyToClipboard; 
end; 

yoksa burada anlatıldığı gibi bir açılır menü uygulamak bastığı zaman bir şeyler yapabileceğini (yani. kendi çözüm # 2)

Add a Standard Context (popup) Menu to Delphi's TRichEdit

+0

ps seçenek 2 özellikle bakım açısından çok daha iyi. Teşekkürler –