| Meraki ıs ısına nvMvma Delphi ile Programlama Görsel bileşenlerin kullanımıyla ilgili inceleyeceğimiz konulan bu sayıda noktalayacağız. Bu aykî örneklerimiz TPageControl ve TTreeVievv bileşenleriyle ilgili olacak. Yeni bir uygulama yaratalım ve bit TPageComrol bileceni alarak formumuza yerleştirelim. Form üzerinde PageComroiı adıyla görünen bileşenimiz üzerinde İareyle sag tıklayalım v* karamıza çıkan menüden New Page seçeneğine girelim. Bu durumda 1'ageConı-rnll'ın sol üst köşesinde TabSheell bastımı helirecekıir Bir kez daha fareyle bileşenimiz üzerinde sag tıklayalım ve karşımıza çıkan menliden Ncw Page seçeneğine girelim. Anık TubSlıeell ve TahSheelZ olmak Üzere iki değişik şayiaya sahibiz. IPageCorıirol bileşeninin btıyıılc doııgen alanımı iareyi tıkladığımızda. TlabSheet bileşenlerinden bitinin seçildiğim gorurıız. Tekrar TPage-Control bileşenini seçebilmek için ya TabShcetl ve TabSheet2 isimlerinin yazdığı bölgeye İareyi tıklamalı ya da Object İnspecıor'un ûsl kısmındaki listeden bu bileşeni seçmeliyiz. s)imdi TabSheell başlığı üzerinde aklayalım ve bir TLabel bileşenini TahSheerl üzerine yerleştirelim. Dalla sonra IabShıxi2 haslığı üzerinde tıkladığımızda a?, önce ycrleşıirdiği-mi* TLabel bileşenimizin artık görünmediğini fark edeceğiz. Bu durumdayken ikinci bir TLabel bileşeni daha alalım m- bunu da TâbSheeÛ Û-zerine yerleştirelim Arnk uygulama geliştirme aşamasında bile başlıklar üzerinde tıkladığımızda sayfaların değiştiğini ve Labell bikiniyle La-be!2 bileşeninin farklı sayfalarda ol dııgunu görebiliriz. Bileşenin çalışmasını daha rahat görebilmek için, TTabSheet bileşenlerini sırayla seçerek Caption ve Name özelliklerini birinin Stok' diğerinin Muhasebe' olacak şekilde degıı-liıtlim TPageconırol kullanatak yapacağımız görsel lasanmlarda yerden oldukça kazanç sağlayabiliriz. OnChange ve OnChanging Olayları 1 Pagec.onirol bileşenlerinin iki o-rıcuıli olayı vardır; OnChange ve OnChanging. OnChange olayı bir sayfadan dıger şayiaya geçtikten hemen sonra oluşur. OnChanging olayı ise bir savladan diğerine geçerken oluşur ve ıam bu aşamada diğer sayfaya geçilip geçilmeyeceği kontrol edilebilir. Bu o-laylata giderek tablodaki değişiklikleri yapalım (tablo 1). Bu durumda programımızı çalıştırdığımızda, bir sayfadan diğerine geçerken önce 09. satırdaki mesajla karşılaşacağız. Bu mesajın sonucuna göre, OnChanging olayına parametre olarak gelen AllovvChange. değişkeninin değerini ime ya da Palseyaparak diğer sayfaya geçişi: izin verebiliriz ya da izin vermeyebiliriz. lİger diğer sayfaya geçişe izin verildiyse. program akışı OnChange olayı iğinde 3', satıra gelecektir. Burada ila bir mesajla hangi sayfaya geçtiğimiz görüntülenmekledir. Bunun için Pa-geConıi'Oİl bileşenimizin AclivePage özelliğinden yararlanılabilir. Belli bir îr: TOhject); Di: procedure TFarml.PageComrollChan 09: besin 03: 3howMossagtı( PageCortroll .ActivfiPat^H.CaphDn+¦ sayasına gecildir J; 04: end; 05: j 06: procedure TForm1.PsgeCorİ-ol1CIıangfny!Sen>ler Töbject; D7: var AllovvChange Booleanl: : 08: begin 09' rf MasBageOigE Sayla geçişine (zftl versin mi?\nuWarning(lmbYes.rnQNoJ.Ü )*mrYes 10: thon AHaiş'Change := True 11: else AiluwChsnne :- Fste-e; 13: end; _________ Tablo 1: OnChange ve OnChanging olaylarındaki değişiklikler. 206 * CHLP OCAK 1999 PSOC-fiMtAMft anda hangi sayfa seçili duıumdayia AetivePage özelliği o TTabShect nesnesini gösterecektir. Böylece hu saylanın CapIiiMi özelliğini kullanarak hangi şayianın seçildiğini ekranda görûmüleyebilirlz. Bir Bileşenin Tüm Sayfalarda Görünmesi Bazen hır bıkseııİn. örneğin üzerindi: OK ynziin hir düğmesinin lüm sayfalarda birden gûrâmnestai isleyebilirsiniz. Bunun için her şayiaya bir Tlîutton bileşeni yerleştireceğimi-ze şöyle bir yunıeın uygulayabiliriz: Bir lUuiıon bileşenini TPageConiıul üzerindeki TTabShceı şayialarından biri üzerine yerleşirin, Daha sonra bu Tllmton bileşeni seçili dıtrumday-ken CTRL+K tuşlarına basın. Fareyle TPageContföl üzerine tıklayarak onu İçili hale getirin. TPageControl-n seçiU olup olmadığını Objeci IfiSpet. tofun fisi larauııdaki listede adının yazdı olup olmadıkına bakarak anla yabilirsıniî. Son olarak lekuı C.HU_İV uıslanna basarak TButtOO düğmemizi, ıTageCcmrol üzerine yapısurın Anık rPagçControl üzp-r indeki TTabSheel haytalarından 01; procedurBTForml.btnVuniKacegonDıcklSender; rübjecc): 02: buuin 03: Liste.Selenteu :- üste .l;em&.Add( Lisce.ttenıs|0].'Veni Kategori'); 04 end: 05. 06; pracedure TForm1.btnA!i£!smanaiGk[Sefider: TÜbject): 07: begin 08; If Liste Selectert - NIL then Fxı 09: K ijste.Selected Level - O then Liste. fcems.AddChıklf Üste.setetted.Teni Ders1 ): 10: end; 11: 12. proGRduı^TForrnl.btMSilCicklSe'Kkr TObjett): 13; begin 14: If üste.Selected - NIL then Exit; 15: If Üsce.Sçtectea.Level - O then Liste.Selerted.DeleîeChıaJrön. 16: end; 17: 18 prosedüre TForTtı1.LİBieExpanding(Setıder. Tüc-etA; Ntodo: TTreeNode; 19; var AlİDV^ypansion1 Br&tean]; 3Q: begin 21* ı( MessagaDlgE *Alc Bılgılenn Görünmesini Isovor musunuz?', mıM/;,! ¦ ning.[mbYas.mONO],0 1 - rr.fYes 93: then Alltı\vExpanston :ı True 23: else Allow£xpansion := False; 24; end; 25: 26: proeHüure TForml .LisİıCGilap&rtgl5eıi(!er: TObject; Nodo; TTrefiNorie; 27: var AllovvCoİiBpsa: Boolean?; 28: basjm 29- I' MesRsrpi::;:; A!', BJgilenrı Toplanmasını İstiyor mu3dmı/?'.rı*,Wâr- ningTlmiiYes,mbNO].0 J - mrYes 3Q: tiİn Alîa-.vCoHapse > True 31 rIsh Allûv^Collapse - False; 39: end; 33: 34; pri)iıİhırG TForml htnKspi-nCIicklSehclRr: TObjoct); 33: hegın 36: K Usra.Selerted - N!L men Exit; 37: If Liste.SetBctad.Lovai - O then Liste.3electeC.ColianKG( True J; 3EJ end; Tablo 2: Omek program kodunun İon hali. . ıfo.@al d'v. samtek - i tc. com. tr http://vww.samtek-itc.coni.ti ^>- ——, 200*11 AHZANCA ¦ ¦ Ursînız... • ıaeOS • Kin95 OCAK 199? 3-7 ÇEVİRMEN İngilizce'den Türkçe'ye Bilgisayar Destekli Çevirî Sistemi 45.000 kelimelik kullanıcı tarafından genişletilebilir genel amaçlı sözlük j 35.000 kelimenle kul lanıcı tarafından genişletilebilir; teknik, tıpve işletme amaçlı sözlük setleri j Tıkyılı ücretsiz, kul lanın ve güncelleştirme desteği j ScannerveOCRyazılım ilavesi Üe p (coırple çevır-i seti samtek-ite ileri teknoloji merkebi a.ş. Fâraöi Sk. 31/4 06690 Çankaya / AHKAM Mî 0312-467 4b 25, Fac 0312-467 İ 24 19 Mayıs Hh. Esin îk. 9/9 Erenköy 31090 Kozya tağı İ S 1 A N e U L Tftl: 0216-467 51 41, Fax: 0216-302 89 52 Meraklı; sına hangisi üzerine gidersek gidelim. TButton bileşenimizi görebiliriz. TTreeVievv Windows Bileşeni Delphi içinde kullanılabilecek Wiııdows bileşenlerinden bir İanesi de TTrecVıc\v bileşenidir. Bu bileşen sayesinde bilgi tun hiyerarşi!* olarak görüntülenmesi mümkün olmaktadır. şimdi bu bileşenin bazı özellik ve meiodlarını inceleyelim: TTreeView bileşeninin Ucms özelliğine Objecı Inspector de geldiğimizde ekranda bu form açılacaktır. Burada listemizde görünmesini islediğimiz bilgileri hıyerarşik olarak tanımlaya-biliriz. Dunun ivin önce New lteuı düğmesine ve daha sonra Texr bölümüne '.Sayısal' yasarak ENTER tuşuna basalım. Bu durumda ikinci bir satır daha otomatik olarak varanlacaknr. .,; MÂİtRH S*W ¦ ¦ ¦ ,,- '.-,. 1 . ¦ İWWHİK (İT U*ie | '- >hİ[Ü u U-1 ! — ..i-. | M l Ot *İ* i itı TTreeviev bileşeninin irems özelliğine yakandaki formla bilgi girişi yapılabilir. Yine Texl bölümüne 'Sözel' yazalım Ancak hu kez IINII-U tuşuna basmadan İareyle 'Sayısal' kelimesi u-zerinde iıklayalun. Eğer yanlışlıkla ENTER tuşuna basacak olursanız. bos bir satırın daha eklendiğim göreceksiniz İler Enler CUŞUna haslığınızda yeni bir satır ekleneceknr. Bu boş satırları silmek itin boş saıır üzerinde İareyle bir kez tıkladıktan sonra Dekle düğmesine basmamız yeıerli olacak ur. Şimdi Sayısal yazan eleman üzerinde iareyle bir kez tıklayalım. Anık hıyerarşik bilgi yaratma aşamasına gelmiş bulunuyoruz. Bunun için Nc\v Snhltem düğmesine bir kez tıklayalım ve ytne lcxt bölümüne Matematik yazarak Emer tuşuna basalım ve bir de Tİzik yazarak iareyle Sözel üzerine tıklayalım. Daha sonra yine Nc\v Stt- bltem düğmesine basalım ve Texr hö lümüne Türkçe yazdıktan sonra Enler tuşuna hasalun ve son olarak Sosyal yazarak OK tuşuna basalım. Arlık programımızı çalıştırarak liste Üzerin* de harekri edebiliriz. Buraya kadar eahsan kısım bizini uv;;ı:bıma gelişti nm-aşamasında listemize eklediğimiz elemanlardan oluşmaktadır. Oysa hazan programın çalışma sırasında da listemize bazı bilgilerin eklenmesini ya da silinmesini isleyebilir ve:+ yada - işarcüerme basılması gibi durumlarda bazı kontrolleri yapmak zorunda kalabiliriz. Bunun için örneğimizi hazırladığımız Form üzerine bir kaç dügrne yerleştirerek kodumuzu aşağıdaki hale getirebiliriz (tablo 2). MHG İd Saya* ¦--.¦—: • Pah Kel TüftîO •n MİS Ytn'ı!eoıı MEtamar. :. Kacvı Programı >,'>dı*Urardk Yeni Kalegon ve sonra da Alt Eleman düğmelerine basalım bluYetuKalegori düğmesine basıldığında yeni bir eleman eklemek için, T'l reeVieu bileşeıılerirım Itetns özelliğinin Add adlı metodunu kullanmaktayız Bu nıetcd iki parametre almakladır. İlk parametre, yeni elemanın hangi seviyeyi* ekleneceğini go>-teımekndiı. Burada sıfır rakamının kullanılmasıyla i liste IiernslO]) yeni elemanımızın en (Isı seviyeye ekleneceği anlaşılmakladır Ancak bu dununda en as bir elemanın daha tasarım aşamasında listemize eklendiği varsayılmaktadır. Oysa eğer TfreeVi-ew içindeki listede henüz hiç bir eleman yoksa o zaman ekleme işleminin Liste.licms.Add;. NIL'Yeni Kategori' >: seklinde yapılması gerekirdi. Ikİııeı parametre ise eklenecek elemanın ne olduğunu göstermektedir. Bu şekilde bir elemanı ksienıizt: ekle- diğimizde. Add metodu eklenen elemanın bulunduğu nesneyi bize geri dondurur. İşte. 3. satırda Lisle.Sekc-led özelliğine bu değerin atanmasıyla, listemizdeki seçili elamanın, bu yeni eklenen eleman olmasını sağlamış oluruz . En ûsl seviyeye eklenen hu eleman için ah elemanlar eklemek istiyorsak o zaman, binAlıHkman düğmesine basmamız gerekecektir. Bu bolümde 08, Satırda önce fareyle herhangi hır elemimin seçili olup olmadığı kontrol edilmekledir. (, ünkü eğer seçili bir e-İeınan yoksa alt elemanın nereye ek lenecegi anlaşılamaz. 0*1. satırda, bu alt eleman yine Iterns özelliğinin AddChÜd metoduyla eklenmektedir. Listemizden alı elemanları sümek içinse l>. sanrıla görünen Dclc-teChıldrcn metodunu kullana-bilinz. Bu meıod hiı elemanın sahip olduğu tüm alı elemanları silecektir. Şimdi 'ITreeView bileşenlerinde sıkça kullanılacak olan iki o-laya geldi sıra. OnGoşapSİng ve OnEspanding, OnEspanding olayı, listemizde * işaretine basarak ali elemanları görmek islediğimi? anda oluşan bir olaydır. Bu durumda yukarıdaki kodumuzda kullanıcılar + işaretine bastığı anda alı ek-manlarm görüntülenmesinin istenip istenmediği sorulmakla ve egCT görüntülenmesi jMen-yo:sa AllowExpaıısion değen True yapılmaktadır. Allo\vExpansioniın True yapılmasıyla ait elemanların gö rıınıülenmesine izin verilir Eğer hu değer İulse olarak kalırsa o zaman alı elemanların görülmesi önlenmiş olur. OnCoLlapsiııg olayı ise bunun tersi o-lacak iekilde çalışmakladır. Bu olaylarla ilgili olabilecek CoMapsc metodu 37. Satırda karşımıza çıkmaktadır. Bu metod parametre olarak True alırsa alt elemanlar toplanarak kapanacak, Fâlse alırsa hir elemanın alı elamanları gömntüleuebücccklu üd Ruiıvcr tfarcng! nıh\TJ>'Pyahoo.coıi) 208 • CHlP OCAK 1999 |
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

