WebBrowser boş iken Delphi'ye aittir ama herhangi bir sayfa Navigate edildiğinde bu durum farklılaşır.
Aşağıda iki farklı yöntem önereceğim. Her ikisi de çalışacaktır.
1. Yöntem forma bir tane Timer koyup bağımsızlaştırma
Kod: Tümünü seç
procedure TForm1.Timer1Timer(Sender: TObject);
var
p, p2: TPoint;
iGenelX, iGenelY,
wbX, wbY : Integer;
begin
GetCursorPos(p); // Burası tüm Windows odaklı sonuç verir.
p2 := ScreenToClient( p ); // Burası Formunun iç kısmına odaklı sonuç verir.
iGenelX := p2.X;
iGenelY := p2.Y;
wbX := iGenelX - WebBrowser1.Left;
wbY := iGenelY - WebBrowser1.Top;
Caption := Format('X:%d,Y:%d üzerinden WebBrowser X:%d,Y:%d', [iGenelX, iGenelY, wbX, wbY]);
end;
2.Yöntem sistem mesajlarından yola çıkarak Mouse takip
Kod: Tümünü seç
private
procedure AppMsg(var Msg: TagMsg; var Handled: Boolean);
procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('http://www.google.com.tr');
Application.OnMessage := AppMsg;
end;
procedure TForm1.AppMsg(var Msg: TagMsg; var Handled: Boolean);
var
p, p2: TPoint;
iGenelX, iGenelY,
wbX, wbY : Integer;
begin
if Msg.Message = WM_MOUSEMOVE then
begin
GetCursorPos(p); // Burası tüm Windows odaklı sonuç verir.
p2 := ScreenToClient( p ); // Burası Formunun iç kısmına odaklı sonuç verir.
iGenelX := p2.X;
iGenelY := p2.Y;
wbX := iGenelX - WebBrowser1.Left;
wbY := iGenelY - WebBrowser1.Top;
Caption := Format('X:%d,Y:%d üzerinden WebBrowser X:%d,Y:%d', [iGenelX, iGenelY, wbX, wbY]);
Handled := True;
end;
end;
