2010-10-18 18 views
5

मुझे घटक TwebBrowser में एक अजीब व्यवहार मिला, जब मैं कुछ फ़ॉन्ट लोड करता हूं जो उन्हें बड़े फोंट के साथ दिखाए जाते हैं। इंटरनेट एक्सप्लोरर में क्या उपयोग किया जाता है उससे अलग।बड़े फोंट के साथ TWEbrowser लोड पेज

देख इन नमूना छवियों

यहाँ इस लिंक http://docwiki.embarcadero.com/RADStudio/en/Main_Page में TWebBrowser में और IE में छोटे फोंट (एक और शैली) के साथ बड़े फोंट से भरा हुआ है।

alt text

यह पेज https://stackoverflow.com/ TWebBrowser घटक और IE में एक ही शैली से भरा हुआ है।

alt text

मैं अलग मशीनों पर यह कोशिश की और एक ही बात होता है।

मैं इस व्यवहार को कैसे ठीक कर सकता हूं? यह एक सीएसएस के साथ एक समस्या है?

उत्तर

1

मुझे लगता है कि समस्या यह है कि TWebBrowser घटक संगतता मोड में इंटरनेट एक्सप्लोरर चला रहा है। दरअसल, यदि आप इंटरनेट एक्सप्लोरर 8 और बाद में डॉकविकी पेज खोलते हैं, तो फोंट छोटे और सुखद होते हैं, इसके विपरीत वे TWebBrowser में कैसे देखते हैं। लेकिन यदि आप इंटरनेट एक्सप्लोरर विंडो में "संगतता दृश्य" बटन पर क्लिक करते हैं, तो आपको TWebBrowser घटक में मिलता है, तो आपको वही बड़ा टेक्स्ट मिल जाएगा। ,

procedure TForm3.FormCreate(Sender: TObject); 
begin 

    with TRegistry.Create do 
    try 
     RootKey := HKEY_CURRENT_USER; 
     if OpenKey('Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', true) then 
     WriteInteger(ExtractFileName(Application.ExeName), 8888); 
    finally 
     Free; 
    end; 

    WebBrowser1.Navigate('http://docwiki.embarcadero.com/RADStudio/en/Main_Page'); 
end; 

मूल्यों 8000 हैं: (। यह अच्छी तरह से मालूम है कि IE6 बहुत बड़ा पाठ का उपयोग)

this MSDN blog entry और the MSDN docs के अनुसार, TWebBrowser नियंत्रण से संगतता मोड को नियंत्रित करने के लिए, रजिस्ट्री का उपयोग 7000, और 8888 "आईई 8 मानक मोड", "आईई 7 मानक मोड", और "आईई 8 मानक मोड (जबरन)" क्रमशः। इसलिए, उपर्युक्त कोड आईई 8 मानक मोड को मजबूर करेगा।

आश्चर्यजनक रूप से, मानक को मोड सेट करने से केवल फ़ॉन्ट भी बड़ा होगा।

+0

एंड्रियास, 'संगतता मोड' के बारे में आपकी टिप्पणी के लिए धन्यवाद, लेकिन कुछ पेज एक ही शैली और फ़ॉन्ट के साथ क्यों दिखते हैं जब वे 'संगतता मोड' में चलते हैं? – Salvador

0

मैं सामान्य रूप से ZOOM निर्धारित करके इसे ठीक:

WebBrowser1.ExecWB(OLECMDID_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, zoom); 

आप OLECMDID_GETZOOMRANGE उपयोग करने के लिए zoom के लिए मान्य सीमाओं का निर्धारण करने की आवश्यकता है। अधिक जानकारी के लिए MSDN documentation पर टिप्पणियां पढ़ें।

संबंधित मुद्दे