Delphi Kodlama – İnternet Sitesindeki Formu Programla Doldurma
Delphi programlama ile TWebBrowser, uygulamalarınıza özelleştirilmiş bir web tarama internet gezgini oluşturmak, dosya ve ağ tarama, belge görüntüleme vb. yetenekler kazandırır. Aynı zamanda uygulamalarınızla web tarayıcısına veri ekleme işlevselliği kazandırabilirsiniz.
İNTERNET (WEB) SİTESİ FORMLARI
Bir web sitesinin sayfasında bulunan bir form, işleme tabi tutmak için sayfa ziyaretçisinin sunucuya gönderilen verileri girmesine olanak tanır.
En basit bir web formu, bir metin veya sayısal değer girişi yapılabilen alan (textbox) öğesinden ve bir gönderme düğmesinden (submit) oluşur.
Çoğu web arama motoru da (örn. Google), internette arama yapmanıza izin vermek için böyle bir web formu kullanır.
Daha karmaşık olan formlar ise, açılır seçilebilen listeler, onay kutuları, radyo düğmeleri , vb. içerir . Bir web formu, metin girişi ve seçim denetimleri içeren standart bir pencere biçimi gibidir.
Her form, bir düğme tarayıcıya web formunda işlem yapmasını söyleyen bir gönderme düğmesi içerir.
WEB FORMLARI’NI PROGRAMLI OLARAK DOLDURMA
Yapacağınız herhangi bir masaüstü uygulamanız ile web formlarını program üzerinden kontrol edebilirsiniz. Biz örneğimizde bunu TWebBrowser kullanarak form girişi olan herhangi bir web sayfasını görüntüleyerek, sayfadaki formun ilgili alanlarının nasıl doldurulup ve gönderildiğini göstereceğiz.
Unutmayın alttaki örneğimiz sadece bir login yani üye giriş işlemi olarak görülebilir, ancak siz bu kodların üzerinden giderek doldurulacak olan alanları genişleterek iletişim formu, üyelik vs. gibi tüm formlar için uygulayabilirsiniz.
PROGRAMIMIZIN YAPIMINA BAŞLAYALIM
Öncelikle delphide File – New – VCL Form Application ile uygulamamızın formunu oluşturalım. Daha sonra formumuza 2 adet Edit ve 1 Adet Button ekleyelim. Uses bölümüne mshtml eklemeyi de sakın unutmayalım.
İşlemleri daha kolay izlemek için birde “WebBrowser1” adlı bir TWebBrowser kontrolü ekleyelim. Ve Form1.Oncreate olayına bu TWebBrowser’ın Navigate’ini ilgili web sitesinin üye giriş, iletişim, üyelik vs… formunun bulunduğu sayfaya ayarlayalım. TWebBrowser’ın Silent ayarını da “True” yaparsanız sitenin açılırken vereceği sinir bozucu gereksiz hataları görmezsiniz.
Burada atlamamanız gereken bir nokta var. Oda bu eklemiş olduğunuz websitesi form sayfasının kaynak kodlarına bakıp Form Adı ve doldurulacak kutuların adlarını almanız gerekiyor. Örneğimizde gördüğünüz gibi eklediğimiz sayfanın kaynak kodlarında;
form role="form" name="frmLogin1" id="frmLogin1" method="post" action="https://www.safirmedya.com/account.asp"> input type="text" class="form-control" id="txtMemberNumber1" name="txtMemberNumber"> /div> div class="form-group"> label for="txtPassword1">Şifre input type="password" class="form-control" id="txtPassword1" name="txtPassword"> /div>
Form Adı: frmLogin1
Üye Numarası Kutusunun Adı: txtMemberNumber1
Şifre Kutusunun Adı: txtPassword1
Daha sonra Button1.Click olayına alttaki kodları ekleyelim.
procedure TForm1.Button1Click(Sender: TObject); var doc:IHTMLDocument2; frm:IHTMLFormElement; fld:IHTMLInputTextElement; begin doc:=WebBrowser1.Document as IHTMLDocument2; frm:=doc.forms.item('frmLogin1',EmptyParam) as IHTMLFormElement; fld:=frm.item('txtMemberNumber1',EmptyParam) as IHTMLInputTextElement; fld.value:=Edit1.Text; fld:=frm.item('txtPassword1',EmptyParam) as IHTMLInputTextElement; fld.value:=Edit2.Text; frm.submit; end;
Form1.Create olayına da; (Formun bulunduğu ilgili site adresini girmelisiniz.)
procedure TForm1.FormCreate(Sender: TObject); begin WebBrowser1.Navigate('http://www..........com.tr/account.asp'); end;
Not: Burada listelenen yöntemleri derlemek için uses bölümüne mshtml eklemeniz gerekir.
Hepsi bu kadar programı çalıştırıp Kullanıcı Adı ve Şifre kutucuklarına girdiğiniz bilgiler, Button’a tıkladığınızda ilgili sitenin form bilgi hanelerine doldurulacak ve bilgiler site üzerinde gönderilecektir.
Konu altına atacağınız yorumlar bize daha iyi yön verecektir. Yorumlarınızı esirgemeyin.
Bir sonraki konumuzda görüşmek üzere… Saygılarımızla…
Programın çalışır durumdaki örneğini alttaki linkten indirebilirsiniz.