MessageBox ? Ve Application ? soru

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
yazboz
Üye
Mesajlar: 53
Kayıt: 30 Ara 2006 01:24
Konum: İstanbul

MessageBox ? Ve Application ? soru

Mesaj gönderen yazboz »

Selamünaleyküm

1- soru :
MessageBox();
MessageBoxA(); // MessageBox ile aynıdır.
MessageBoxW(); // MessageBox ile aynıdır.

MessageBoxEx();
MessageBoxExA(); // MessageBoxEX ile aynıdır
MessageBoxExW(); // MessageBoxEX ile aynıdır

neden bu kader çeşit var ? aralarında bir fark varsa. bu fark nedir. ve ne zaman ,nerede ,hangi amaç için dir. tek tek açıklarsanız çok sevinirim.



2- soru :
Application. delphi de tam olarak tanımı nedir.

çalışmalarımda anladığım kader ile HWND değerini direk tanımlıyor.
ör:
MessageBox(0 , ' metin', 'Başlık', 16+2+256); // burada sıfır yazmak zorundayız

Application.MessageBox(' metin', 'Başlık', 16+2+256); // sıfır yazmamak zorundayız

acaba anladığım doğrumu ?

teşekkürler

NOT:
kusura bakmayın böyle basit sorular sorduğum için. amaçım tam harfı harfına öğrenmektir. nasıl ki dünyaya gelişmizin nedenleri, ve amaçları var ise . bu gibi işlemlerinde muhakkak bir amaçı vardır diye düşünüyorum. saygılarımla
Kullanıcı avatarı
fatihtolgaata
Üye
Mesajlar: 382
Kayıt: 04 Mar 2004 09:46
Konum: K.çekmece / İstanbul
İletişim:

Mesaj gönderen fatihtolgaata »

1- Api fonksiyonları genelde iki çeşittir. Birisi Ansi, diğeri unicode versiyonudur. Her zaman için Ansi versiyonu, unicode'dan daha hızlıdır. Unicode karakter kullanmak gerekmedikçe ansi kullanmak daha karlıdır. Bu yüzdendirki VCL yıllardır ansi versiyonlu apileri kulanır ve ancak 2008'de unicode versiyonuna geçilmesine karar verilmiştir. Her neyse...
Unicode fonksiyonlarda fonksiyonun sonuna W, Ansilerde ise A harfi gelir. Dediğim gibi, MFC, VCL gibi kütüphaneler apilerin Ansi ya da Unicode versiyonlarından birini kullanır. W ya da A harfi olmayan fonksiyonlar, bu kütüphanelerde, ansi ya da unicode tipindeki kardeşlerine etiket olarak tasarlanmıştır. Yani mesela VCL'de hep ansi kullanıldığından "MessageBox" fonksiyonu direk olarak "MessageBoxA" fonksiyonunu kullanacaktır. Ama sen unicode versiyonunu kullanmak istioyrsan "MessageBox" yerine "MessageBoxW" fonksiyonunu kullanmalısın. Her fonksiyonun unicode versiyonu yoktur. Olup olmadığını öğrenebilmek için SDK yardım dosyalarına bakmalısın.
Sonda "Ex" takısı ise, genişletilmiş sürüm manasındadır. Yani fonksiyona ekstradan yeni özellik katılmıştır. Ama geriye uyumluluktan dolayı eski fonksiyon değiştirilmemiştir. Herzaman olmasa da Ex fonksiyonları eski fonksiyonlardan daha hızlı çalışır. Ama her zaman hızlı çalışmayabilir. Bunu yine internetten ve sdk yardım dosyalarından aradaki farkı öğrenebilirsin.
2- Application, aslında tüm formları bir arada tutmak için ve tüm programı ilgilendiren ortak özelliklere erişmek için tasarlanmıştır. Mesela programın küçültülmesi tüm formları küçültmek demektir ve programın tamamını ilgilendiriyor. Bu yüzden Application nesnesi Minimize adında bir prosedürü vardır. Aynı şekilde MainForm özelliği tüm programı ilgilendirmektedir ve Application nesnesinin bir özelliğidir.

Soruların basit değil, bence kilit sorular. Çoğusu bunları yüzeysel bildiğinden, bazı yerlerde takılıyorlar. Bu sorular gereksiz değil

vesselam.
Kullanıcı avatarı
yazboz
Üye
Mesajlar: 53
Kayıt: 30 Ara 2006 01:24
Konum: İstanbul

Mesaj gönderen yazboz »

teşekkürler
Cevapla