Bu site emekli olmuştur. Arşiv amaçlı olarak
BT AKADEMİ
sponsorluğunda yayın hayatına devam etmektedir.
Ana Sayfa
.net TV
Makaleler
Kaynak Kod
Haberler
Serbest Köşe
Canlı Köşe
Forum
C#nedir?
Ekibimiz
RSS
ADO.NET/SQL
C / Sys Prog.
Genel
Mono ve .NET
Silverlight
XML / Web Serv.
X86 Assembly
C++ / C++.NET
J#.NET / Java
.NET 3.x
UML / Analiz
Yazılım Müh.
ASP.NET
C# / VC#/.NET
Mobil Prog.
PHP 5
YAZAR HAKKINDA
Caner Şahan
http://www.csharpnedir.com/
İletişme geçmek için
tıklayın
.
24
Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için
tıklayın
.
Yayınlanan diğer makaleleri için
tıklayın
.
İlgili etiketler:
(string)
dikey1.add(new
gconf_app_yolu
gconf’
gconfa
kullanacagimiz
metotu
pencere
public
referans
static
string
uygulama
verileri
window
Mono ve .NET
Caner Şahan
YAZI HAKKINDA
Türü
:
Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır.
Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi
:
Başlangıç
Kategori
:
Mono ve .NET
Yayınlanma Tarihi
:
18.5.2005
Okunma Sayısı
:
27255
Yorum Sayısı
:
0
yorum yaz
SİTE İÇİ ARAMA
Üye
GİRİŞİ
Üye girişi için
tıklayın
.
Kullanıcı Adı
Şifre
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
Şifremi / Kullanıcı Adımı unuttum.
C#nedir? hesabınız yok mu?
Üye olabilmek için
tıklayın
.
Serbest KÖŞE
(?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır.
Bu yazılar editör incelemesine girmeden yayınlanır.
Silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
Bende Yazmak İstiyorum
Blogroll
Turhal Temizer
Conda install environment.yml Package
21.11.2024
Turhal Temizer
Mac OS/X Removing CUDA
21.11.2024
Burak Selim Şenyurt
Rust ile ECS Yaklaşımını Anlamak
21.11.2024
Burak Selim Şenyurt
Birlikte Rust Öğrenelim Serisi
21.11.2024
Diğer Herşey
»
Makaleler RSS
»
Video Gönder
»
Makale Gönder
»
Serbest Köşeye Yazı Gönder
»
Yazar Başvurusu
»
C#nedir? Ekibinde Olmalıyım!
Sponsorlar
Ana Sayfa
/
Makaleler
/
Mono ve .NET
/
GConf ile Mono Bölüm-2
GConf ile Mono Bölüm-2
Favorilerime Ekle
Gönderiliyor lütfen bekleyin...
arkadaşıma gönder
Arkadaşınızın email adresi:
*
Mesajınız:
Bir önceki makalemizde (Gconf-1) Gconf’ un ne olduğundan detaylı bir şekilde bahsetmiştik. GConf’ un verileri sakalayan bir database olduğundan ve bu database’ den bize referans veri döndüğünden bahsettik. Şimdi ise GConf ile programlama dilinde nasıl işlem yapacağımızı işleyeceğiz. Tahmin edersiniz ki kullanacağımız dil C# ve platformumuz tabi ki mono olacak. GConf’ un C# ile kullanılmak üzere hazırlanmış
gtk-sharp
isimli hazır bir kütüphanesi vardır. Bu kütüphaneyi mono sanal makinasını kurarken yüklediğinizden emin olunuz yoksa yazmış olduğumuz uygulama çalışmayacaktır. Eğer opsiyonel bir yükleme yapmadıysanız meraklanmayın çünkü gconf-sharp beraberinde geliyor. GConf’ u kullanarak öğrenmenin en iyi yol olacağı kanısındayım ve bu yüzden örnek bir form uygulamasındaki verileri Gconf’ a aktaran ve Gconf’ tan bu verileri geri alan bir uygulama geliştirdim.
uygulama
isimuzayı’ı içinde iki tane sınıf yarattım. Bu sınıflardan
pencere
isimli sınıfımız pencere şablonunu (yani form arayüzünü) ve kontrollerin olaylarını içeriyor. Diğer sınıf ise uygulamamızın başlayacağı nokta olan sınıfımız. Oluşturacağımız arayüz aşadaki şekildeki gibi olacak ;
Şekil-1 Oluşturacağımız pencere
Bu pencereyi oluşturmak için gerekli kodları inceleyelim:
using System;
using Gtk;
using GConf;
namespace uygulama
{
public class pencere:Window
{
Entry isim;
Entry soyad;
Entry evtel;
Entry yas;
Entry okul;
Entry meslek;
CheckButton evlimi;
Entry mail;
Entry serialno;
Button quit;
GConf.Client client;
//GConf’a referans vereceğimiz değerlerin lokasyon hiyararşisi
static string GCONF_APP_YOLU = "/apps/form";
static string ISIM_KEY = GCONF_APP_YOLU + "/isim";
static string SOYAD_KEY = GCONF_APP_YOLU + "/soyad";
static string EVTEL_KEY = GCONF_APP_YOLU + "/evtel";
static string YAS_KEY = GCONF_APP_YOLU + "/yas";
static string OKUL_KEY = GCONF_APP_YOLU + "/okul";
static string MESLEK_KEY = GCONF_APP_YOLU +"/meslek";
static string EVLIMI_KEY = GCONF_APP_YOLU + "/evlimi";
static string MAIL_KEY = GCONF_APP_YOLU + "/mail";
static string SERIAL_NO_KEY = GCONF_APP_YOLU + "/serialno";
//
public pencere():base("GConf-Mono")
{
//nesne referansları yaratılıyor;
quit = new Button("Quit");
isim = new Entry("");
soyad = new Entry("");
evtel = new Entry("");
yas = new Entry("");
okul = new Entry("");
meslek = new Entry("");
evlimi = new CheckButton("Evli");
mail = new Entry("");
serialno = new Entry("");
// nesnelerinin window üzerine yerleştirilmesi yapılıyor
HBox yatay = new HBox(false,1);
VBox dikey1 = new VBox(false,1);
dikey1.Add(new Label("isim"));
dikey1.Add(new Label("soyad"));
dikey1.Add(new Label("evtel"));
dikey1.Add(new Label("yas"));
dikey1.Add(new Label("okul"));
dikey1.Add(new Label("meslek"));
dikey1.Add(new Label("Evlimi"));
dikey1.Add(new Label("Mail"));
dikey1.Add(new Label("Serial-No"));
yatay.Add(dikey1);
//
VBox dikey2 = new VBox(false,1);
dikey2.Add(isim);
dikey2.Add(soyad);
dikey2.Add(evtel);
dikey2.Add(yas);
dikey2.Add(okul);
dikey2.Add(meslek);
dikey2.Add(evlimi);
dikey2.Add(mail);
dikey2.Add(serialno);
yatay.Add(dikey2);
//
VBox dikey3 = new VBox(false,1);
dikey3.Add(quit);
yatay.Add(dikey3);
this.Add(yatay);
//
this.ShowAll();
//
quit.Clicked += new EventHandler(EXIT);
//GConf ile bağlantıyı sağlıyoruz
client = new GConf.Client();
GconftanGelenUpdateVeriler();//eğer değişen keyler varsa bu değerleri update etmek için kullanılır
//
//Entryler değiştiği anda GConfa bildirilmelerini sağlayan eventler
isim.Changed += on_isim;
soyad.Changed += on_soyad;
evtel.Changed += on_evtel;
yas.Changed += on_yas;
okul.Changed += on_okul;
meslek.Changed += on_meslek;
evlimi.Toggled += on_evlimi;
mail.Changed += on_mail;
serialno.Changed += on_serialno;
//
}
Yukarıdaki kodları adım adım incelemeye başlarsak; ilk olarak kullanacağımız isimuzayları dikkatimiz çekiyor. Gtk isimuzayını kullandığımız kompanentler için ekliyoruz. Gconf isimuzayını ise Gconf ile çalışırken kullacağımız sınıfları belirtmek için ekliyoruz. Daha sonra ise pencere sınıfımızı Window temel sınıfından türeterek window sınıfının çeşitli fonksiyonlarını pencere sınıfımıza aktarıyoruz. static olarak belirtmiş olduğumuz yollar ise Gconf ile bağlantı yaparken kullanacağımız adreslerin yolları. Yatay ve dikey taşıyıcıların içine kompanentlerimizi koyarak pencere arayüzünü tamamlıyoruz. Gconf-sharp tasarlanırken her bir kullanıcı bir client gibi düşünülmüş ve kullanıcıların Gconf ile yapacakları işlemler için
GConf.Client()
isimli sınıf tasarlanmıştır. Daha sonra bizim yaratmış olduğumuz
GconftanGelenUpdateVeriler()
isimli metotu çağırıyoruz. Gconf ile yapacağımız tüm işlemleri bu metot içine dizayn ettim. Şimdi bu metodun kodlarını inceleyelim.
public void GconftanGelenUpdateVeriler()
{
try
{
isim.Text = (string) client.Get(ISIM_KEY);
soyad.Text = (string) client.Get(SOYAD_KEY);
evtel.Text = (string) client.Get(EVTEL_KEY);
yas.Text = (string) client.Get(YAS_KEY);
okul.Text = (string) client.Get(OKUL_KEY);
meslek.Text = (string) client.Get(MESLEK_KEY);
evlimi.Active = (bool) client.Get(EVLIMI_KEY);
mail.Text = (string) client.Get(MAIL_KEY);
serialno.Text = (string) client.Get(SERIAL_NO_KEY);
}
catch(GConf.NoSuchKeyException e)
{
Console.WriteLine("Hata:Boyle bir key daha yaratılmamis");
}
catch
{
Console.WriteLine("Hata olustu");
}
}
Daha önce yaratmış olduğumuz
client
nesnesinin Get metotu ile Gconf’ tan veriyi çekiyoruz ve bilinçli bir tür dönüşümüne sokuyoruz. try-catch mekanizması ise bu tarz IO işlemlerinde çok önemlidir. Çünkü belirttiğiniz yoldaki dosya olmayabilir ve buda bir hataya yol açar. Bunun için Gconf’ un
ApplicationException
sınıfından türetilmiş ve dizayn edilmiş hata nesnesi
NoSuchKeyException
’ ı kullanıyoruz. Son olarak penceremizi yaratırken eklemiş olduğumuz Entry ve CheckButton’ ların değiştiği andaki eventlerine bakarsak (isim(entry) ve evlimi(ckeckbutton) ikisine bakmamız yeterli)
void on_isim(object o,EventArgs args)
{
client.Set(ISIM_KEY,isim.Text);
Console.WriteLine("isim GConfa islendi.");
}void on_evlimi(object o,EventArgs args)
{
client.Set(EVLIMI_KEY,evlimi.Active);
Console.WriteLine("Bu deger boolean olarak Gconfa aktarildi");
}
client nesnesi bu sefer
Set
metotu ile belirtilen kompanentten veriyi alıyor ve belirlenen adrese ulaştırıyor. Daha sonrada konsol ekranına işlemin yapıldığını bildiren bir mesaj yolluyor. Birde makelenin başında diğer bir sınıftan bahsetmiştik. Bu sınıfta doğrusu anlatılacak bir şey yok diyebilirim sizlere. Bu sınıf sadece uygulamayı yükleyip,başlangıç adresini verip çalışmasını sağlıyor.
using System;
using Gtk;
using GConf;
namespace uygulama
{
class anaclass
{
public static void Main()
{
Application.Init();
new pencere();
Application.Run();
}
}
}
Bunca kodu yazdıktan sonra derleme işlemi artık çocuk oyuncağı. Programı derlerken gconf-sharp ve gtk-sharp kütüphanelerini referans vermeyi sakın ama sakın unutmayınız!
Şekil - 2 Program kodlarını derleme işlemi
Şekil - 3 Uygulama sonuçları-1 (
Büyük resimlerin için resmin üzerine tıklayınız!)
;
Şekil - 4 Uygulama sonuçları -2
(
Büyük resimlerin için resmin üzerine tıklayınız!)
Kaynak kodlar için
tıklayınız
.
Kaynaklar:
www.go-mono.com
http://gnome.org
Makale:
GConf ile Mono Bölüm-2 Mono - Linux'ta .NET Caner Şahan
Yazılan Yorumlar
Yorum Yaz
Bu konu hakkında yayınlanan yorum bulunmamaktadır.
"Yorum Yaz" tabını kullanarak sizde yorumlarınızı yazabilirsiniz.
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için
tıklayın
.
Üye değilseniz
Üyel Ol
linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
Bu Konuda Son 10
Eklenen Son 10
Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
Dizayn ve Kodlama
bt
akademi
. Tüm Hakları Saklıdır © Copyright 2002-2009 c#nedir?com
Makaleler
Serbest Köşe
Makale Gönder
.Net TV
Video Gönder
Canlı Köşe
Kaynak Kod
Forum
Haberler
Röportajlar
Anketler
C# Nedir?
İletişim
Site Haritası
RSS
Favorilere Ekle
Üyelik
Hesap Aktivasyon
Ekibimiz
Ekibe Katıl