TWebBrowser icinden delphi function cagirmak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
acetinturk
Üye
Mesajlar: 2
Kayıt: 31 Mar 2023 03:02

TWebBrowser icinden delphi function cagirmak

Mesaj gönderen acetinturk »

Merhaba,

Kucuk bir TwebBrowser'im var ve icinde 2 adet button var. Button1 id=1, value="Test 1", Button2 id=23, value="Deneme 2"

WebBrowser'da herhangi bir butona tikladigim zaman, Delphi icinde yazdigim bir procedure veya function'a ilgili buton'un id ve value bilgilerini gondermek istiyorum.

NOT : Delphi 7 kullaniyorum.

procedure TForm1.Button1Click(Sender: TObject);
var s : String;
begin
WebBrowser1.Silent := True;
s := '<!DOCTYPE html> ';
s := s + '<html> <body> ';
s := s + '<h1>Test butonlari</h1> ';
s := s + '<form> <input type="button" id="1" value="Test 1" onclick="msg(id, value)"> ';
s := s + '<form> <input type="button" id="23" value="Deneme 2" onclick="msg(id, value)"> ';
s := s + '</form> <script> ';
s := s + '</script> </body> </html> ';

WebBrowser1.Navigate('about:' + s);
end;

procedure TForm1.msg(id, value : string);
begin
ShowMessage('Oleeyyyy ' + value + ' degeri web browserdan geldi');
//Bir sonraki adim ----> AddToDB(id, value);
end;
acetinturk
Üye
Mesajlar: 2
Kayıt: 31 Mar 2023 03:02

Re: TWebBrowser icinden delphi function cagirmak

Mesaj gönderen acetinturk »

Soyle bir cozum buldum. Fakat daha iyi seceneklere her zaman acigim.

type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
BitBtn1: TBitBtn;
StatusBar1: TStatusBar;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure MyMessages(var Msg : TMsg; var Handled: Boolean);
public
{ Public declarations }
end;


procedure TForm1.FormCreate(Sender: TObject);
var
s : string;
begin
Application.OnMessage := MyMessages;

s := '<!DOCTYPE html> ';
s := s + '<html> <body> ';
s := s + '<h1>Show a Push Button</h1> ';
s := s + '<p>The button below activates a JavaScript when it is clicked.</p> ';
s := s + '<form> <input type="button" id="1" value="Click me 1" > </form> ';
s := s + '<form> <input type="button" id="2" value="Click me 2" > </form> ';
s := s + '<script> ';
s := s + '</script> </body> </html> ';

WebBrowser1.Navigate('about:'+s);
end;

procedure TForm1.MyMessages(var Msg: TMsg; var Handled: Boolean);
var
X, Y: Integer;
document,
E: OleVariant;
begin
if (Msg.message = WM_LBUTTONDOWN) and IsDialogMessage(WebBrowser1.Handle, Msg) then
begin
X := LOWORD(Msg.lParam);
Y := HIWORD(Msg.lParam);
document := WebBrowser1.Document;
E := document.elementFromPoint(X, Y);
StatusBar1.SimpleText := 'You clicked on:' + E.outerHTML;
end;
Handled := False;

end;
Cevapla