डेल्फी में TChromium
स्क्रॉलबार स्थिति कैसे प्राप्त करें और सेट करें?टीच्रोमियम स्क्रॉलबार पदों को कैसे प्राप्त करें और सेट करें?
8
A
उत्तर
1
वर्तमान में CefSharp के साथ खेल रहा है, मुझे लगता है कि यह डेल्फी के समान है। यहां मेरा समाधान है:
public int GetVerticalScrollPosition()
{
var r = _webView.EvaluateScript(@"document.body.scrollTop");
return Convert.ToInt32(r);
}
public void SetVerticalScrollPosition(int pos)
{
_webView.ExecuteScript(
string.Format(@"document.body.scrollTop = {0}", pos));
}
मैं अब डेल्फी विशेषज्ञ नहीं हूं, उम्मीद है कि आप मेरे कोड को समझ सकते हैं; मूल रूप से I use JavaScript to read/write the scroll positions और इन छोटे जावास्क्रिप्ट स्निपेट को EvaluateScript
और ExecuteScript
विधियों के माध्यम से निष्पादित करें।
3
जावास्क्रिप्ट ऑब्जेक्ट्स के साथ सीधे काम करना संभव है। बस फ्रेम के CefV8Context का उपयोग करें।
var
val: ICefV8Value;
context: ICefv8Context;
excp: ICefV8Exception;
scroll: TPoint;
begin
if (Chromium1.Browser.MainFrame = nil) then
exit;
//this will work only with exact frame
context := Chromium1.Browser.MainFrame.GetV8Context;
if (context <> nil) then
begin
context.Eval('window.pageXOffset', val, excp);
scroll.x := val.GetIntValue;
context.Eval('window.pageYOffset', val, excp);
scroll.y := val.GetIntValue;
end
else
exit;
//todo: do something with scroll here
end;
0
आप TCromium.Browser में जावास्क्रिप्ट का उपयोग करने की आवश्यकता है:
यहां एक नमूना है। यह सबसे आसान तरीका है:
Chromium1.Browser.MainFrame.ExecuteJavaScript('window.scrollBy(0,50)', 'about:blank', 0);
शुभकामनाएं!
फिर से खोलने के लिए वोट दिया गया। यह मेरे विचार में एक वैध और उपयोगी सवाल है! शोध करने के लिए बहुत कुछ नहीं है (इसलिए भी दिखाने के लिए बहुत कुछ नहीं), क्योंकि सीईएफ में स्क्रॉलबार पदों को प्राप्त करना या सेट करना संभवतः संभव है। – TLama
उत्तर के लिए धन्यवाद, मैं एक और समाधान की कोशिश करूंगा। –