| meraklısına Delphi ile Programlama Delphi ile Brovvser Bu ay Delphi'yle birlikte kendi WEB-Browser yazılımınızı nasıl geliştirebileceğinizi ve Dinamik HTML (DHTML) kavramını göreceğiz. Ruhver Bgrengi tuhreffitalrmltc-ıt I iticine: üzermde geHsnrilcn uygula maların sayası tüm dünyada büyük bir hızla arnyor. liıı sırada uygula malar açısından önemli konulardan birisi ile Internet Explorer ya da Netsı'ape. gibi WKIİ -lirı-nv.siT yazılımları ve bunlar için de görüntülenen sayfetann dinamik ola-rak kontrolüdür. Web sayfaları için TWEBBrowser bileşeni Delphi, ınternet üzerimle dolaşabil nıck ve wv.n sayfalarını görimtüleyehi! mek için anık Mierosofı'up kendi .starı -darüarıııı kullanmakıadıı. TWF-BBnıv. ser bileşeni .ıslında Microsoii Internet Kvplorer kurulduğu zaman kullanılabilecek bîr bileşendir. Hu bileşen aslında In-icrııct Esplorer'ııı kullandığı baz' 1)1-1/ dosyalan kullanmaktadır. Şimdi yeni bir uygulama yaralın ve lörnıınnu/ıin \Vjn-dovvSraie özelliğim WSMaximîzed yapın. I-orm üzerine bir TPailel bileceni verles örerek Align özelliğim alTop yapın. liıı panel uzer.nc birazdan ıtygııl.'rnamiTi kontrol edeceğimiz düğmeleri yöriestife ceğiz. Form Özerine TWT.r>Bro*v&cr bileşeni yerleştirerek AUgn özelliğini aiCli eni yapın. Bu durumda nvblîlirov-scr bileşenimizin lönmınnız-un Paneli dışın da kalan tüm alanım kaplamış olması gerekir. Daha sonra form üzerine birTHdiı bileşeni yerleştirin. TEdiı bileşeninin Test özelliğinin değerine www.bor-land.eom gibi bir \VhB adresinin -idini arayın. Ancak bu örneği yaparken böyle p*ğ..., Özetle... • TWEB8row$er bileşenini kullanan Delphi ile kendi Web '-arayıcınızı yaratabilir ve Wer> sayfalarım görüntüleyebilirsiniz • Dinamik HTML ile kojay Update edilebilen Web sayfalan bir WEB adresine bağlanabil ne ah ivin bilgisayarınızda internet bağlamıııı/jıı olması gerekmek ıcdir. Ya da şekil l'de görüldüğü gibi sabit disk Ürerinde bulunan bir dosyayı seçebilirsiniz. Daha sonra yine Paneli ü/erine 3 tane TSpeedBurton bileşeni daha verlestiriıı. Bunların isimlerini blnBagUuı, buıSoııraki ve bt:ı( )ıu'cki olarak değiştirin. Bu işlemleri yaprıkıan sonra önce formumuzun OnGreate olayına sonra da düğmeleri! OnCiick olaylarına giderek kodumuzu tablo I'deki haiıııe gelirin: Kdııl alanına bir\VKB sabâsı adresini yazdıktan sonra bağlananın karulmaanı sağlayan düğme buıBaglan olacaktır. Bu düğmeyi1 basıklığı z-ıman TWEBBbw-ser bilecenimizin Navigaıc metodu çalışacaktır. Bu nıelod ilk paranıeirc olarak bağlanacağı adresi almaktadır. Şimdilik diğer parametreleri bilmenize gerek yok. Birazdan örneğimizi genişlerirken bu pa-rjmeırelerc benzer bilgileri nasıl elde edebileceğinizi göreceksiniz. hiııOnccki ve bm.Sonrraki düğmeleri ise. bir \VEB şayiası Üzerindeki linkler sayesinde hareket ederken, bir önceki saylava geri dönmek ya da bir sonrak*. Sayfayı tekrar yüklemek amacıyla kullanılmakladır. Bu işlemleri yapmak tein TWEBB-rowscr bileşenimizin (ioB.uk ve GoFor-ward adındaki ı:ıeit>dl.nnı kullanacağız. Uygulamamızda en son FormCreatc olayı göze çarpıyor. Aslında burada orji-nal bir şey yok. Sadece uygulama geliştir ine aşamasında KütlTcxt değerine bir VVTB sayfası adresini verdiyseniz, ibrmu muzun DnCrcatc olayında bu \VTB sayfası lıalîznya yüklenecektir. liıı asamadan sonra yapacaklarımız için bazı arabirimlere ihtiyacımız olacak. Bu arabirimler, Intcrnci hvplorer'la birlikle t.,ntxt ioufture u~r.-ı> _. Delphi'yle kendi WEB tarayıcımızı TvVEBBrovvser bileşeniyle oluşturabiliriz. gelen arabirimlerdir. Ancak bu arabirim Icrın önce I'ascaPdakİ karşılıklarının yaratılması gerekir ki bundan sonra tanımlanan mcıodiarı VC Özellikleri çağırma olanağına sahip olabilelim Öncelikle bu arabirimler Mshtml.dll dosyasında bulunmaktadır. Bu İM.I. Windovvs - System dizininde olmalıdır. OlKC bu dosyayı az önceki örneği kay dettiğiniz. dizine kopyalayan. Daha Sonra Delphi'yi kuımus olduğunuz dı/iııde BİN allında bulunan üibhnp.c.vc ye tlibüO BPI. dosyatanm da çalıştığınız di zine kopyalayın. Sınıra \Vindows start menu^'unden Run seçeneğine gelerek Command yazarak MMiON'u başlatın. Çalıştığınız dibine gidin \c ılibimp mshiml.dll yazın. Gördüğünüz gibi MSI I TM I. II.I.B.dcr \e MSH'IMI _TLB.pasadında iki dosya yaratıldı. Birazdan MSITIMI._TI.BPas modülünü progra mıunzda kullanacağız. Şimdi lekrar ana programa -dönün ve us.es bölümüne MSHTMI._TUt modülünü ekleyin Sonra TFornı sınıf deklarasyonunda Pri-vate bölümüne giderek aşağıdaki dekla-niivuıuı yapın: privjte Sayfa : OLEVar;;;:'.!.; I23D ıt:n3 Üeak 2000 Delphi ile Programlama meraklısına Bj dcğî§fc.en, I1TM1, dosyamı/ içindeki tüm bilgileri intan bir değişken nla-cakiır. Bunun nasıl yapılacağım görmek İçin form üzerine bir dttğme ri.ılu ekle vin ve Or.Olıck olayımı giderek tablo 2'dckİ satlrian ya/n-: Bupada CO önemli kısım 3. satırda Say Ilı değişkcııimi/. içine [HTMLDOCU-mcnt2 arabiriminde bir nesnenin atan maşıdır. Hu nesne l"VVLBIİiowser bileşenlerinde bulunan Doeument nesneldir. Iirr.VlI.nihrıııncmS arabirimi ise MM I İMİ TI.B.PAS dus>ası iyinde ıa-mallanmış olan bir arabiıimdir. Saytâ nesnesini oluşturduktan soma artık unun özellik ve mcHıJLınn.ı erişebiliri/. Temelde JHTMUVıcumcnf2 arabirimine sahip Oİan nesnelerin ö/ellik ve nıeıodlannı iki grup altında toplayabiliriz. İlki, direk dokumanla ilgili olan Ve dokümanın niteliği hakkında b\vx bilgi veren o/ellık ve ıııctodlitrdır. Diğeri j&e doküman içinde bulunan clijj.fr nenselere erişmeye ve unlan kontrol etmeye v.v ravan özellik ve mcrodianlır. Bi/ yukarıdaki kodlunuzda önce ilk gruba ail İİellikleri görmekteyiz. Bir çok o/elliğin adından da anlaşılacağı gibi aslında burada üzerinde çalışngınu/ VVEB savlasının 01! C2: 0Î! 041 0.6! 07: 06: 09: 10e li: 12: 13: procennre TForml .btııBligiCUcklSender: îûbjectl; büçi;: Sayfa := HEBBîOHserl .nocunıent A6 IKTHI.r>ocija#n-2; ShowMesaage( 'Dosya Büyüklünü : Taııhi : 'üeLi-Um-U Tariîıi : ShowMessagc> 'BaQUk : 'URL "Yazı Soti "Protokol ' Güvenli): 'Qain baelliD-l 'TSayfa.£UeCrea:.edDate+*:3* '+Say£a.£ileHodifIedDat.e ); '4Sayta.TJtle*#13-'-Sayta.0BL*ı13* ' ıSayfa. CharSet * S13 -'+Sayia.Pretöcol-#J3-'+Say£a.Securîty+*13-'+Sayîa.NanePrcp \; srıd: Tablo 2; Tüm bilgileri tu:an değişken için OncJick olayına yazılacak kod. büyüklüğü, \ aratılma tarihi, hangi dille yat.'.nkiıgı, lam olarak adresi gibi bilgiler ekranda görüm ü!eı:;nekîedir. Dinamik HTML ile Update çok daha kolay VVBB " kadar hızlı gelişen ve değişen bir dufiya ki, tüm dünyada milyonlarca insan kişisel ya da nrma bazında VVT.B sayfalarım hazırlamakladır. Ancak WEB savfViarmıii ha/arlanması oldukça zalı metli bir iş. Üstelik sürekli de güncellen-mesi gereken bir konu. Örneğin hır gün raridı yemekler hazırlayan bir lokantada ki ntenilvii ve yemeklerin özelliklerini Cl: C2: 63. 04: ÛS: 06: 07: 08: 09 i 10ı II : 12: 13: 14: İS: 16: IV ı IS: 19 20: 21: 22: fo.h 23: 24: 25: pcoced'-re rPorBi.btnIJagLariClie>:İ5e:i3t.'r: TObject] var a,D,c,d : OLEVariantj WiI3arowserl.Maviçate; Editl.Text,A,BPC,D ); end; pCÜCedöte rFûrrıi.btnÛncekiCiick'Scnder: TObject); seğir. WEB3rowserI.Go3acX: end; ;eadsr: TObject) pi'.'coı::;!j) poJOI .HnSonrakiclicfc* beçin WSBBrowserl .GoPorwarıiî procedare rfora:l.ForaılCreate(Seader: TObject); par İ,l),c,d : O'-EVariant; beji i ;ı HEB3rowserl.Kaviiîate( 'C:\Procram Files\Borlar.d\üelphı5\ • ' O C Jt \ Ve i \ v c i _ '..a ,A,B,C,Iİ |j and. * ip - Tablo 1: önce Form'un OnCreate olayma daha sonra da OnCIİck olayına girerek, formu Tablo 1'deki hale gelirin. vvi'iı sayfalarında tanıtmak isterseniz, be: gün WEB sayfalarını günecllcmck /orunda kalabilirsiniz. t >yv bunun yerine işlemlerin para metrik yapılmasını saklayabilirsiniz. Wlill sayfalan m/ı hir kez ohısrururMinu/ ama tam yemekle ilgili kısımlara geldiğinizde bu bilgileri dinamik atarak hır yer den, örneğin veri tabanından alarak a günkü yemeğe göre İTİ'Mİ. savlalarının oluştıırulmasnıt sağlayabilirini/. Bu Sâ yede her gün ayşl işlemleri tekrar tekrar yapmanı/.a gerek kalnıayaeakiır. İste DdphîMc IHTMLDocumcnt2 arabirimini kullanarak yine bu riır ışlenı-len kontrol etmek mümkündür. Bunun İçin yapılması gereken işlem, Wb:B sayla sı içindeki heı nesneye erişmek ve gerekirse onları değiştirmek olacaktır. Şimdi bu işlemi nasıl yapacağımızı göreceği?. Bunun için form ü/erine bîr düğme dana ekleyin ve OnClick olayına giderek rahln 3'teki sanrlan ya/m: tik olarak yine önceki yaptıklarınıza benzer şekilde 1)9. satırda görüldüğü \6-bi lin\II.DiK-ume;ır2 arabınmİne ait Sayla nesnemizi elde etnıcîiyiz. Norma! de bir WEB tayfası içinde baslık, gövde ve .Üğer internet bağlanu adresleri gibi bilgilerin her biri bir nesne olarak karsı-uıı/a çıkmaktadır. Bu bilgileri bir nesne ler topluluğu olarak düşünmemi?, gerekir. iste hır sayfadaki tuın bu nesneleri bize veren ö/ellik. Sayla nesnemize ait Ali özelliği otaeafcnr, Bü ö/elligin içinde kî elemanların sayısına ise Icngtlı İle ula şabiliri/. N'ırekim 11. satırda vapıian iy leııı tıinı nesnelerin bir döngü içinde U ranmasıdır. Bu döngü içinde her bir nesneye erişmek îçm 13. satırda görüldüğü gibi nesne gnıbınııınun İrem metodunu kullanmalıvız. Bu metoda ilk parametre de göndereceğimiz rakam, hangi nesne- OcaK 2000 IM-.H-J ?Xİ meraklısına Delphi ile Programlama ye eriçmeb is-odiğimi/i binmektedir. Bu sayede Satir değişkenimiz içine bir \VHB sayfası nesnesi atanını; oıacakur. 14. satırda ise küçtik bîr kontrol yapıl ni.ikt.idir. Bu aşamada HTM I. bilginiz ön plana çıkacak. Bu kitap HTML öğreten bir kttap olmadığı için HTML tak (anda bilginiz olduğunu varsa vtyorum. Bu durumda: 14. satırda yapılan ikicin aslında aktif nesnemizin bir başlık olup ol madiğin) kontrol çimektir. Eğer birbas-lık ise o zaman in, satırca bu balığın içeriği. 17. satırda rengi ve İS. şatoda ö.ı finıt büyüklüğü değiştirilmektedir. Hu işlem, nlın nesneler bitene kr.dar devanı edecektir. Sadece buraya kadar olan bölümü çiriı^nlığıriuzda karşımıza çtkan formdaki düğmeye basacak olursak programımızda, WEB sayfaııiı/nı ilk sanrında görülen Visual Coıııponcnrs bilgisi Borland ve Delphi bilgisiyle değiştirilecek, rengi kırmr/t olacak ve fanı büyüklüğü de anacaktır. IHTMLDocument2 Arabiriminin kullanımı IHTMI.L)oeıımenT2 arabirimi adında içindeki nesnelere iilaşabilmcmi? İçin bi- 01ı lETMLEÎenientCalleceLOn = interface>l£-spat.ch) Yit ; '{.W3C?'J!.--*ı8I!İ-,;cr-B332-C0AA0CBKE0B}' | C2: IhefcİBn ta$HİİB>}t KiasS-r:t,>r, saiecall; 04: prosedüre Setlengr^ipı TncegerJ; 3ıteeall^ 05ı funetior. Cet Je-ıgUi: Integerj saİecali; C6: :_;:c-ior. -et tur-Enum: wnknown; safecaîT; 07: ŞuKrtiÖö iteni QaE&$> ilevanant; İadesi cleVariact ı: IDispatch; safe- BBı 09: İU: 11: ÖMcfcıöa tagş{;tagKaae; ûl£Vârianî):: i3ispat;ch; safeca--: property leogl -1 Cnteger ttM Cet ler.çth vjrit.fi Sı?t length; ptoperty r.eviiıiır,: !Unknown read Get nçyEnuB; Taoio 4: ;HT:VlLEİpmentCol!ection'ı yukarıdaki gibi tanımlayabilirsiniz. ze başka arabirimler .sunmaktadır. Vııka-nd.ı riim nesneleri bir Tor döngüsü isindi; tararken onun özellik ve mctodlanna ulaşırken jshnda IHIMI Docıı ment2"nin içinde kullanılan başka hır arabirimden laydalandık. Bu arabirimin adı HTrMl.h!cmentC:r)l!cttioıı'diı. I HTM 1.1; lemen rUollec t i on, MSUTML.TÎ.B.PAS dosyamda 'lablo 4'ıe!ü gibi tanımlanmıştır: Örneğimizde Sayl.ı.AII özelliği bu arabirimi destekleyen bir nesnedir. Daha sonra yaptığımı/ işlem hu nesnenin yıı kandaki arabirim içinde de deklare edil- 02: 03: 04: Oâ: ttgl 37: 08î 09: 10: 11: 12: 13: 14: 15: l&ı 171 183 19: 20: i.: 22: 2.1: 24: 25: 26: İUi 26ı 29 J procfiriur.'ı TForri .sjjeedButtcmlCI icMSc-udar: lObject; var : tntçger; TufşBaglâfitiİar : ÛLRVar;.İRt; aaq.-ıiı-•'-.ırAînmlar S&tİÇ begin Bayfiâ TiınKirupl ar : ÖLEVar ;,ınt; : OLEVariant; i OLEVarUnt; 1" 'Bofiand ve tSSKBÜİ ; s- 'RSP' i :* 4?! := MEBSroMuerl.Docunent As İşTİOBpçumenfcîi := Sayfa..V ; fç-T-İ "=,.? to TumGrBpİar.î.ısngth - 1 dO Uh;.İ ŞatİT := TüroGriiplar.Item( i, D (,; If Sa*.ır.Tag>Uına = 'Bİ' fchea begin Setir. Ir.nerKTML S ı.r.Style.Coior satir.Style.fontSize end; end; TuaıBagianîilar :* Sayfa.î.inks; £or i :¦ Z -o TüinHaçlar.''.ilar.İ.oıi(f:h - 1 do begin Baglaııti :~ TumBag',.iirıt__ar.Itera( i,0 I; if BagliUitİ..TagMame - 'A' ttlCB ^>ıwHçssage{ 'JnTH Aaıcyi : **üagianti.1oSt.L'inq - o!î-¦fiçjklama 'BS?İ3r.ti.IanerllTH; ı : ond; ondj miş olan J.ength Özelliği saycfib.de tüm eleman lan n.ı yine 'itern' metodu saycOTi* de ıılaşnıaknı*. lîu şleın sonucunda elde ettiğimiz her eleman da IHIMI Kic moru arabirimini destekleyen bir nesnedir. Bu nesneler hakkında da bilgi edinebilir ve jterekirse tlMricrinde dc.Âisikiik yapabiliri/. işte 21. satırdan itibaren bu konuyu daha aydınlatmak için bir örnek nesne daJia verilmişrir: 2i: rraBBaglaötiIar ı= Say- I ..Tinks; 22: ter i := 0 to TlunBagianti- lar.i.ongtlı - 1 23: do begin 2ş: 3aglanti := 'rumSaglan- tilar.!t©n( i,C ^r 25: A 26 i AdiftKj: 27: lana : 2B1 iî Baglants .TaşHaniî? - Tablo .î: Web sayfası içindeki nesnelere enşmek ve deriştirmek için gereken kod. iteli Sdo^essage; WEB ¦Baglanti.îoString * •' J 'AçU-^Baglaiiti.IaaarH'rML 1 ; end; Bu ke/. UMU .sjytânıı? üzeföldc inler net bağlantı adreslen Vâfsa, bı' ne-sneiere I.iı:ks Özelliği sayesinde ulaşacağı/. Vinç önceki satırlarda olduğu ınhi M ITM1.K-IcmentC'olîcetion .ırabiriı-ıindırki bu nes nenin eîeroantaraıa bir ror döngüsü için de ıılaşmaktay:/. Her eleman vine iteni metoduna göndereceğimiz bir .İıra nu marasıyla bize geri dünecekür. Bu işlem 24. satarda yapılmaktadır. Bağlantı nesnemiz eIİmi/.e geçtikten sonra omuı içinde bir WEB ackesnin saklanıp Aaklaımıadığı 2o. saiıı-tia kontrol edilmektedir. Bundan sonrak isiem jmt (arkettiğîniz gibi çok basil. Bağlamı adresi ve bağlantı adresi için VVKlî sayfasur tla ya/aıı büğlanu bilgisi, .SInmMes.sagc ıje ekranda göriintiilenecektir. H \23?_ Ocnk I^OCO |
Cep telefonları |
Ekran kartları |
Masaüstü |
Notebook |
Ses kartları |
Webcam |
Klavye & Fare |
Yazıcılar |
Tablet
Ev Sineması
Mp3 Player | Usb Bellekler | Video kameralar | Fotoğraf Makinesi | Taşınabilir diskler | LED & LCD Tv | Monitörler | OEM | PDA
Navigasyon | Oyun Konsolu

