|
| Delphi Hakkında Herşey | |
| | Yazar | Mesaj |
---|
SessizAdam Sponsor
Mesaj Sayısı : 571 Kayıt tarihi : 09/05/09 Rep Puanı : 47
| Konu: Delphi Hakkında Herşey Paz 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. ________Kullanıcı İmzası_________ | |
| | | SessizAdam Sponsor
Mesaj Sayısı : 571 Kayıt tarihi : 09/05/09 Rep Puanı : 47
| Konu: Geri: Delphi Hakkında Herşey Paz 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. ________Kullanıcı İmzası_________ | |
| | | SessizAdam Sponsor
Mesaj Sayısı : 571 Kayıt tarihi : 09/05/09 Rep Puanı : 47
| Konu: Geri: Delphi Hakkında Herşey Paz 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. ________Kullanıcı İmzası_________ | |
| | | SessizAdam Sponsor
Mesaj Sayısı : 571 Kayıt tarihi : 09/05/09 Rep Puanı : 47
| Konu: Geri: Delphi Hakkında Herşey Paz 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. ________Kullanıcı İmzası_________ | |
| | | SessizAdam Sponsor
Mesaj Sayısı : 571 Kayıt tarihi : 09/05/09 Rep Puanı : 47
| Konu: Geri: Delphi Hakkında Herşey Paz 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. ________Kullanıcı İmzası_________ | |
| | | SessizAdam Sponsor
Mesaj Sayısı : 571 Kayıt tarihi : 09/05/09 Rep Puanı : 47
| Konu: Geri: Delphi Hakkında Herşey Paz 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. ________Kullanıcı İmzası_________ | |
| | | SessizAdam Sponsor
Mesaj Sayısı : 571 Kayıt tarihi : 09/05/09 Rep Puanı : 47
| Konu: Geri: Delphi Hakkında Herşey Paz 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;
________Kullanıcı İmzası_________ | |
| | | SessizAdam Sponsor
Mesaj Sayısı : 571 Kayıt tarihi : 09/05/09 Rep Puanı : 47
| Konu: Geri: Delphi Hakkında Herşey Paz 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; ________Kullanıcı İmzası_________ | |
| | | SessizAdam Sponsor
Mesaj Sayısı : 571 Kayıt tarihi : 09/05/09 Rep Puanı : 47
| Konu: Geri: Delphi Hakkında Herşey Paz 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; ________Kullanıcı İmzası_________ | |
| | | SessizAdam Sponsor
Mesaj Sayısı : 571 Kayıt tarihi : 09/05/09 Rep Puanı : 47
| Konu: Geri: Delphi Hakkında Herşey Paz 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; ________Kullanıcı İmzası_________ | |
| | | SessizAdam Sponsor
Mesaj Sayısı : 571 Kayıt tarihi : 09/05/09 Rep Puanı : 47
| Konu: Geri: Delphi Hakkında Herşey Paz 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; ________Kullanıcı İmzası_________ | |
| | | SessizAdam Sponsor
Mesaj Sayısı : 571 Kayıt tarihi : 09/05/09 Rep Puanı : 47
| Konu: Geri: Delphi Hakkında Herşey Paz 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; ________Kullanıcı İmzası_________ | |
| | | SessizAdam Sponsor
Mesaj Sayısı : 571 Kayıt tarihi : 09/05/09 Rep Puanı : 47
| Konu: Geri: Delphi Hakkında Herşey Paz 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. ________Kullanıcı İmzası_________ | |
| | | BANNED Level 1
Mesaj Sayısı : 14 Kayıt tarihi : 16/05/09 Rep Puanı : 0
| Konu: Geri: Delphi Hakkında Herşey C.tesi Mayıs 16, 2009 9:11 am | |
| ne yalan sölim bişe anlamadım xD | |
| | | | Delphi Hakkında Herşey | |
|
Similar topics | |
|
| Bu forumun müsaadesi var: | Bu forumdaki mesajlara cevap veremezsiniz
| |
| |
| |