ExtraForum - 1299 Private Serverlar - Server Dosya Paylaşımları
Would you like to react to this message? Create an account in a few clicks or log in to continue.
ExtraForum - 1299 Private Serverlar - Server Dosya Paylaşımları

Güncel Paylaşım Forumu !
 
AnasayfaGaleriAramaLatest imagesKayıt OlGiriş yap
Eğlence Başladı Rütbeni Seç! TIKLA
Moderatör Alımı Başladı TIKLA

 

 Delphi Hakkında Herşey

Aşağa gitmek 
2 posters
YazarMesaj
SessizAdam
Sponsor
Sponsor
SessizAdam


Mesaj Sayısı : 571
Kayıt tarihi : 09/05/09
Rep Puanı Rep Puanı : 47

Delphi Hakkında Herşey Empty
MesajKonu: Delphi Hakkında Herşey   Delphi Hakkında Herşey Icon_minitimePaz Mayıs 10, 2009 7:15 pm

Değişken Tanımları
Delphi’de değişkenleri kulanmadan önce tanımlama mecburiyeti vardır.Bir değişken kullanılmadan önce o değişkende nasıl bir bilginin tutulacağının belirlenmesi gerekir.
Değişkene verilecek ismin anlaşılır bir isim olması programın okunurluğunu kolaylaştırır.

Değişken Şartları
Değişken adları 63 karakter uzunluğunu geçmemelidir.Değişken adının 63 karakteri geçmesi halinde 63. karakterden sonraki kısımlar göz ardı edilir.
Değişken adları ya bir alfabetik (İngiliz alfabesindeki) harfle yada “-“ karakteriyle başlamalıdır.İlk karakterden sonraki karakterler İngiliz alfabesindeki harfler (A..Z,a..z), 0..9 arası rakamlar veya “-“ olabilir.
Değişken adları sembolleri içermemelidir.($,*,% vb.)
Delhpi komutları degişken adları olarak kullanılmamalıdır.(chr,IntToStr gibi)
Bir değişken tanımlama işlemi değişken tanımlama bloğunda (var ile başlayan blok)yapılmalıdır.
Bir değişkenin tanımı iki parçadan meydana gelir. 1.parça değişkenin adını ,2. parça ise değişkenin tipini belirler.
Ayni tipe sahip veriler araya virgül konarak da tanımlanabilirler.
Var

Sayi, toplam:integer;;
x,y,z:word;
Aciklama:string;
Evli:Boolean;
Ondalik_sayi:real;

Veri Tipi
Değişkenler içinde farklı türlerde veriler olabilir. Örneğin bazı değişkenlerde sayı saklamanız gerekirken bazılarında metin saklamanız gerekebilir. Değişkeni tanımlarken o değişkende ne tür veri bulunduracağınızı belirlerlemeniz gerekir.

ShortInt
1 baytlık işaretli tamsayi tipidir. -128 ile 127 arasında değer alabilir.

SmallInt
2 baytlık işaretli tamsayı veri tipidir. -32768 ile 32767 arasında değer alabilir.

LongInt
4 baytlık işaretli tamsayi tipidir. 02147483647 ile 2147483647 arasında değer alabilir.

Integer
Bu tip de LongInt gibidir. 4 baytlık işaretli tamsayı tipidir. -2147483647 ile 2147483647 arasında değer alabilir.
(delphi’nin 16 bitlik versiyonunda Integer tipi 16 bitlik, delphi’nin 32 bitlik versiyonlarında(2.0,3.0+) ise bu tip 32 bitlik bir değer içerebilir.)

Byte
1 baytlık işaretsiz tamsayı tipidir. 0 ile 255 arasında değer alabilir.(shortInt tipinin işaretsiz halidir)


Word
2 baytlık işaretsiz tamsayı tipidir. 0 ile 65535 arasında değer alabilir.

Int64
Bu tiple 64 bitlik tamsayılar tanımlanabilmektedir.Bu türden tanımlanan değişkenler -9.223.372.036.854.775.808 ile 9. 9.223.372.036.854.775.807 arası değerler alabilmektedir.
Ancak bu türden değişkenler bütün fonksiyonlar tarafından desteklenmez.Bu türü desteklemek için iki özel fonksiyon da (strtoint64,strtoint64Def) tanımlanmıştır.

LongWord
4bytlık işaretsiz tamsayı tipi.0..4294967295 arası değerler alabilmektedir.

Variant
16bytlık bir değişken tipidir.Bu tipteki bir değişkene hem sayısal hem de string ifadeler aktarılabilir.
Var
X:variant;
Begin
X:=1233;
X:=’delphi’;
End;

RealSayıTipleri
16bytlık bir değişken tipidir.Bu tipteki bir değişkene hem sayısal hem de string ifadeler aktarılabilir.
Var
X:variant;
Begin
X:=1233;
X:=’delphi’;
End;

Single
4 baytlık ondalık sayı tipidir.1.5*10 üzeri -45 ile 3.4*10 üzeri 38 arasında değer alabilir.(7-8 haneli rakamlar yani:y.yyyyyy*10?)

Real48
6 baytlık ondalık sayı tipidir.2.9*10 üzeri -39 ile 1.7*10 üzeri 38 arasında değer alabilir.

Real ve Double
8 bytlık sayı tipidir.5.0*10 üzeri -324 ile 1.7*10 üzeri 308 arasında değer alabilir.
Delphi 4 versiyonuyla birlikte eski 48 bitlik real sayı tipi 64 bite çıkarılmış ve eski tip Real48 olarak yeniden adlandırılmıştır.Böylece Real tanımıyla Double tanımı arasında herhangi bir farklılık kalmamıstır.
Var
R1:Real;//64 bitlik yeni tip reel sayı
R2:Real48;//eski tip reel sayı
Double;//r1 ile aynı özelliklerde
Sanıldığının aksine 64 bitlik reel sayı tipi 48 bitlikten daha hızlıdır.Çünkü FPU’lar 64 bitlik reel sayı formatını desteklediği için işlemlerde tip dönüşümü gerektirmemektedir.

Extended
10 baytlık ondalık sayı tipidir.3.4*10 üzeri -4932 ile 1.1*10 üzeri 4932 arasında değerler alabilir.19-20 haneli rakamlar.

Comp
8 baytlık ondalık sayı tipidir.-2 üzeri 63 +1 ile 2 üzeri 63 -1 arasında değer alabilir.19-20 haneli rakamlar.
Comp tipi sadece 2 nin katları olan sayıları tutabilen bir tiptir.


Currency
8 baytlık -922337203685477.5808 ile +922337203685477.5807 aralığında işaretli bir sayı tipidir.
Bu tip para içeren değişkenler için düşünülmüştür.Çünkü parasal işlemlerin virgülden sonraki kısmı o kadar önemli değildir.Asıl önemli olan virgülden önceki basamak sayısı çok,virgülden sonraki basamak sayısı azdır.

Boolean
True ve False değerlerinden birini içerir.Hafıza da 1 bayt yer kaplar.
Bir ifadenin doğru-yanlış veya evet-hayır değerlerinden birini aldığı durumlarda kullanılır.Örneğin KrediAlıyor,Evli,EşiÇalışıyor gibi değişkenlere Evet(True) veya Hayır(False) cevapları verilebilir.Böyle değişkenler Boolean olarak tanımlanır.

Char
Bir karakter içerebilen 1 baytlık veri tipidir.Bu tip değişkenler sadece bir karakter barındırabilirler.Örneğin ‘A’,’2’,’-‘ vb.

AnsiChar
Char tipi ile aynıdır.

WideChar
Bu tip 2 baytlık bir karakter tipidir ve uzak doğu dillerinde kullanılır.

ShortString
255 karektere kadar karekter ataması yapılabilen veri tipidir.Bellekte karektersayısı +1 byte yer kaplar.Çünkü bu tipteki değişkenlerin ilk baytı değişkenin uzunluğu için kullanılır.Bir byte içinde 0-255 arası sayı tutulabileceği için bu tipteki verilere 255 karakterden fazla atama yapılamaz.Yapılan atamanın 255 karekteri geçmesi sondakilerin kesilmesine neden olur.

AnsiString
Bu tipe 2GB’a kadar string ataması yapılabilir.

String
AnsiString tipi ile aynıdır.

PChar
Null terminated olarak adlandırılan bir string türüdür.Bu tür daha çok Windows Api’lerinde kullanılır.Bu türdeki stringlerin sonunda #0 karekteri bulunur.Bu karekter stringin bittiği noktayı belirler.
Diğer string türleri ile Pchar arasında atamalar veya işlemler (birleştirme gibi) yapabilirsiniz.

Pointerler

PAnsiString
Null terminated olarak adlandırılan bir string türüdür.Bu tür daha çok Windows Api’lerinde kullanılır.Bu türdeki stringlerin sonunda #0 karekteri bulunur.Bu karekter stringin bittiği noktayı belirler.
Diğer string türleri ile Pchar arasında atamalar veya işlemler (birleştirme gibi) yapabilirsiniz.

PByteArray
TbyteArray tipinde bir değişkeni gösterecek pointer.Çoğunlukla bellekte ayrılmış bölgelerdeki her bayta ulaşabilmek için kullanılır.

PCurrency
Currency tipinde bir değişkeni gösterecek pointer.

PExtended
Extended tipinde bir değişkeni gösterecek pointer.

PShortString
ShortString tipinde bir değişkeni gösterecek pointer.

PWordArray
TwordArray tipinde bir değişkeni gösterecek pointer.Çoğunlukla bellekte ayrılmış bölgelerdeki her worde(2 bayt) ulaşabilmek için kullanılır.
Bunların haricinde herhangi bir tip veya değişken için ^ karakteri kullanılarak kolayca pointer tanımlanabilir.
Var
Ptr:PAnsiString;//AnsiString tipinde bir değeri gösteren pointer
P:^integer;//integer tipinde bir değeri gösterecek pointer

Pointerın Barınacağı Adres
Pointer tipler gerçekte bir değeri değil adresibarındırılır.Bu yüzden hangi adresi barındırdıkları belirlenmelidir.Bu adres belirleme işlemi @ karakteri ile yapılır.
Sayfa başına dön Aşağa gitmek
SessizAdam
Sponsor
Sponsor
SessizAdam


Mesaj Sayısı : 571
Kayıt tarihi : 09/05/09
Rep Puanı Rep Puanı : 47

Delphi Hakkında Herşey Empty
MesajKonu: Geri: Delphi Hakkında Herşey   Delphi Hakkında Herşey Icon_minitimePaz Mayıs 10, 2009 7:15 pm

Pointer'ın Barındıracağı Adres
Pointer tipler gerçekte bir değeri değil adresibarındırılır.Bu yüzden hangi adresi barındırdıkları belirlenmelidir.Bu adres belirleme işlemi @ karakteri ile yapılır.

Pointer Kullanımı
Pointer,tiplerin önüne^ işareti koyularak tanımlanırlar.
Var
X:^integer;
Y:^string;
Bu değişkenlere geğer atanırken değişkenin arkasında ^ operatörü yine kullanılır.
Var
X:^integer;
Y:^string;
Begin
X^:=10;
End;
Normalde değişkenler içlerinde bir değer bulundururlar.Ancak pointerler içlerinde bir değer değil bir adres bulundururlar.Bulundukları bu adresteki değeri temsil ederler.
Pointer veya bir değişkenin adresini öğrenmek için @ operatörü kullanılabilir.
Procedure Tform1.Button1Click(Sender:Tobject);
Var
X:^integer;
Y:integer;
Begin
Y:=5;
X:=@y;
End;
Bu işlemde x pointerinin y değişkeninin adresini barındırması istenmektedir.Bu durumda X’in içeriğinde y’nin bellekteki adresi bulunacaktır.
@x şeklinde kullanılması halinde ise bu adresteki değer yani 5 kastedilmekrtedir.
Var
X:^integer;
Y:integer;
Begin
Y:=5;
End;
Tanımlaması ile Delphi her iki değişken için bellekte yer ayıracaktır

Referans Gösterme
Var
X:^integer;
Y:array [0..2] of integer;
Begin
X:=@y;//x pointeri diziyi gösterecek
End;
Adres Bellek içeriği Açıklaması
100 200 Bellek x değişkeninin bulunduğu yer
….. …. ……
200 Y[0] Bellekte y dizisinin bulunduğu yer
Y[1]
Y[2]
Burada görüldüğü gibi bir pointerin diziyi göstermesini istediğimiz de dizideki bir elemanı değil dizinin ismini kullanıyoruz.Bu durumda pointer dizideki ilk elemanı gösterecektir.İstenirse dizideki elemanı belirtilerek de pointerin o elemanı göstermesi sağlanabilir.
Var
X:^integr;
Y:array [0..2] of integer;
Begin
X:=@y[1];//x pointeri dizideki ikinci elemanı gösterecek
End;
Adres Bellek içeriği Açıklaması
100 204 Bellekte x değişkeninin bulunduğu yer
….. …. …..
200 Y[0] Bellekte y dizisinin bulunduğu yer
204 Y[1]
208 Y[2]
…. …. ….
Pointerlerde değişkenin uzunluğu tanımlandığı tipe göre değişmez.Çünkü pointer hangi tipte tanımlanırsa tanımlansın sonuçta içeriğinde o tipte bir değer bulunmaz sadece bir adres bulunur.
Var
X:^integer;//x pointeri int tipinde bir değeri gösterecek
C:^char;//c pointeri char tipinde bir değeri gösterecek
I:^longint;//I pointeri longint tipinde bir değeri gösterecek
Yukarıdaki her üç pointer da bellekte eşit uzunlukta yer kaplar.Sadece bunların tipleri gösterdikleri bölgedeki değerin hangi tipte olduğunu belirtmek içindir.
Pointerler üzerinde yapılan işlemlerde bellek işlemleridir.
Var
X:^integer;
Begin
Inc(x);
End;
Yukarıdaki işlem x’in değerini bir artırmaz.x,integer tipinin uzunluğu kadar artırır.Yani 4 byte erttıracaktır.
Var
X:^integer;
Y:array [0..2] of integer;
Begin
X:=@y; //x pointeri y dizisini göstersin
End;

Karar Yapıları
İf Yapısı
If-Şart yapısı bütün programlama dillerinde olan bazı şartların gerçekleşmesi durumunda ve gerçekleşmemesi durumunda ayrı ayrı kodların çalıştırılmasına imkan veren yapıdır.

If şart then
Komutlar
Else
Komutlar;

Şartın gerçekleşmesi halinde Then deyiminden sonraki satır işletilir.Gerçekleşmemesi durumunda ise Else deyiminden sonraki satırlar işletilir.
Şartın gerçekleşmemesi durumunda çalışacak else bloğu istenirse verilmeyebilir.
If sart then
Komutlar;
Şart içerisinden birden fazla satır kullanılacaksa Begin-End deyimleri kullanılır.

If şart Then
Begin
Komut1;
Komut2;
……….
End
Else
Begin
Komut1;
Komut2;
End;

Case Yapısı
Bir değişkenin aldığı bir çok değere göre ayrı komutların çalıştırılması gereken durumlar için If yapısını kullanmak yerine Case yapısını kullanmak daha avantajlıdır.

Case Değişken Of
Durum1:Komutlar;
Durum2,Durum3:Komutlar;
Durum4...Durum7:Komutlar;
…………
Durum N: Komutlar;
Else Komutlar;
End;

Burada Değişken parametresi ile belirlenen değişkenin aldığı duruma göre DurumN değerinin karşısındaki komutlar işleme girer.Eğer değişkenin değeri durumlardan hiçbirine uymuyorsa Else kısımdaki komutlar çalışacaktır.

Case x of
1://x=1 iken yazılacak kod
2,3,5://x=2,3 veya 5 iken yazılacak kod
6..10://x=6,7,8,9,10 iken yazılıcak kod
else: //bunlardan biri değilse yazılacak kod
end;

Case yapısında durumu karşılaştırılan değişken string tipte veya kullanıcı tipte bir değişken olamaz.Bu değişken, değeri sayı olarak ifade edilebilen bir değişken olmak zorundadır.

Döngü Deyimleri
For Döngüsü
For Sayaç:=Başlangıç değeri to Bitiş değeri Do
Begin
Komutlar;
End;

Burada sayaç değişkeni tam sayıya çevrilebilen tipte (integer, longint, shortint, byte, word, boolean, char) bir değişken olması gerekir.
? For döngüsü sayacın başlangıç değerinden başlayarak bitiş değerine kadar sayacı birer arttırarak blok içindeki komutları çalıştırır.
? Başlangıç değeri, bitiş değerinden büyükse döngüye hiç girilmez.
? Döngü içerisinde birden fazla satır işletilecekse begin-end kullanılmalıdır.
? Sayacın artarak değil azalarak çalışması için to yerine downto deyimi kullanılır.

For Sayaç:=Başlangıç değeri downto Bitiş değeri Do
Begin
Komutlar;
End;

For döngüsünde sayaç değişkeni birer artıp azalarak değişir.Artımın daha büyük aralıklarla yapılması için arttırma işlemi blok içerisinde sayaç değişkeninin değeri arttırılarak yapılamaz.

While Do
While Şart Do
Begin
Komutlar;
End;

Bir şart gerçekleştiği sürece çalışması gereken program bloklarında kullanılır.For döngüsünün getirdiği bazı kısıtlamalar vardır.Mesela sayaç değişkenimiz tamsayı olmak zorunda ve birer artıp azalmak zorundadır.Bu sınırlamaları aşmak için While-Do döngüsü kullanılır.

Sayaç:=Başlangıç;
While Sayaç<=Bitişdeğeri Do
Begin
Komutlar;
Sayaç:=Sayaç+1;
End;

Artımı birden fazla yapmak için
Sayaç:=Sayaç+1; yerine
Sayaç:=Sayaç+5; şeklinde kullanılabilir.

Repeat Until
Repeat
Komutlar;
Until Şart;

Bu döngü yapısı şart gerçekleşene kadar çalışması gereken program bloklarında kullanılır.While-Do döngüsünden farklı olarak döngüye girerken değil çıkarken şart kontrol edilir.Böylece Repeat-Until döngüsü içindeki komutlar en az bir kez çalışır.

Döngü Kontrol İfadeleri
Break
For, While veya Repeat döngülerinde bazı şartların gerçekleşmesi durumunda döngüden çıkmak için kullanılır.

Continue
For, While veya Repeat döngülerinde bazı şartlar gerçekleştiğinde döngünün sonuna gitmeden tekrar başa dönmesini sağlar.

Exit
Programdan çıkışı sağlar.Burada istenirse bir parametreyle çıkış kodu programdan geriye dönebilir.

Halt
Mevcut program bloğundan bloğu sonuna ulaşmadan çıkmaya yarar.Çalışan blok bir procedure ise procedure’den,bir döngü veya şart bloğu ise o bloktan çıkar.

With - Do
Herhangi bir kontrol elemanının birden fazla özelliğini değiştirmek yada metodlarına ulaşmak için kullanılır.

With kontroladı Do
Begin
Komutlar;
End;

Prosedür
Prosedür Adı
Prosedüre verilecek addır.Prosedür bu isim kullanılarak tanımlanır.Değişken tanımı için geçerli olan kısıtlamalar bu ad içinde geçerlidir.

Giriş Parametreleri
Prosedüre çağrıldığı yerden gönderilen bilgilerdir.Araya virgül konarak birden fazla giriş parametresi tanımlanabilir.Parametrenin tanımından sonra o parametrenin tipi iki nokta işaretiyle belirtilir.A(x:integer,s:=string) gibi

Sabit Değişken Tipi
Prosedürün kullanacağı değişkenler,sabitler veya tipler bu blokta tanımlanır.Bu blokta tanımlanan değişkenler local değişkenlerdir.Yani bu değişkenleri sadece bu prosedür kullanabilir

Fonksiyon
Varsayılan Parametreli
Prosedür parametrelerine varsayılan değerler atanarak,parametrenin kullanılmaması durumunda varsayıla değerle çalışması sağlanabilir.
Örneğin yaz isimli bir prosedürümüz olsun ve kullanıcı bu prosedürü kullanarak verdiği parametreden istediği sayıda yazdırabilsin.Bu durumda prosedürümüz şu şekilde olacaktır.
Procedure yaz(metin:string; adet:integer); overload;
Var
i:integer;
Begin
For i:=1 to adet do
Form1.canvas.TextOut(0,i*20,metin);
End;
Ancak kullanıcı adet parametresini belirmezse sadece bir kere yazsın.Bu durumda ikinci parametrenin olmadığı bir yapı daha tanımlamamız gerekir.
Procedure yaz(metin:string); overload;
Var
i:integer;
begin
form1.canvas.TextOut(0,0,metin);
end;
Her iki prosedürün ismi de yaz olmasına rağmen hangisinin çalışacağı yaz prosedürünün nasıl çalışacağına bağlıdır.
Eğer yaz prosedürünü iki parametre ile çağırırsanız ilk prosedür çağrılır.Tek parametre ile çağırırsanız ikinci prosedür çalışır.
Yaz(‘tuğba’,5);//Birinci prosedür çalışarak 5 defa yazar
Yaz (‘tuğba’);//ikinci prosedür çalışarak bir defa yazar

Olay Alt Programlar
Visual dillerde diğerlerinden farklı olarak kullanıcının tanımlayacağı alt programlardan başka kontrollerin kendi olay altprogramları vardır.Ve kontrolle ilgili bir işlemde bu olay alt programlarından biri veya birkaçı aktif hale gelir.
Procedure
formAdi.kontrolAdiOlay(Sender:TObject[,GirişParametreleri:Tipi]);
Olay alt programlarının diğer alt programlar gibi programcı tarafından çağrılması gerekmez,alt programlar ait olduğu kontrol tarafından çağrılır.Örneğin bir kontrolün KeyPress olayı o kontrol üzerinde iken bir tuşa basılması durumunda veya MouseMove olayı kontrolün üzerinden Mouse geçerken Delphi tarafından (dolaylı olarak Windows tarafından) çağrılır.Dolayısıyla olay alt programlarının hangi sırada çağrılacağı veya kaç defa çağrılacağı tamamen kullanıcının yaptığı hareketlere bağıdır.Ayrıca Windows’un birkaç programı aynı anda çalıştırdığı bilinir.Bu bir programın altprogramları için de geçerlidir.Aynı anda aynı programın birkaç altprogramı da çalışabilir.
Olay altprogramları istenirse diğer altprogramlar gibi de olay gerçekleştirmeden de çağrılabilir.Bu çağrı o olayı meydana getirmez,sadece o olay için yazılmış alt programın çalışmasına sebep olur.
Olay altprogramında bulunan Sender:TObject parametresi bu olay altprogramının hangi kontrol tarafından çağrıldığını belirler.
Delhi’de bir olay altprogramını birden fazla kontrol ortak olarak kullanabilir.Bu durumda hangi kontrolün bu olay altprogramını çağırdığı bu parametre ile öğrenilir.(Delphi kontrolleri dizi olarak tanımlayamadığı için kontrol dizileri de bu yöntemle oluşturulur

Standart
MainMenü
Bütün kullanıcı etkileşimli programlarda görebileceğimiz menüleri oluşturmak amacıyla sunulan bir bileşendir.

Araç çubuğundan bileşenimiz eklendikten sonra "Object Inspector" dan "caption" a menünün adı yazılır. "Items"ine de alt başlıkları eklenir.

<< Eğer alt başlıklarda "&Dosya" gibi bir ifade kullanırsanız bu &dan önceki harfin "alt" tuşu ile birlikte kısa yolunun oluşturulmasını ve "Dosya" olarak görünmesini sağlar.>>

Sub menüleri de en basit şekilde mouse'a sağ tıklayıp, "crate sub menü" tuşuna basabilirsiniz. Eğer menümüze ikonlar eklemek istersek "Object Inspector" /Bitmap özelliğinden ikonlarımızı seçebiliriz.

Butonların komut satırlarını da hemen üzerine çift tıklayarak, DELPHI'nin bizler için otomatik olarak oluşturduğu "oncilick" yordamına yazabiliriz.

"Object Inspector" dan "checked özelliğini "true" yaparsanız komut butonunuzun yanında check eklenmiş olur.

"Object Inspector" "enabled" özelliği ile butonunuzu pasif durumuna getirebilirsiniz.

"Object Inspector" "break" ile tek satıra sığmayacak uzunluktaki menüler iki veya daha fazla satıra bölünebilir.

PopupMenü
Tüm Windows uygulamalarında görebileceğimiz mouse'a sağ tıklandığında açılan menüyü oluşturmak için sunulan bir bileşendir.

Komutlarımıza "Short cut" özelliği ile kısayol kazandırabiliriz.

Menümüzü çizgilerle ayırabilmek için çizgi çizilecek satıra "-" koymamız yeterli.

Formumuza istediğimiz kadar "popup menü" ekleyebiliriz. Hangi nesneye hangi popup'ı ekleyeceğimizi ise, her bir nesnenin "popupmenu" özelliğinden ilgili seçeneği seçerek belirleriz.

Label
Formumuzun her hangi bir nesnesine etiket (başlık, açıklama, vs..) eklemek için sunulan bir bileşendir.

"Caption" özelliğine etiketimizde olmasını istediğimiz yazı eklenir.

"Autosize" özelliğiinin "true" değeri almasıyla içine yazılan yazının boyutuna göre etiketin de boyutu değişecektir.

Bir etikete kısayol verip, bu sayede karşısındaki edit nesnesini aktif hale getirmek için;
Etiketin "Show Accel Char" özelliği program kodlarıyla "ture" yapılır. "Label1.FocusControl:=Edit1;" satırı ile nesneler ilişkilendirilir. Etikete de "&Telefon" gibi bir başlık verilmesi halinde "alt + T" kısayol tuşu olarak atanmış olur.

...Bu nesne ile ilgili daha ayrıntılı bilgi örnek program ve kod penceresinde yer almaktadır.
Sayfa başına dön Aşağa gitmek
SessizAdam
Sponsor
Sponsor
SessizAdam


Mesaj Sayısı : 571
Kayıt tarihi : 09/05/09
Rep Puanı Rep Puanı : 47

Delphi Hakkında Herşey Empty
MesajKonu: Geri: Delphi Hakkında Herşey   Delphi Hakkında Herşey Icon_minitimePaz Mayıs 10, 2009 7:17 pm

Win3.1
DBLookUpList
Özellikle veri tabanı uygulamalarında, her bir bilgi girişinde sürekli tekrar eden bilgileri yineleyerek girmek yerine, referans bir alan seçip, bu alan girildiğinde ilgili diğer alanların otomatik olarak çağırılmasında değer listesi olarak kullanılır.

DBLookUpCombo
Lookuplist ile tamamen aynı amaçta ve aynı özellikleri ile kullanılır. Tek farkı ise değer listesinin açılır kutu halinde olmasıdır.

OutLine
Bileşenlerin hiyerarşik bir yapıda oluşturulmasını (dallandırılarak alt, bir alt vs..) sağlar.

"items.add(node:ttnode;const S:String)" hiyerarşik yapıya yeni başlıklar eklemek içi kullanılır.

"items.addfirst" metodu ile en başa ekleme yapılır.

" items.addchild" seçilen dalın altında yer alan alanların en altına ekleme yapar.

Header
Memo, listbox gibi elemanların genişliklerini çalışma esnasında kontrol edebilmek için kullanılır.

FileListBox
Aktif dizindeki dosyaları göstermek amacıyla kullanılır.

"showglyphs" true değeri aktarılarak dosyalar ikonları ile birlikte gösterilebilir.

"directory" bu özellik aktarılarak dizinin içeriği öğretilebilir/değiştirilebilir.

"mask" filelistbox içinde gösterilecek dosya tipleri sabitlenebilir.

"filetype" belirtilen nitelikteki dosyaların görünmesini sağlar (salt okunur, sistem dosyaları vs..)

"filename" filelistbox kontrolünde seçilen dosyanın adı bu özellikte saklanır.

"fileedit" forma bir edit1 ekleyip, fileedit özelliğinde edit1'i seçtiğimizde filelist'te seçilen dosya adı edit1'de gösterilecektir.

"update" metodu, filelistbox'da görüntülenen dosyaların başka bir uygulama tarafından silinmesi durumunda otomatik olarak güncellenmesini sağlar.

DirectoryListBox
Dizin listesinin görüntülenmesini sağlar.

"directory" görüntülenen dizinin adı (yolu) öğrenilebilir.

"dirlabel" directorylistbox'ın gösterdiği dizin bu özellik ile label'da gösterilebilir.

"filelist" bu özellik ile filelistbox kontrolleri ile bağlantı kurularak seçilen dizinde yer alan dosyaların görüntülenmesi sağlanır.

DriveComboBox
Bilgisayarın tüm sürücülerini görüntüler.

"dirlist" directorylistbox ile ilişki kurularak, istenen sürücüdeki dizinlerin gösterilmesi sağlanır.

FilterComboBox
Belirli filtre özellikleri belirlenerek filelistbox kontrolünde bu filtre özelliklerine uygun olan dosyaların listelenmesi sağlanır.

"filelist" bu özellikle filelistbox kontrolü arasında bağlantı kurularak filtrelerin filelistbox'a uygulanması sağlanır.


Samples
Gauge
Bir uygulama esnasında yapılan işin hangi aşamada bulunduğunu göresel olarak % bilgisiyle birlikte verir.

Kind özelliği gauge kontrolünün gösterge biçimini belirlemek için kullanılır.

showtext özelliği false yapılırsa % değeri gizlenir.

Progress özelliği ile gauge kontrolünün göstereceği değer belirlenir yada gauge kontrolünün hangi değerde olduğu öğrenilebilir.

ColorGrid
ColorGrid kontrolü ile verilen palette mouse'un sol ve sağ tıklamasında foreground ve backround özellikleri ile seçilen renk öğrenilmektedir.

Foregroundindex-Backround index özelliğinde ise gerek sol tıklamayla gerek de sağ tıklamayla seçilen rengin index dğeri öğrenilebilir.

GridOrdering özelliği ile yer alan toplam 16 renk paletinin yerleşimi değiştirilebilir.

SpinButton
Metin kutularına girilen sayısal bilgi yada herhangi bir kontrol elemanın içeriğini azaltıp/arttırmak amacıyla kullanılır.

OnUpClick-OnDownClick olayında spinbutton nesnesinin yukarı butonuna basılmasında OnUpclick, aşagı basılmasında OnDownClick olayı oluşmaktadır.

Upglyph-DownGlyph olayında ise butonların üzerine resim yerleştirilebilmektedir.

SpinEdit
Spinbutton kontrolü bir edit kutusu ile birlikte kullanıldığında anlamlı olmaktaydı. Ve içerisindeki değeri arttırmak ve azaltmak için program satırı yazmak gerekiyordu ancak spinedit kontrolü ile bu işlemlere gerek kalmadan basit bir şekilde yapılmaktadır

İncrement özelliği spinedit kontrolünün artma ve azalma miktarını belirlemektedir.

MinValue-MaxValue özellikleri ile spinedit kontrollerinin alt ve üst limitleri belirlenmektedir.

Enabled özelliği false değeri içeriyorsa spinedit kontrolüne gerek direk gerek butonlara basarak bir sayı girilemez ve mevcut sayı değiştirilemez.

Editor Enabled özelliğine false değeri aktarılırsa Spinedit kontrolüne direk giriş yapılamaz ancak mevcut sayıyı aşağı yukarı değiştirebiliriz.

Value özelliği spinedit kontrolündeki sayısal değer tutulmaktadır.

Directory OutLine
DirectoryOutline konrolü disk üzerindeki klasörleri ve bu klasörlere bağlı alt dizinleri gözstermek amacıyla kullanılmıştır.

Director özelliği seçili olan dizini göstermektedir.

Textcase özelliği kontrolde gösterilen isimlerin büyük harf, küçük harf yada orjinal haliyle gösterilmesininin ayarları yapılmaktadır.

Onexpand olayı, bir dizinin alt dizinleri açıldığında meydana gelmekte olup, seçilen dizin index parametresi ile öğrenilir.

Calender
Programlara tarih girişi gereken durumlarda herhangi bir aya ait takvim bilgisini görüntülemek için kullanılır. Form'a dahil edildiğinde sistem tarihine bağlı olarak içinde bulunulan ay ve de günü gösteren takvim hazırlanır.

Day özelliği takvimde gösterilecek günü gösterir.

Month özelliği takvimde gösterilecek ayı gösterir.

Year özelliği takvimde gösterilecek yılı gösterir.

Startofweek özelliği takvimde gösterilecek ilk gün ayarlanır. 0 seçeneği akvimin ilk gününün pazar olduğunu gösterir. Diğer günler buna göre sıralanır.

PrevYear-nextYear özellikleri year ve month özelliğinin arttırılp azalmasını sağlar.

System
Timer
Belirli aralıklarla tekrar tekrar çalıştırılması istenen programlarda TTimer kontrolünden yararlanılmaktadır.

İnterval Özelliği enabled özelliği true olduğu takdirde ontimer olayının hangi aralıklarla aktive edileceğini belirler.(1000msn=1sn)

Ontimer olayı timer kontrolünün tek olayı olup özellğin karşısının çift tıklanmsı ile elde edilen Timer1 Timer procedure'ünü interval özelliğindeki zaman değerine bağlı olarak Timer1 Timer procedürü aktive edilerek çalıştırır.

PaintBox
Form üzerine yerleştirilen Paintbox kontrolü ile bu kontrol üzerinde çizim yapılabilir.

Bu kontrol'de event sekmesinde bulunan Mousedown,MouseMove,MouseUp olayları kullanılarak çizim yapılır.

Medya Player
Delphi dahilinde müzik Cd'leri, ses dosyaları(.Wav-.Mid) ve .Avi uzatılı görüntü dosyalarının oynatılması MediaPlayer kontrolü ile yapılmaktadır.

DeviceType özelliği mediaplayer kontrolünden hangi amaçla yararlanılacağı, yani open metodu kullanarak açılacak olan cihaz tipi belirlenmektedir. Varsayılan değeri dtAutoselect olup bu durumda hangi durumda hangi cihazın çalınacağına Filename özelliğinde yer alacak olan dosyanın uzantısına bakarak Delphi karar verercektir.

AutoOpen özelliği ile FileName özelliğinde yeralan dosyanın heran oynatılmaya hazır hale getirilmesi sağlanır.

Filename özelliği hangi dosyanın açılmak isıtendiği bu özellikle belirlenmektedir.

Display ve DisplayRect özelliği ile görüntünün kontrolün aktarılacağı kontroldur.

Position özelliği ile çalınan yada oynatılan parçanın neresinde bulunulduğu öğrenilebilir ve değştirilebilir.

Length Özelliği ile çalınan yada oynatılan parçanın uzunluğu öğrenilebilir.
Sayfa başına dön Aşağa gitmek
SessizAdam
Sponsor
Sponsor
SessizAdam


Mesaj Sayısı : 571
Kayıt tarihi : 09/05/09
Rep Puanı Rep Puanı : 47

Delphi Hakkında Herşey Empty
MesajKonu: Geri: Delphi Hakkında Herşey   Delphi Hakkında Herşey Icon_minitimePaz Mayıs 10, 2009 7:17 pm

OleConteiner
Windows altında yeralan uygulamalar arasında bilgi alışverişi yani veri paylaşımı amacıyla kullanılan kontroldur.

Form'a OleContainer kontrolü yerleştirildekten sonra üzerine çift tıklayarak yada sağ tıklayarak yan menüden InserObject komutu verilerek InserObject diyalog kutusu elde edilir.Bu diylog kutusunda Create New radio butonu seçili durumda mevcut listeden istenilen nesne seçilir. Create from file seçeneği seçildiğinde harddiskte istenen uygulama browse butonu tıklanarak seçilir.

AutoActive özelliği nesnenin nasıl active edileceği ayarlanır.

SourceDoc özelliği ile OLE container aracılığıyla hangi nesne ile bağlantı kurulacağı ayarlanır.

ChangeIconDialog kullanıcı nesneyi ifade eden ikon değiştirilir.

DdeServerConv
Programınızın DDE mesajlarını kabul etmesini istiyorsanız bu kontrolü kullanabilirsiniz.

Bu kontrolün name özelliğ çok önemlidir. Çünkü diğer uygulamalar bu uygulama ile DDE bağlantısı kurmak istediklerinde bu ismi kullanırlar.

Open Olayı bağlantı kurulduğunda oluşan olaydır.

Onclose olayı bağlantı kesildiğinde oluşan olaydır.

OnExecuteMacro olayı DDE bağlantısı kurulduğunda o uygulama size komut gönderir. Bağlantı kurulan uygulamadan bir komut geldiğinde bu olay çalışacaktır.Gelen komut msg parametresi ile öğrenilir.

DdeClientConv
DDE'yi destekleyen diğer ygulamalarla bağlantı kurulurken bu kontrol kullanılır.

Connect mode özelliği bağlantının otomatik mi, manual olarak mı kurulacağını
belirler.

Setlink özelliği ise ConnecMode özelliğine ddeAutomatic değeri verilmişse bu
özellik kullanılarak uygulama ile bağlantı kurulur.


ExecuteMacro olayında ise bir bağlantı gerçekleştiğinde o uygulamaya komut
göndermek için bu metod kullanılır. Komut cmd parametresi ile verilir.

ExecuteMacroLines olayı ise birdenfazla komut göndermeye yarar.



Sdi Formları
Propreties
Her nesne için ayrı ayrı özelliklerin bulunduğu alandır.

Caption
Formun başlığı bu özellikle belirlenir.

Form Style
Bu özellik formun şeklini etkiler.Alabileceği değerler ve etkisi şöyledir.
fsNormal:Normal form
FsMDIChild:Form bir MDI formun childi.MDI form içinde bulunması istenen formlara bu değer verilir.
FsStayOnTop:Sürekli olarak en üstte kalacak form.Windows’ta formlara bu özellik verilirse hangi form aktif olursa olsun bu form en üstte kalacaktır.
formStyle özelliğine FsNormal veya FsStayOnTop değeri verilmişse SDI form,diğer durumlarda MDI veya MDIChild form oluşacaktır.

AutoScroll
Bu özellik normalde true’dır ve formun içindeki kontroller forma sığmadığı zaman kaydırma çubukları eklenmesi sağlanır.False yapılırsa kaydırma çubukları eklenmez.

BorderStyle
Formun çerçeve şeklini belirleyen bu özellik formun boyutlarının değiştirilmesini veya kapatılması vereceğiniz değerlerle engelleyebilirsiniz.

Border Icons
Bu özellik formun biçimini etkiler.Alabileceği değerler ve etkisi şöyledir:
biSystemMenu:Form system menüsüne sahip.
biMinimize:Form minimize düğmesine sahip.
biMaximize:Form Maximize düğmesine sahip.
biHelp:Form yardım düğmesine sahip.

Position
Form çalışmaya başlarken koordinatlarının ve boyutlarının nasıl olacağı bu özelliklerle belirlenir.Alabileceği değerler ve anlamları şöyledir:
poDesigned:Form tasarımında hangi koordinat ve boyutlarda ise çalışmaya başlarken de aynıdır.
poScreenCenter:Form ekranı ortalayacak şekilde koordinatları ayarlanır.Formun boyutlarında herhangi bir değişim yapılmaz.
poDefault:Form ekranın sol üst köşesine yakın bir yerde görüntülenir.Formun genişliği ve yüksekliği de default boyutlarına çekilir.
poDefaultPosOnly:Formun boyutları değiştirilmeden ekranın sol üst kısmına yakın bir koordinatta görüntülenir.
poDefaultSizeOnly:Formun koordinatları değiştirilmeden default boyutlarda görüntülenir.
Sayfa başına dön Aşağa gitmek
SessizAdam
Sponsor
Sponsor
SessizAdam


Mesaj Sayısı : 571
Kayıt tarihi : 09/05/09
Rep Puanı Rep Puanı : 47

Delphi Hakkında Herşey Empty
MesajKonu: Geri: Delphi Hakkında Herşey   Delphi Hakkında Herşey Icon_minitimePaz Mayıs 10, 2009 7:18 pm

WindowSate
Formun Simge,Ekranı kapla ve Normal durumundan hangisinde olduğunu öğrenmeye ve değiştirmeye yarar.Alabileceği değerler ve anlamları şöyledir:
wsNormal:Maximize veya Minimize durumunda değil.
wsMaximized:Ekranı kapla durumu.
wsMinimized:Simge durumu.

Active
Formun o anda aktif ve kontrolü elinde olup olmadığını bu özellikle öğrenilir.Geriye dönen değer True ise form aktiftir.

ActiveControl
O anda form üzerinde aktif olan kontrolü yani klavye kontrolünün elinde bulunduran kontrolü bu özellik temsil ederek Form üzerindeki aktif kontrolün ismi gibi davranır.
Form üzerinde Edit kutusunun aktif olduğunu kabul edersek ActiveControl.Text özelliği Edit1.Text özelliği yerine geçer.

Icon
Formun Iconu bu özellikle belirlenir.Tasarım zamanı Object Inspector penceresinden icon dosyası yüklenebileceği gibi çalışma zamanı aşağıdaki satır ile de yüklenebilir.
Icon.LoadFromFile(‘ICON.ICO’);
Bu özelliği kullanarak formunuzun sol üst köşesinde güzel animasyonlar da yaptırabilirsiniz.Bu Timer aracılığı ile birkaç farklı iconunu peş peşe göstererek güzel bir animasyon yaptırabilirsiniz.

KeyPreview
Bu özellik True yapılırsa form üzerinde her hangi bir kontrolde basılan tuşları o kontrolün Key olaylarından önce formun key olayları algılar.Böylece form üzerinde basılan bütün tuşların,formun Key olayları ile takip edilmesi sağlanmış olur.
Oyun programları gibi programlar yazıyorsanız bu özellik çok işinize yarayacaktır.
Oyun programı gibi tuşların yoğun olarak kullanıldığı programlarda bu özellik true yapılarak tuşları kontrol edecek kodlar formun key olaylarına yazılır.

PrintScale
Form yazdırılırken uygun şekilde ölçeklemek için bu özellik kullanılır.Yazıcı çözünürlüğü ekran çözünürlüğünden çok daha yüksek olduğu için aynen yazdırılması gerçek boyutlarda çıkmasını önler.Bu parametre ile yazıcıya çıkarılırken nasıl bir ölçekleme yapılacağı belirlenir.Özelliğin alacağı değerler ve anlamları şöyledir.
poNone:Herhangi bir ölçekleme yapılmadan yazdırılır.Bu durumda ekranda görülen form,yazıcıdan çok küçük çıkacaktır.
poProportional:Ekranda görülen form ile yazıcıdan çıkacak form aynı boyutlarda görülmesi için ölçeklendirilir.
poPrintToFit:Form yazıcıdaki kağıdı tam kopyalayacak şekilde ölçeklendirilir.

ControlCount
ControlCount özelliği ile form üzerindeki veya gruplama özelliği olan herhangi bir kontrol üzerindeki kontrol sayısı öğrenilir.
Controls[Index] ise form üzerindeki Index nolu kontrolün ismi yerine geçer.Bu iki özellik birlikte kullanılarak kontrollerin tümüne uygulanması gereken işlemler bir döngü içinde gerçekleştirilebilir.
Kullanılabilecek özellikler şunlardır:
Align,Cursor,Showhint,BoundsRect,Enabled,Top,Clien tHeight,Height,Visible,ClientOrigin,Hint,Width,Cli entRect,Left,ClientWidth,Parent.
ControlCount: özelliği form içinde bulunan bütün kontrollerin sayısını vermez.Örneğin üç tane Edit kutusu var ise bu özelliğin alacağı değer üç tür.Üç tane Edit kutusu,bir tane Group kutusu ve bunun içinde de iki tane Radio düğmesi varsa özelliğin alacağı değer dörttür.Yani grup içindeki kontrolleri bu özellikler temsil etmez.Çünkü GroupBox kutusunun da form gibi gruplama özelliği vardır ve onun içindeki kontrollere GroupBox1.Controls[] ve GroupBox1.ControlCount özellikleri ile ulaşılabilir.Ancak yine de Form üzerindeki bütün kontrolleri öğrenebilmek için ComponentCount ve Components[Index] özellikleri kullanılır.

ComponentCount
Bu iki özellik Controls özelliğinden farklı olarak form üzerindeki bütün kontrolleri temsil ederler,ancak onların isimlerini değil de tiplerini temsil ederler.Bu yapıyı,dolayısıyla bütün propertiesler bu yöntemde kullanılabilir fakat her bir tip için ayrı kod yazılması gerekir.

Canvas
Form (veya Canvas özelliği olan diğer kontroller) üzerine çizim yapmak veya resim göstermek gibi grafiksel işlemler için Canvas özelliği kullanılır.Bu özellik gerçekte TCanvas tipinde tanımlanmıştır ve bu tipin kendi properties ve methodsları vardır.Bu konuyu kitabın Çizim kısmında detaylı olarak bulabilirsiniz.

Methods
Form (veya Canvas özelliği olan diğer kontroller) üzerine çizim yapmak veya resim göstermek gibi grafiksel işlemler için Canvas özelliği kullanılır.Bu özellik gerçekte TCanvas tipinde tanımlanmıştır ve bu tipin kendi properties ve methodsları vardır.Bu konuyu kitabın Çizim kısmında detaylı olarak bulabilirsiniz.

Close
Formu kapatmak için bu metod kullanılır.Bu kullanıldığında OnClose ve OnCloseQuery olayları çalışır.Bu olaylarda kapatma işlemi iptal edilmezse form kapatılacaktır.System menusundaki kapat seçeneği ile aynı işi yapar.

Print
Formu,PrintScale özelliği ile belirlenen değerle ölçeklendirerek yazıcıya gönderir.

GetFromImage
Formun görüntüsünü bu metod vasıtası ile alıp bir dosyaya kaydedebilir,panoya veya başka bir resim kontrolüne alabilirsiniz.
Clipboard.Assign(GetFormImage);
Satırı ile formun görüntüsünü panoya kopyalayabilirsiniz.(Clipboard nesnesini kullanmadan önce Clipbrd ifadesini Uses satırına eklemelisiniz.)
Bu özellik TBitmap türünden tanımlandığı için TBitmap’a uygulanabilecek bütün metod ve propertiesler bu özellik içinde uygulanabilir.Örneğin formun görüntüsünü bir dosyaya kaydetmek için;
GetFormImage.SaveToFile(‘C:\Deneme.bmp’);
Satırı kullanılabilir.
Sayfa başına dön Aşağa gitmek
SessizAdam
Sponsor
Sponsor
SessizAdam


Mesaj Sayısı : 571
Kayıt tarihi : 09/05/09
Rep Puanı Rep Puanı : 47

Delphi Hakkında Herşey Empty
MesajKonu: Geri: Delphi Hakkında Herşey   Delphi Hakkında Herşey Icon_minitimePaz Mayıs 10, 2009 7:18 pm

ShowModal
Form bu yöntemle gösterilirse Modal olarak devreye girer.Bir formun modal olması form kapatılıncaya kadar programdaki diğer formlara geçiş yapılamaması ve diğer formlardaki kodların askıya alınması anlamına gelir.
Mesaj kutuları modal formlara örnek olarak verilebilir.

ScrollView
Bu metod ile,form üzerinde olup da o anda görülmeyen bir kontrolü,formu kaydırarak görüntülenmesini sağlar.

EventsonCreate
Form ilk defa belleğe yüklenirken bu olay meydana gelir.
Formun Visible özelliği ile gizlenip tekrar gösterilmesi bu olayı meydana getirmez.Çünkü form zaten bellektedir.
Programınızda birkaç tane form varsa program çalışmaya başladığında bütün formların OnCreate olayı çalışacak fakat sadece ana form görüntülenecektir.Diğer formları show metodu ile sizin göstermeniz gerekir.
Create olayı,formlarla ilgili ilk çalışan ve bir daha çalışmayan olay olması sebebiyle form ekranda gösterilmeden önce form üzerinde yapılacak işlemler(kontrollerin yerlerini değiştirmek,kontrollerle ilgili değerler vermek gibi) burada yapılabilir.
Bu olayın çalışmasını bitirdikten sonra form ekranda görülür.Bu olay bitmeden görüntülenmesi için show metodu kullanmanız gerekir.
Formun Create olayına yazdığınız kodla bir nesneye setfocus yapamazsınız.Create olayı çalışmasını bitirmeden form ekranda görülmeyeceği için klavye kontrolünü o nesneye bırakmaya çalışmak hataya sebep olur.
Ayrıca formun Create olayında,ekran üzerine metodlar kullanılarak yapılan yazım ve çizimler (TextOut,LineTo gibi) görülmez.Bu problemleri aşmak için Create olayında show metodu ile formun olay bitmeden gösterilmesini sağlayabilirsiniz.
Bir form belleğe yüklenirken sırasıyla şu olaylar meydana gelir:OnCreate,OnShow,OnActivate,OnPaint,OnResize.

OnShow - OnHide
Bu olaylar formun Visible özelliği true ve false yapıldığında meydana gelir.Yani form ekranda görünür veya gizli duruma geldiğinde bu olaylar çalışır.
Form ilk defa yüklenirken de OnShow olayı OnCreate olayından sonra meydana gelir

OnAvtive
Programınızda birkaç form varsa bu formlardan aynı anda yalnız biri aktiftir.Aktivitenin programdaki formlardan diğerine geçmesi durumunda aktiviteyi kaybeden formun Deactivate olayı,aktif olan formun da Activate olayı meydana gelir.
Bu olaylar yalnız sizin programınızdaki formlar arası geçişte meydana gelir.Windows altında çalışan başka bir programın aktiviteyi ele geçirmesi veya kaybetmesi bu olayları meydana getirmez.Programlar arası geçişte Application nesnesinin Activate ve Deactivate olayları meydana gelir.

OnClose
Bu olay form kapatılırken oluşur.Formun Close olayı şu hallerde meydana gelir:
Formun sol üst köşesindeki System menusundan kapat seçildiğinde
Programda Close metodu kullanıldığında
Windows Görev Yöneticisinden(Task Manager) Görevi Sonlandır düğmesinin seçilmesiyle
Windows’tan çıkılmaya çalışıldığında
Form bir MDIChild ise MDI formun kapatılmasıyla
Bu olaylardan herhangi birinin yapılmasıyla Windows formun Close olayını çağırır.
Eğer programdan çıkmak için Halt komutunu kullanırsanız bu komut Close olayını çalıştırmadan programın kapanmasına sebep olur.Bu yüzden programlardan çıkarken her zaman Close metodunu kullanın.Böylece OnClose olayı meydana gelecek ve çıkmadan önce yapılması gereken işlemlerin yapılabilmesini sağlayacaktır.
Form kapatılmadan önce yapılması gereken işlemler bu olayda yapılır.Örneğin’çıkmak istiyor musunuz’ veya ‘çıkmadan önce kaydedilsin mi\’ gibi bir soru burada sorulur.Alınan cevaba göre formun kapatılması durdurulabilir.Yapılacak işlem Action parametresi ile belirlenir.
Action parametresinin alacağı değerler ve anlamları şöyledir.
caNone:Kapatılma işlemi durdurulur.Örneğin’çıkmak istiyor musunuz\’ sorusuna Hayır cevabı verilirse Action parametresine bu değer atanarak formun kapatılması önlenir.
caHide:Form kapatılmaz fakat gizlenir.Normal formlarda default değer budur.Action Parametresine herhangi bir atama yapılmazsa bu değer varsayılır.MDI formlarda ise caMinimize değeri varsayılır.
caMinimize:Form kapatılmaz,bunun yerine Minimize durumuna getirilir.Bu daha çok MDI formlarda uygulanan bir yöntemdir.
caFree:Form kapatılır ve bellekten çıkarılır.

OnResize
Formun boyutları değiştiğinde bu olay meydana gelir.

OnKeyPress
Formun Key olaylarının diğer key olaylarından önemli bir fark,formun KeyPreview özelliği True ise form üzerinde basılan bütün tuşları tuşun basıldığı kontrolün key olaylarından önce formun key olaylarının algılanmasıdır.
Sayfa başına dön Aşağa gitmek
SessizAdam
Sponsor
Sponsor
SessizAdam


Mesaj Sayısı : 571
Kayıt tarihi : 09/05/09
Rep Puanı Rep Puanı : 47

Delphi Hakkında Herşey Empty
MesajKonu: Geri: Delphi Hakkında Herşey   Delphi Hakkında Herşey Icon_minitimePaz Mayıs 10, 2009 7:19 pm

Delphi Yararrı Kodlar
Dosya Kopyalama (1)

Procedure FileCopy( Const sourcefilename, targetfilename: String );
Var
S, T: TFileStream;
Begin
S := TFileStream.Create( sourcefilename, fmOpenRead );
try
T := TFileStream.Create( targetfilename,
fmOpenWrite or fmCreate );
try
T.CopyFrom(S, S.Size ) ;
finally
T.Free;
end;
finally
S.Free;
end;
End;

Dosya Kopyalama (2)

procedure FileCopy(const FromFile, ToFile: string);
var
FromF, ToF: file;
NumRead, NumWritten: Word;
Buf: array[1..2048] of Char;
begin
AssignFile(FromF, FromFile);
Reset(FromF, 1); { Record size = 1 }
AssignFile(ToF, ToFile); { Open output file }
Rewrite(ToF, 1); { Record size = 1 }
repeat
BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
BlockWrite(ToF, Buf, NumRead, NumWritten);
until (NumRead = 0) or (NumWritten <> NumRead);
CloseFile(FromF);
CloseFile(ToF);
end;

Dosya Kopyalama (3)

procedure CopyFile(FromFileName, ToFileName: string);
var
FromFile, ToFile: File;
begin
AssignFile(FromFile, FromFileName); { Assign FromFile to FromFileName }
AssignFile(ToFile, ToFileName); { Assign ToFile to ToFileName }
Reset(FromFile); { Open file for input }
try
Rewrite(ToFile); { Create file for output }
try
if LZCopy(TFileRec(FromFile).Handle, TFileRec(ToFile).Handle) < 0
then
raise EInOutError.Create('Error using LZCopy')
finally
CloseFile(ToFile); { Close ToFile }
end;
finally
CloseFile(FromFile); { Close FromFile }
end;
end;

Directory Adi degistirme

SysUtils unitesinin içindeki RenameFile function bu isi görmektedir.

Treeview componentinin durumunu kaydetme ve gösterme

Kaydetmek için

TreeView.SaveToFile('Dosya.adi');

Dosyayi açmak için

TreeView.LoadFromFile('Dosya.adi');

Dosyayi yanlizca okumak (read only) seklinde açma

AssignFile(F, Dosya);
FileMode := 0; (read only modunda açmak}
Reset(F);
.
.
.
CloseFile(F);

Açilan dosyanin tarih ve zamanini ayarlamak


var
f: file;
begin
Assign(f, DirInfo.Name);
Reset(f);
SetFTime(f, Time);
Close(f);
end;

Deltree

{$I-} {$I }

procedure delTree (DirName: string);
var
FileSearch: SearchRec;
begin

chDir (DirName);
FindFirst ('*.*', Directory, FileSearch);
while (DosError = 0) do begin
if (FileSearch.name <> '.') AND (FileSearch.name <> '..') AND
( (FileSearch.attr AND Directory) <> 0)
then begin
if DirName[length(DirName)] = '\' then
delTree (DirName FileSearch.Name)
else
delTree (DirName '\' FileSearch.Name);
ChDir (DirName);
end;
FindNext (FileSearch)
end;


FindFirst ('*.*', AnyFile, FileSearch);
while (DosError = 0) do begin
if (FileSearch.name <> '.') AND (FileSearch.name <> '..') then
Remove (workdir);
end;
FindNext (FileSearch)
end;
rmDir (DirName)
end;

Dbgrid'de (Ctrl-Del diyince) dosya silmesini engelleme

if (ssctrl in shift) and (key=vk_delete) then
begin
key:=0;
end;

String'i renk'e renk'i stringe çevirme
Uses graphics;
form1.Color:=stringtocolor('121');
label1.caption:= ColorToString(form1.color);

Mouse'un yerini degistirmek

randomize;
SetCursorPos(random(100),random(100));

ComboBox'in asagiya listelemesinin farkli bir yolu (DropComboBox)

SendMessage(ComboBox1.handle , 1039, 1, 0);

Basligi Gizlemek ve Göstermek

Procedure HideTitlebar;
Var
Save : LongInt;
Begin
If form1.BorderStyle=bsNone then Exit;
Save:=GetWindowLong(form1.Handle,gwl_Style);
If (Save and ws_Caption)=ws_Caption then Begin
Case form1.BorderStyle of
bsSingle,
bsSizeable : SetWindowLong(form1.Handle,gwl_Style,Save and
(Not(ws_Caption)) or ws_border);
bsDialog : SetWindowLong(form1.Handle,gwl_Style,Save and
(Not(ws_Caption)) or ds_modalframe or ws_dlgframe);
End;
form1.Height:=form1.Height-getSystemMetrics(sm_cyCaption);
form1.Refresh;
End;
end;
Sayfa başına dön Aşağa gitmek
SessizAdam
Sponsor
Sponsor
SessizAdam


Mesaj Sayısı : 571
Kayıt tarihi : 09/05/09
Rep Puanı Rep Puanı : 47

Delphi Hakkında Herşey Empty
MesajKonu: Geri: Delphi Hakkında Herşey   Delphi Hakkında Herşey Icon_minitimePaz Mayıs 10, 2009 7:19 pm

Procedure ShowTitlebar;
Var
Save : LongInt;
begin
If form1.BorderStyle=bsNone then Exit;
Save:=GetWindowLong(form1.Handle,gwl_Style);
If (Save and ws_Caption)<>ws_Caption then Begin
Case form1.BorderStyle of
bsSingle,
bsSizeable : SetWindowLong(form1.Handle,gwl_Style,Save or ws_Caption or
ws_border);
bsDialog : SetWindowLong(form1.Handle,gwl_Style,Save or ws_Caption or
ds_modalframe or ws_dlgframe);
End;
form1.Height:=form1.Height+getSystemMetrics(sm_cyC aption);
form1.Refresh;
End;
end;

GradientFill (eyimli renk) kullanimi

Önce uses bölümüne chart ekleyin.
Formun üstüne bir tane image componenti yerlestirin ve formun create olayina asagidaki kodu yazin.

procedure TForm1.FormCreate(Sender: TObject);
begin
GradientFill(Image1.Canvas,Image1.ClientRect,clred ,clblue,false);
end;

Küçük bir kolaylik ctrl-space

Delphide esitlik kurucaginiz zaman ctrl-space'e bastiginizda verebileceginiz degerleri göstermektedir.
Label1.caption:= (burada ctrl-space bastiginizda verebileceginiz degerleri görürsünüz)


Dbf dosyasini pack etmek (silinen dosyalari diskten silmek)

Table1.Exclusive := True;
Table1.Active := True;
Error := DbiPackTable(Table1.DBHandle, Table1.Handle, nil, szdBASE, True);
Table1.Active := False;
Table1.Exclusive := False;

BDE' nin yüklü olup olmadigini anlamak
HKEY_LOCAL_MACHINE\Software\Borland\Database Engine bölümü bde'ye ayrilmistir ve yüklü olup olmadigini asagidaki degerleri kontrol ederek bulabilirsiniz.

DLLPATH
CONFIGFILE01

Clipboard'a kopyalama ve yapistirma (copy,past)
procedure CopyButtonClick(Sender: TObject);
begin
If ActiveControl is TMemo then TMemo(ActiveControl).CopyToClipboard;
If ActiveControl is TDBMemo then TDBMemo(ActiveControl).CopyToClipboard;
If ActiveControl is TEdit then TEdit(ActiveControl).CopyToClipboard;
If ActiveControl is TDBedit then TDBedit(ActiveControl).CopyToClipboard;
end;

procedure PasteButtonClick(Sender: TObject);
begin
If ActiveControl is TMemo then TMemo(ActiveControl).PasteFromClipboard;
If ActiveControl is TDBMemo then TDBMemo(ActiveControl).PasteFromClipboard;
If ActiveControl is TEdit then TEdit(ActiveControl).PasteFromClipboard;
If ActiveControl is TDBedit then TDBedit(ActiveControl).PasteFromClipboard;
end;

TStringgrid'i kaydetme ve açma

Procedure SaveGrid;
var
f:textfile;
x,y:integer;
begin
assignfile (f,'Filename');
rewrite (f);
writeln (f,stringgrid.colcount);
writeln (f,stringgrid.rowcount);
For X:=0 to stringgrid.colcount-1 do
For y:=0 to stringgrid.rowcount-1 do
writeln (F, stringgrid.cells[x,y]);
closefile (f);
end;

Procedure LoadGrid;
var
f:textfile;
temp,x,y:integer;
tempstr:string;
begin
assignfile (f,'Filename');
reset (f);
readln (f,temp);
stringgrid.colcount:=temp;
readln (f,temp);
stringgrid.rowcount:=temp;
For X:=0 to stringgrid.colcount-1 do
For y:=0 to stringgrid.rowcount-1 do begin
readln (F, tempstr);
stringgrid.cells[x,y]:=tempstr;
end;
closefile (f);

Avi dosyasinin görünüm alanini seçilen panele esitleme

begin
with MediaPlayer1 do begin
DeviceType := dtAutoSelect;
visible := false;
FileName := InputBox('AVI', 'Enter AVI file name', 'c:\windows\borland.avi');
display := panel1;
open;
DisplayRect := rect(0, 0, panel1.width, panel1.height); {This is it!}
rewind;
play;
end;
end;
Windows'a çizgi çizmenin farkli bir yolu

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var dc:hdc;
begin
dc:=getdc(0);
Windows.LineTo(dc,x,y);
end;

end.

Memo componentindeki cursorun pozisyonunu bulma

procedure TForm1.Button1Click(Sender: TObject);
var
Row, Col: Integer;
begin
Row := SendMessage(Memo1.Handle, EM_LINEFROMCHAR, Memo1.SelStart, 0);
Col := Memo1.SelStart - SendMessage(Memo1.Handle, EM_LINEINDEX, Row, 0);
Label1.caption := 'Row= ' + IntToStr(Row+1) + ' Col= ' + IntToStr(Col+1);
end;
Form üstüne dbclick yapilinca maximisize (tam ekran) olmasi

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
procedure WMNCHitTest(var M: TWMNCHitTest); message wm_NCHitTest;
end;
Sayfa başına dön Aşağa gitmek
SessizAdam
Sponsor
Sponsor
SessizAdam


Mesaj Sayısı : 571
Kayıt tarihi : 09/05/09
Rep Puanı Rep Puanı : 47

Delphi Hakkında Herşey Empty
MesajKonu: Geri: Delphi Hakkında Herşey   Delphi Hakkında Herşey Icon_minitimePaz Mayıs 10, 2009 7:19 pm

var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WMNCHitTest(var M: TWMNCHitTest);
begin
inherited;
if M.Result = htClient then
M.Result := htCaption;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end;
end.
Control paneldeki bölümleri açma (cpl dosyalarini açma)

unit open_cpl;

interface

function RunControlPanelApplet( sAppletFileName : string) : integer;

implementation

uses Windows;

function RunControlPanelApplet( sAppletFileName : string) : integer;
begin
Result := WinExec( PChar('rundll32.exe shell32.dll,'+ 'Control_RunDLL '+sAppletFileName), SW_SHOWNORMAL);
end;

end.


access.cpl: Accessibility Properties
appwiz.cpl: Add/Remove Programs Properties
desk.cpl: Display Properties
intl.cpl: Regional Settings Properties
joy.cpl: Joystick Properties
main.cpl: Mouse Properties
mmsys.cpl: Multimedia Properties
modem.cpl: Modems Properties
sysdm.cpl: System Properties
timedate.cpl: Time/Date Properties
Kullanilan printer adi

uses Printers;
function GetDefaultPrinterName : string;
begin GetDefaultPrinterName := Printer.Printers[ Printer.PrinterIndex ];
end;
Cd sürücüsünün seri numarasi

function GetDiskVol******ID( cDriveName : char ) : DWord;
var dwTemp1, dwTemp2 : DWord;
begin GetVolumeInformation( PChar( cDriveName + ':\' ), Nil, 0, @Result, dwTemp2, dwTemp2, Nil, 0 );
end;

MessageDlg( '****** number: ' + Format( '%X', [ GetDiskVol******ID( 'E' ) ] ),
mtInformation, [mbOk], 0 );
Capslock'un durumunu ögrenme

function IsCapsLockOn : boolean;
begin Result := 0 <> (GetKeyState(VK_CAPITAL) and $01);
end;
Renklerin hex degerlerini bulma

function
TColorToHex( Color : TColor ) : string;
begin
Result := IntToHex( GetRValue( Color ), 2 ) + IntToHex( GetGValue( Color ), 2 ) + IntToHex( GetBValue( Color ), 2 );
end;
Cursor'u gizleyip tekrar gösterme
Showcursor(true); //cursoru göster
Showcursor(false); //cursoru gizle
internete bagli olup olmadiginizi anlamak


Forma bir tane tcp componenti ve bir tane buton yerlestirdikten sonra
Buttonnun içine asagidaki yazi yazilir.

if TCP1.LocalIp = '0.0.0.0' then
ShowMessage('Bagli degilsiniz!');
Html Sayfasini printerden çikarma

uses Printers;
var
EskCur: TCursor;
begin
EskCur := Screen.Cursor;
with Printer do begin
BeginDoc;
HTML1.AutoPrint(handle);
Title := HTML1.URL;
EndDoc;
end;
Screen.Cursor := EskCur;
end;
Menu'ye clicklenirken hangi tusla basildigini algilama (Control,Shift,Alt)

procedure TForm1.Menu1Click(Sender: TObject);
begin
if HiWord(GetKeyState(VK_SHIFT)) <> 0 then
Label1.Caption := 'Shift'
else
if HiWord(GetKeyState(VK_CONTROL)) <> 0 then
Label1.Caption := 'Control'
else
if HiWord(GetKeyState(VK_MENU)) <> 0 then
Label1.Caption := 'Alt'
else
Label1.Caption := 'None';
end;
Formu taskbardan gizleme

ShowWindow(Application.Handle, SW_HIDE);
Silinmis Dosyalari gösterme (DBF);

type
TForm1 = class(TForm)
Table1: TTable;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
CheckBox1: TCheckBox;
procedure CheckBox1Click(Sender: TObject);
public
procedure ShowDeleted(Table: TTable; ShowDeleted: Boolean);
end;

var
Form1: TForm1;

implementation

uses DBITYPES, DBIERRS, DBIPROCS;

{$R *.DFM}

procedure TForm1.ShowDeleted(Table: TTable; ShowDeleted: Boolean);
var
rslt: DBIResult;
szErrMsg: DBIMSG;
begin
Table.DisableControls;
try
Check(DbiSetProp(hDBIObj(Table.Handle), curSOFTDELETEON,
LongInt(ShowDeleted)));
finally
Table.EnableControls;
end;
Table.Refresh;
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
ShowDeleted(Table1, CheckBox1.Checked);
end;

end.
Form hakkinda kisa bilgi

Form1.Show; {Formu göster}
Form1.Showmodal { Formu showmodal olarak göster (Showmodal iken baska hiçbir forma ulasilamaz) }
myForm.Hide; {Formmu gizle }
myForm.Free; {Formu sil }
Formu seffaf hale getirilmesi

OnCreate olayina Brush.Style:=bsClear; yazmaniz yeterli.
ESC tusuyla programdan çikma

OnKeyPress olayina if Key = #27 then halt; yazin.

Bir Resim Dosyasi Açip içine Çizim Yapma

var
Resim: TBitmap;


Resim := TBitmap.Create;
with Resim do
try
Width := 100;
Height := 100;
with Canvas do
begin
Rectangle(0, 0, 100, 100);
MoveTo(0, 0);
LineTo(100, 100);
MoveTo(0, 100);
LineTo(100, 0);
end;
SaveToFile('test.bmp')
finally
Free;
end;
Asla Yazi Kutusundan Çikamazsin

procedure TForm1.Edit1Exit(Sender: TObject);
begin
showmessage('Asla yazi kutusundan çikamassin');
postmessage(handle,WM_NEXTDLGCTL,0,0);
postmessage(handle,WM_NEXTDLGCTL,1,0);
end;
Formun Boyutlarini Sabitleme

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;


type
TForm1 = class(TForm)
private
{ Private declarations }
public
procedure WMGetMinMaxInfo( var Message :TWMGetMinMaxInfo ); message WM_GETMINMAXINFO;
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.WMGetMinMaxInfo( var Message :TWMGetMinMaxInfo );
begin
with Message.MinMaxInfo^ do
begin
ptMaxSize.X := 200;
ptMaxSize.Y := 200;
ptMaxPosition.X := 99;
ptMaxPosition.Y := 99;
ptMinTrackSize.X := 100;

ptMinTrackSize.Y := 100;
ptMaxTrackSize.X := 300;
ptMaxTrackSize.Y := 300;
end;
Message.Result := 0;
inherited;
end;
Sayfa başına dön Aşağa gitmek
SessizAdam
Sponsor
Sponsor
SessizAdam


Mesaj Sayısı : 571
Kayıt tarihi : 09/05/09
Rep Puanı Rep Puanı : 47

Delphi Hakkında Herşey Empty
MesajKonu: Geri: Delphi Hakkında Herşey   Delphi Hakkında Herşey Icon_minitimePaz Mayıs 10, 2009 7:19 pm

Windows'a True Type Font Ekleme

uses Registry;
procedure TForm1.Button1Click(Sender: TObject);
var
reg: TRegistry;
b : bool;
begin CopyFile('C:\DOWNLOAD\FP000100.TTF', 'C:\WINDOWS\FONTS\FP000100.TTF', b);
reg := TRegistry.Create; reg.RootKey := HKEY_LOCAL_MACHINE;
reg.LazyWrite := false; reg.OpenKey('Software\Microsoft\Windows\CurrentVer sion\Fonts', false); reg.WriteString('TESTMICR (TrueType)','FP000100.TTF');
reg.CloseKey; reg.free;
AddFontResource('c:\windows\fonts\FP000100.TTF'); SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
RemoveFontResource('c:\windows\fonts\FP000100.TTF' ); SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
end;
Dosya Tasima
MoveFile('C:\Source\sourcefile.txt', 'C:\Dest\destfile.txt');
Trim Fonksiyonunun açilimi

unit StrFunc;
interface
procedure LTrim(var s : string);
procedure RTrim(var s : string)
;procedure Trim(var s : string);
implementation
{$R *.DFM}
procedure LTrim(var s : string);
begin
while ((length(s) > 0) and (s[1] = #32)) do Delete(s, 1, 1);
end;
procedure RTrim(var s : string);
begin
while ((length(s) > 0) and (s[Length(s)] = #32)) do Delete(s, Length(s), 1);
end;
procedure Trim(var s : string);
begin
LTrim(s); RTrim(s);
end;
Screen Capture Programi (Ekran Çalma)

Bir tane image componenti eklemek zorundasiniz.

procedure TForm1.FormCreate(Sender: TObject);
var
DCDesk: HDC;

begin
DCDesk:=GetWindowDC(GetDesktopWindow);
BitBlt(Image1.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,DCDesk, 0, 0,SRCCOPY);
ReleaseDC(GetDesktopWindow, DCDesk);
end;
Saga yada Sola hizalama function'u

function hiza(sagsol,yer:string;sayi:integer):string;
var
i,bosluk,uzunluk:integer;
begin
trim(yer); //Bosluklari temizle
uzunluk:=length(yer); //Verilen stringin uzunlugunu ögren
bosluk:=sayi-uzunluk; //Verilen sayidan uzunlugu çikar
if sagsol='sag' then begin //Sagami solami yaslancagini ögren
for i:=1 to bosluk do begin //Fark kadar saga bosluk ekle
yer:=' '+yer; //Bosluk ekle
end;
result:=yer; //Sonucu bildir
exit;
end;
if sagsol='sol' then
begin
trim(yer);
for i:=1 to bosluk do begin //Fark kadar sola ekle
yer:=yer+' ';
end;
result:=yer; //Sonucu bildir
exit;
end;
Sayiyi virgüllü yazma functionu

Bunun için forma birtana label componenti yerlestirin ve visible özeligini false yapin.

function frmt(yer:string):string;
var
s:string;
uzunluk:integer;
kalan,k,dgr:integer;
begin
s:='.';
uzunluk:=Length(yer);
dgr:=uzunluk div 3;
kalan:=uzunluk - (dgr*3);
label1.caption:=inttostr(kalan);
if yer='0' then
begin
yer:='0,';
result:=yer;
exit;
end;
if label1.caption<>'0' then
begin
insert(s,yer,kalan+1);
for k:=1 to dgr do begin
if k=dgr then begin
insert(',',yer,(kalan +(k*3)+k+1));
result:=yer;
exit;
end;
insert(s,yer,(kalan +(k*3)+k+1));
end;
end;
Comp degerindeki bir sayiyi string yapma

function Comp2Str(N: Comp): String;
var
TS: String;
begin
Str(N:0:0, TS);Comp2Str := TS;
end;
Dosya açilis yollari

Windows programinin açilisi
WinExec('C:\WINDOWS\NOTEPAD.EXE', SW_SHOWNORMAL);

Komut satiri ile birlikte :
WinExec('C:\WINDOWS\NOTEPAD.EXE C:\WINDOWS\WIN.INI', SW_SHOWNORMAL);

Pop Up dos kutusuyla :
WinExec('COMMAND.COM', SW_SHOWNORMAL);

Normal bir dos programinin komutla açilisi
WinExec('COMMAND.COM /C DIR *.*', SW_SHOWNORMAL);
Dekstop'i refresh etmek

procedure TForm1.Button1Click(Sender: TObject);
begin
SendMessage(FindWindow('Progman', 'Program Manager'), WM_COMMAND,$A065, 0);
end;
Programin windows'la birlikte açilmasi

uses Registry, {For Win32}
IniFiles; {For Win16}
{$IFNDEF WIN32}
const
MAX_PATH = 144;
{$ENDIF}
{For Win32}
procedure TForm1.Button1Click(Sender: TObject);
var
reg: TRegistry;
begin
reg := TRegistry.Create;
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.LazyWrite := false; reg.OpenKey('Software\Microsoft\Windows\CurrentVer sion\Run', false); reg.WriteString('My App', Application.ExeName);
reg.CloseKey;
reg.free;
end;
Formun ara çubugunu gizleme

procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowLong(Form1.Handle,GWL_STYLE,GetWindowLong (Handle,GWL_STYLE) and not WS_CAPTION);
Height := ClientHeight;
end;
Flash icon

var Flash : bool;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
FlashWindow(Form1.Handle, Flash);
FlashWindow(Application.Handle, Flash); Flash := not Flash;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Flash := False;
end;
Taskbar'in handle sayisi

hTaskbar := FindWindow('Shell_TrayWnd', Nil );
Exe yada Dll'deki iconlarin alinmasi
Uses shellapi;
procedure TForm1.FormCreate(Sender: TObject);
var TheIcon: TIcon;
begin TheIcon := TIcon.Create;
TheIcon.Handle := ExtractIcon(hInstance,'C:\dosya\dosya.EXE',0);
image1.picture.Icon:=Theicon;
end;
Windows ekranina çizim yapma

procedure TForm1.Button1Click(Sender: TObject);
var dc : hdc;
begin dc := GetDc(0);
MoveToEx(Dc, 0, 0, nil);
LineTo(Dc, 300, 300);
ReleaseDc(0, Dc);
end;

Edit1'deki yaziyi edit2'ye GetTextBuf yolluyla aktarma

procedure TForm1.Button1Click(Sender: TObject);
var
Buffer: PChar;
Size: Byte;
begin
Size := Edit1.GetTextLen; {Get length of string in Edit1}
Inc(Size); {Add room for null character}
GetMem(Buffer, Size); {Creates Buffer dynamic variable}
Edit1.GetTextBuf(Buffer,Size); {Puts Edit1.Text into Buffer}
Edit2.Text := StrPas(Buffer); {Converts Buffer to a Pascal-style string]
FreeMem(Buffer, Size); {Frees memory allocated to Buffer}

end;
Sayfa başına dön Aşağa gitmek
SessizAdam
Sponsor
Sponsor
SessizAdam


Mesaj Sayısı : 571
Kayıt tarihi : 09/05/09
Rep Puanı Rep Puanı : 47

Delphi Hakkında Herşey Empty
MesajKonu: Geri: Delphi Hakkında Herşey   Delphi Hakkında Herşey Icon_minitimePaz Mayıs 10, 2009 7:20 pm

Form1'in aynisini printerden çikartma

Form1.Print;
O anki sürücünün kapasitesini ve sürücüdeki bos yer miktarini bulmak;
DiskFree(0) //o anki sürücüdeki bos yer miktarini byte cinsinden döndürür.
DiskSize(0) //o anki sürücünün kapasitesini byte cinsinden döndürür.
DiskSize(0) div 1024 //o anki sürücünün kapasitesini KB cinsinden döndürür.
Bir menü ögesinin enabled özelligini false yapmak;
mainmenu1.items[0].items[1].enabled:=False;
Listbox veya Combobox'ta seçili bir veya birden fazla ögeyi seçilmemis duruma getirmek için;
Listbox1.itemindex:=-1;
Listbox, Combobox ve Memo'ya bir seferde ekleme yapmak;
Listbox1.items.SetText('aaa'#13'bbb'#13'ccc');
Memo1.Lines.SetText('aaa'#13'bbb'#13'ccc');
Harddiskin seri numarasinin bulunmasi;
procedure TForm1.Button1Click(Sender: TObject);
var
Volume******Number : DWORD;
MaximumComponentLength : DWORD;
FileSystemFlags : DWORD;
******Number : string;
begin
GetVolumeInformation('C:\',nil,0,@Volume******Numb er,MaximumComponentLength,FileSystemFlags,nil, 0);
******Number := IntToHex(HiWord(Volume******Number), 4) + '-' +IntToHex(LoWord(Volume******Number), 4);
Memo1.Lines.Add(******Number);
end;

Bir string'in basindaki ve sonundaki bosluklari atmak için;

Trim(string)
TrimLeft (string) //stringin sadece basindaki bosluklari atmak için
TrimRight (string) //stringin sadece sonundaki bosluklari atmak için

sifreli bir table için programin sifre istememesi için;

Table'in Active özelligini False yapin ve Form'un OnCreate olayina asagidaki kodu ekleyin
Session.AddPassword('sifre');
Table1.Active:=True;
Pencereyi minimize etmek;
Application.Minimize; //taskbar'a minimize
CloseWindow(handle)
WindowState := wsMinimized;

Windows'u kapatmak veya yeniden baslatmak(reboot);

var
i:dword;
begin
ExitWindowsEx(EWX_SHUTDOWN); //yeniden baslatmak için EWX_REBOOT
end;
Help menüsünden About kismina girin. Alt tusuna basili tutarak TEAM veya DEVELOPERS yazin. Delphi'yi gelistirenlerin isimlerini görebilirsiniz. Database Desktop'tada Help menüsünden About kismina girin ve delphi yazin.
ico'dan bmp'ye çevirme;
var
Icon : TIcon;
Bitmap : TBitmap;
begin
Icon := TIcon.Create;
Bitmap := TBitmap.Create;
Icon.LoadFromFile('c:\picture.ico');
Bitmap.Width := Icon.Width;
Bitmap.Height := Icon.Height;
Bitmap.Canvas.Draw(0, 0, Icon );
Bitmap.SaveToFile('c:\picture.bmp');
Icon.Free;
Bitmap.Free;
end;

CD-Rom sürücüyü açmak ve kapamak;

uses kismina MMSystem unitini ekleyin.
mciSendString('Set cdaudio door open wait', nil, 0, handle); //aç
mciSendString('Set cdaudio door closed wait', nil, 0, handle); //kapa
CapsLock ve Numlock tuslarini açip-kapama;
procedure TMyForm.Button1Click(Sender: TObject);
Var
KeyState : TKeyboardState;
begin
GetKeyboardState(KeyState);
if (KeyState[VK_CAPITAL] = 0) then
KeyState[VK_CAPITAL] := 1
else
KeyState[VK_CAPITAL] := 0;
SetKeyboardState(KeyState);
end;

Numlock tusu için VK_CAPITAL yerine VK_NUMLOCK yaziniz.

Menü'ye bitmap (resim) ekleme;

procedure TForm1.FormCreate(Sender: TObject);
var
Bmp1 : TPicture;
begin
Bmp1 := TPicture.Create;
Bmp1.LoadFromFile('c:\deneme\turkey.bmp');
SetMenuItemBitmaps( deneme1.Handle,
0,
MF_BYPOSITION,
Bmp1.Bitmap.Handle,
Bmp1.Bitmap.Handle);
end;
Alt + Tab ve Ctrl + Esc tuslarinin kullanilmaz hale getirilmesi;
var
OldVal : LongInt;
begin
SystemParametersInfo (97, Word (True), @OldVal, 0)
//Word(False) ile kullanirsaniz tuslari tekrar kullanabilirsiniz.
Windows ve System klasörlerinin bulunmasi
procedure TForm1.Button1Click(Sender: TObject);
var
a : Array[0..144] of char;
begin
GetWindowsDirectory(a, sizeof(a));
ShowMessage(StrPas(a));
GetSystemDirectory(a, sizeof(a));
ShowMessage(StrPas(a));
end;

Speakerdan Beep sesi çikartma
MessageBeep(word(-1));

Belgeler menüsüne bir dosya ekleme
uses kismina ShlOBJ unitini ekleyin;
procedure TForm1.Button1Click(Sender: TObject);
var
s : string;
begin
s := 'C:\DownLoad\deneme.html';
SHAddToRecentDocs(SHARD_PATH, pChar(s));
end;

Belgeler menüsünü temizleme
uses kismina ShlOBJ unitini ekleyin;
SHAddToRecentDocs(SHARD_PATH, nil);

Bir web adresini açma
uses kismina Shellapi unitini ekleyin;
ShellExecute(Handle,
'open',
'http://emreoz.********',
nil,
nil,
sw_ShowMaximized);

Bir DOS programini çalistirma ve çalismasi bitince penceresini kapatma
WinExec("command.com /c progdos.exe",sw_ShowNormal); http://progdos.exe çalistiriliyor.
//eger ikinci paremetreyi sw_Hide yaparsaniz kullanici programin çalistigini görmez.

Uygulamanizin Görev Çubugundaki butonunu gizleme
Uygulamanizin Görev Çubugundaki butonunu gizlemek için programinizin ana formunun OnCreate olayina asagidaki kodu yazin;
SetWindowLong(Application.Handle,GWL_EXSTYLE, WS_EX_TOOLWINDOW);

Ekran koruyucusunu kapatmak ve açmak
//kapatmak için
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE,
0,
nil,
0);
//açmak için
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE,
1,
nil,
0);

Alt+F4 tus kombinasyonuyla programin kapanmamasi için
Formun OnCreate olayina;
KeyPreview := true;
Formun OnKeyDown olayina;
if ((ssAlt in Shift) and (Key = VK_F4)) then
Key := 0;

Hareketli imleç(animated cursor)leri kullanma
procedure TForm1.Button1Click(Sender:TObject);
var
h : THandle;
begin
h := LoadImage(0,
'C:\TheWall\Magic.ani',
IMAGE_CURSOR,
0,
0,
LR_DEFAULTSIZE or
LR_LOADFROMFILE);
if h = 0 then ShowMessage('Cursor not loaded') else begin
Screen.Cursors[1] := h;
Form1.Cursor := 1;
end;
end;
Sayfa başına dön Aşağa gitmek
SessizAdam
Sponsor
Sponsor
SessizAdam


Mesaj Sayısı : 571
Kayıt tarihi : 09/05/09
Rep Puanı Rep Puanı : 47

Delphi Hakkında Herşey Empty
MesajKonu: Geri: Delphi Hakkında Herşey   Delphi Hakkında Herşey Icon_minitimePaz Mayıs 10, 2009 7:20 pm

Windows lisans bilgilerinin (isim ve sirket) bulunmasi
uses kismina Registry unitini ekleyin;
procedure TForm1.Button1Click(Sender:TObject);
var
reg: TRegIniFile;
begin
reg := TRegIniFile.create('SOFTWARE\MICROSOFT\MS SETUP (ACME)\');
Memo1.Lines.Add(reg.ReadString('USER INFO',
'DefName',
'Emre ÖZ'));
Memo1.Lines.Add(reg.ReadString('USER INFO',
'DefCompany',
'Bilgisayar Bilimleri Müh.'));
reg.free;
end;

Çok Satirli ipucu
procedure TForm1.FormCreate(Sender: TObject);
begin
SpeedButton1.Hint:='Çok satirli ipucunu '+chr(13)+
'mutlaka denemelisiniz '+chr(13)+
'çok güzel';
end;

Bir klasörü ve onun altindaki tüm dosyalari ve klasörleri silme
Ancak salt okunur (read only) özelligi olan ve kullanimda olan dosyalar silinmez.
procedure TForm1.Button1Click(Sender: TObject);
var
DirInfo: TSearchRec;
r : Integer;
begin
r := FindFirst('C:\Download\Test\*.*', FaAnyfile, DirInfo);
while r = 0 do begin
if ((DirInfo.Attr and FaDirectory <> FaDirectory) and
(DirInfo.Attr and FaVolumeId <> FaVolumeID)) then
if DeleteFile(pChar('C:\Download\test\' + DirInfo.Name))
= false then
ShowMessage('C:\Download\test\'+DirInfo.Name+' silinemiyor!!!');
r := FindNext(DirInfo);
end;
SysUtils.FindClose(DirInfo);
if RemoveDirectory('C:\Download\Test') = false then
ShowMessage('C:\Download\test klasörü silinemiyor!!!');
end;

Baslat butonunu gizlemek veya kullanilmaz hale getirmek
procedure TForm1.Button1Click(Sender: TObject);
var
Rgn : hRgn;
begin
// Baslat butonunu gizle
Rgn := CreateRectRgn(0, 0, 0, 0);
SetWindowRgn(FindWindowEx(FindWindow('Shell_TrayWn d', nil),
0,
'Button',
nil),
Rgn,
true);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
//Gizlenen Baslat butonunu eski haline döndürmek için
SetWindowRgn(FindWindowEx(FindWindow('Shell_TrayWn d', nil),
0,
'Button',
nil),
0,
true);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
//Baslat butonunu kullanilmaz yap
EnableWindow(FindWindowEx(FindWindow('Shell_TrayWn d', nil),
0,
'Button',
nil),
false);
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
//Kullanilmaz yapilan Baslat butonunu eski haline getirmek için
EnableWindow(FindWindowEx(FindWindow('Shell_TrayWn d', nil),
0,
'Button',
nil),
true);
end;

Windows Gezginini istediginiz bir klasörle açma
uses kismina Shellapi unitini ekleyin.

ShellExecute(0,
'explore',
'C:\WINDOWS', //açmak istediginiz dizin
nil,
nil,
SW_SHOWNORMAL);

Duvar kagidini degistirmek
var
s: string;
begin
s := 'c:\windows\athena.bmp';
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, PChar(s),0);

Form'un arka kismina bir resmi dösemek
Bitmap: TBitmap;

procedure TForm1.FormCreate(Sender: TObject);
begin
Bitmap := TBitmap.Create;
Bitmap.LoadFromFile('C:\WINDOWS\cars.BMP');
end;
Sayfa başına dön Aşağa gitmek
SessizAdam
Sponsor
Sponsor
SessizAdam


Mesaj Sayısı : 571
Kayıt tarihi : 09/05/09
Rep Puanı Rep Puanı : 47

Delphi Hakkında Herşey Empty
MesajKonu: Geri: Delphi Hakkında Herşey   Delphi Hakkında Herşey Icon_minitimePaz Mayıs 10, 2009 7:20 pm

procedure TForm1.FormPaint(Sender: TObject);
var
X, Y, W, H: LongInt;
begin
with Bitmap do begin
W := Width;
H := Height;
end;
Y := 0;
while Y < Height do begin
X := 0;
while X < Width do begin
Canvas.Draw(X, Y, Bitmap);
Inc(X, W);
end;
Inc(Y, H);
end;
end;

Bir Denetim Masasi uygulamasini çalistirmak
Control Panel uygulamalari Windows\System klasörü altinda bulunur. *.CPL uzantili dosyalardir. Bu uygulamalari Control.Exe programi ile çalistirabilirsiniz. Bazi Control Panel uygulamalari Windows\System klasöründe bulunmaz. Bunlarin ismini vererek çalistirabilirsiniz.

WinExec('C:\WINDOWS\CONTROL.EXE TIMEDATE.CPL', sw_ShowNormal);
WinExec('C:\WINDOWS\CONTROL.EXE MOUSE', sw_ShowNormal);
WinExec('C:\WINDOWS\CONTROL.EXE PRINTERS', sw_ShowNormal);

Sayilari virgüllerle yazmak
Sayi windows'unuz ayarina göre 12.345.678 veya 12,345,678 seklinde gösterilir.
procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
begin
i := 12345678;
Memo1.Lines.Add(FormatFloat('#,', i));

Sistem Tarihini ve Saatini Degistirmek
Sistemin tarihini ve saatini degistirmek için SetLocalTime fonksiyonunu kullanabilirsiniz.
var
t:TSystemTime;
begin
t.wYear:=1998;
t.wMonth:=5;
t.wDay:=23;
t.wHour:=12;
t.wMinute:=34;
SetLocalTime(t);
end;

Fareyi mesgul sekilde göstermek
try
Screen.Cursor := crHourGlass;
{buraya kodunuzu yazin...}
finally
Screen.Cursor := crDefault;
end;
Application.ProcessMessages;

Dos programi kullanmak için;
WinExec('command.com /c progdos.exe',sw_ShowNormal);

Çevirme
Edit1.OnChange := NIL;
if Edit1.Text = 'Emre ÖZ' then
Edit1.Text := 'Emre';
Edit1.OnChange := Edit1Change;

ilk harf büyük digerleri küçük
Edit1'e yazilan yazinin ilk harfini büyük diger harflerini küçük yapiyor.
var
OldStart : Integer;
begin
With Edit1 do
if Text <> '' then begin
OnChange := NIL;
OldStart := SelStart;
Text := UpperCase(Copy(Text,1,1))+LowerCase(Copy(Text,2,Le ngth(Text)));
SelStart := OldStart;
OnChange := Edit1Change;
end;
end;

Taskbar gizleme
procedure hideTaskbar;
var
wndHandle : THandle;
wndClass : array[0..50] of Char;
begin
StrPCopy(@wndClass[0], 'Shell_TrayWnd');
wndHandle := FindWindow(@wndClass[0], nil);
ShowWindow(wndHandle, SW_HIDE);
end;

procedure showTaskbar;
var
wndHandle : THandle;
wndClass : array[0..50] of Char;
begin
StrPCopy(@wndClass[0], 'Shell_TrayWnd');
wndHandle := FindWindow(@wndClass[0], nil);
ShowWindow(wndHandle, SW_RESTORE);
end;

Ses kaydetme
Bu program mikrofondan sesi alip bir wav dosyasi içine kayit ediyor.

uses
MMSystem,
WinCrt;
function RecordSound(MMSecs: LongInt): LongInt;
var
DeviceID: Word;
Return: LongInt;
MciOpen: TMCI_Open_Parms;
MciRecord: TMCI_Record_Parms;
MciPlay: TMCI_Play_Parms;
MciSave: TMCI_SaveParms;
Result2: LongInt;
Flags: Word;

begin
MciOpen.lpstrDeviceType := 'waveaudio';
MciOpen.lpstrElementName := '';
Flags := Mci_Open_Element or Mci_Open_Type;
Result2 := MciSendCommand(0, MCI_OPEN, Flags, LongInt(@MciOpen));
DeviceID := MciOpen.wDeviceId;

WriteLn('Kayit');
MciRecord.dwTo := MMSecs;
Flags := Mci_To or Mci_Wait;
Result2 := MciSendCommand(DeviceID, Mci_Record, Flags, LongInt(@MciRecord));

WriteLn('Durdur');
mciPlay.dwFrom := 0;
Flags := Mci_From or Mci_Wait;
MciSendCommand(DeviceId, Mci_Play, Flags, LongInt(@MciPlay));

mciSave.lpfileName := 'Ses.Wav';
Flags := MCI_Save_File or Mci_Wait;
Result := MciSendCommand(DeviceID, MCI_Save, Flags, LongInt(@MciSave));
MciSendCommand(DeviceID, Mci_Close, 0, LongInt(nil));

end;

begin
WriteLn('Basla');
RecordSound(10000);
WriteLn('Bitir');

DELPHi NASIL EXE YAPIYOR ?

Delphi , delphi ile birlikte gelen dcc.exe ile projeleri derliyor. (Delphi 3'de dcc32.exe)
Örnek olarak
dcc /cw /b uls.dpr
komutlar :
/cw : Windows için,
/cd : Dos için,
/cp: Korumali mod için.

/b: Hepsini tekrar olustur,
/m: Hepsinin güncel oldugundan emin ol.

BRC Nedir ?

Brc Res dosyalarini derliyor.
Bir res dosyasi açin ,(Notepad ile)
içine Icon ICON "emre.ico" yazin. (forumtr.ico dosyasi ayni klasörde bulunmali. )
BRC -r forumtr.RES olarak derleyin.
Delphideki projenizin basinada {$ forumtr.rc} yazin. Böylece ikon dosyalarini tasimadan kullana bilirsiniz.
Sadece icon degil , ayrica BITMAP,TEXT de kullana bilirsiniz.
Sayfa başına dön Aşağa gitmek
BANNED
Level 1
Level 1
avatar


Mesaj Sayısı : 14
Kayıt tarihi : 16/05/09
Rep Puanı Rep Puanı : 0

Delphi Hakkında Herşey Empty
MesajKonu: Geri: Delphi Hakkında Herşey   Delphi Hakkında Herşey Icon_minitimeC.tesi Mayıs 16, 2009 9:11 am

ne yalan sölim bişe anlamadım xD
Sayfa başına dön Aşağa gitmek
 
Delphi Hakkında Herşey
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
» Delphi Charcase
» DeLphi Hakkında Geniş bilgi ve DersLer.
» DELPHİ DLL İLE ŞİFRELEME
» DELPHİ DLL İLE DEMO
» DELPHİ DLL İLE ŞİFRELEME

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
ExtraForum - 1299 Private Serverlar - Server Dosya Paylaşımları :: Delphi-
Buraya geçin:  

weyyo

knight online serverlar

metin2 serverlar

silkroad serverlar