Programlama yapalım ve Öğrenelim. - Delphi Eğitim49
  Ana Sayfa
  .NET Eğitim Notları
  Visual C# .NET Örnek Kodları
  VisualBasic.NET Örnek Kodları
  J# Örnekleri
  ASP.NET Örnek Kodları
  Delphi Eğitim
  => Delphi Eğitim1
  => Delphi Eğitim2
  => Delphi Eğitim3
  => Delphi Eğitim4
  => Delphi Eğitim5
  => Delphi Eğitim6
  => Delphi Eğitim7
  => Delphi Eğitim8
  => Delphi Eğitim9
  => Delphi Eğitim10
  => Delphi Eğitim11
  => Delphi Eğitim13
  => Delphi Eğitim14
  => Delphi Eğitim15
  => Delphi Eğitim16
  => Delphi Eğitim17
  => Delphi Eğitim18
  => Delphi Eğitim19
  => Delphi Eğitim20
  => Delphi Eğitim21
  => Delphi Eğitim22
  => Delphi Eğitim23
  => Delphi Eğitim24
  => Delphi Eğitim25
  => Delphi Eğitim26
  => Delphi Eğitim27
  => Delphi Eğitim28
  => Delphi Eğitim29
  => Delphi Eğitim30
  => Delphi Eğtim31
  => Delphi Eğitim32
  => Delphi Eğitim33
  => Delphi Eğitim34
  => Delphi Eğitim35
  => Delphi Eğitim36
  => Delphi Eğitim37
  => Delphi Eğitim38
  => Delphi Eğitim39
  => Delphi Eğitim40
  => Delphi Eğitim41
  => Delphi Eğitim42
  => Delphi Eğitim43
  => Delphi Eğitim44
  => Delphi Eğitim45
  => Delphi Eğitim46
  => Delphi Eğitim47
  => Delphi Eğitim48
  => Delphi Eğitim49
  => Delphi Eğitim50
  => Delphi Eğitim51
  => Delphi Eğitim52
  => Delphi Eğitim53
  => Delphi Eğitim54
  => Delphi Eğitim55
  => Delphi Eğitim56
  => Delphi Eğitim57
  => Delphi Eğitim58
  => Delphi Eğitim59
  => Delphi Eğitim60
  => Delphi Eğitim61
  => Delphi Eğitim62
  => Delphi Eğitim63
  => Delphi Eğitim64
  => Delphi Eğitim65
  => Delphi Eğitim66
  => Delphi Eğitim67
  => Delphi Eğitim68
  => Delphi Eğitim69
  => Delphi Eğitim70
  => Delphi Eğitim71
  => Delphi Eğitim72
  => Delphi Eğitim73
  => Delphi Eğitim74
  => Delphi Eğitim75
  => Delphi Eğitim76
  => Delphi Eğitim77
  => Delphi Eğitim78
  => Delphi Eğitim79
  => Delphi Eğitim80
  => Delphi Eğitim81
  => Delphi Eğitim82
  => Delphi Eğitim83
  => Delphi Eğitim84
  => Delphi Eğitim85
  => Delphi Eğitim86
  => Delphi Eğitim87
  => Delphi Eğitim88
  => Delphi Eğitim89
  => Delphi Eğitim90
  => Delphi Eğitim91
  => Delphi Eğitim92
  => Delphi Eğitim93
  => Delphi Eğitim94
  => Delphi Eğitim95
  => Delphi Eğitim96
  => Delphi Eğitim97
  => Delphi Eğitim98
  => Delphi Eğitim99
  => Delphi Eğitim100
  => Delphi Eğitim101
  => Delphi Eğitim102
  => Delphi Eğitim103
  => Delphi Eğitim104
  => Delphi Eğitim105
  => Delphi Eğitim106
  => Delphi Eğitim107
  => Delphi Eğitim108
  => Delphi Eğitim109
  => Delphi Eğitim110
  => Delphi Eğitim111
  => Delphi Eğitim112
  => Delphi Eğitim113
  => Delphi Eğitim114
  => Delphi Eğitim115
  => Delphi Eğitim116
  => Delphi Eğitim117
  => Delphi Eğitim118
  => Delphi Eğitim119
  => Delphi Eğitim120
  => Delphi Eğitim121
  => Delphi Eğitim122
  => Delphi Eğitim123
  => Delphi Eğitim124
  => Delphi Eğitim125
  => Delphi Eğitim126
  => Delphi Eğitim127
  => Delphi Eğitim128
  => Delphi Eğitim129
  => Delphi Eğitim130
  => Delphi Eğitim131
  => Delphi Eğitim132
  => Delphi Eğitim133
  => Delphi Eğitim134
  => Delphi Eğitim135
  => Delphi Eğitim136
  => Delphi Eğitim137
  => Delphi Eğitim138
  => Delphi Eğitim139
  => Delphi Eğitim140
  => Delphi Eğitim141
  => Delphi Eğitim142
  => Delphi Eğitim143
  => Delphi Eğitim144
  => Delphi Eğitim145
  => Delphi Eğitim146
  => Delphi eğitim147
  => Delphi Eğitim148
  => Delphi Eğitim149
  => Delphi Eğitim150
  => Delphi Eğitim151
  => Delphi Eğitim152
  => Delphi Eğitim153
  => Delphi Eğitim154
  => Delphi Eğitim155
  => Delphi Eğitim156
  => Delphi Eğitim157
  => Delphi Eğitim158
  => Delphi Eğitim159
  => Delphi Eğitim160
  => Delphi Eğitim161
  => Delphi Eğitim162
  => Delphi Eğitim164
  => Delphi Eğitim165
  => Delphi Eğitim166
  => Delphi Eğitim167
  => Delphi Eğitim168
  => Delphi Eğitim169
  => Delphi Eğitim170
  => Delphi Eğitim171
  => Delphi Eğitim172
  => Delphi Eğitim173
  => Delphi Eğitim174
  => Delphi Eğitim175
  => Delphi Eğitim176
  => Delphi Eğitim177
  => Delphi Eğitim178
  => Delphi Eğitim179
  => Delphi Eğitim180
  => Delphi Eğitim181
  => Delphi Eğitim182
  => Delphi Eğitim183
  => Delphi Eğitim184
  => Delphi Eğitim185
  => Delphi Eğitim186
  => Delphi Eğitim187
  => Delphi Eğitim188
  => Delphi Eğitim189
  => Delphi Eğitim190
  => Delphi Eğitim191
  => Delphi Eğitim192
  => Delphi Eğitim193
  => Delphi Eğitim194
  => Delphi Eğitim195
  => Delphi Eğitim196
  => Delphi Eğitim197
  => Delphi Eğitim198
  => Delphi Eğitim199
  => Delphi Eğitim200
  => Delphi Eğitim201
  => Delphi Eğitim202
  => Delphi Eğitim203
  => Delphi Eğitim204
  => Delphi Eğitim205
  => Delphi Eğitim206
  => Delphi Eğitim207
  => Delphi Eğitim208
  => Delphi Eğitim209
  => Delphi Eğitim210
  => Delphi Eğitim211
  => Delphi Eğitim212
  => Delphi Eğitim213
  => Delphi Eğitim214
  => Delphi Eğitim215
  => Delphi Eğitim216
  => Delphi Eğitim217
  => Delphi Eğitim218
  => Delphi Eğitim219
  => Delphi Eğitim220
  => Delphi Eğitim221
  => Delphi Eğitim222
  => Delphi Eğitim223
  => Delphi Eğitim224
  => Delphi Eğitim225
  => Delphi Eğitim226
  => Delphi Eğitim227
  => Delphi Eğitim228
  => Delphi Eğitim229
  => Delphi Eğitim230
  => Delphi Eğitim231
  => Delphi Eğitim232
  => Delphi Eğitim233
  => Delphi Eğitim234
  => Delphi Eğitim235
  => Delphi Eğitim236
  => Delphi Eğitim237
  => Delphi Eğitim238
  => Delphi Eğitim239
  => Delphi Eğitim240
  => Delphi Eğitim241
  => Delphi Eğitim242
  İletişim

Kayitli kullanici adi

procedure TForm1.Edit1Change(Sender: TObject);

begin

if edit1.Text='' then begin

listbox1.Items.Clear;

end;

listbox1.Items.Clear;

uzun:=length(edit1.Text);

table1.First;

while not table1.Eof do begin

ad:=copy(edit1.Text,1,uzun);

ad1:=copy(Table1Ad.Text,1,uzun);

if(ad=ad1)then begin

listbox1.Left:=240;

listbox1.Top:=60;

edit4.Visible:=false;

checkbox1.Visible:=false;

listbox1.Visible:=true;

listbox1.Items.Add(Table1Ad.Text);

end;

table1.Next;

end;

end;

 

Delphi - .....................................

 

Kombinasyon

Bu program basit olmasına rağmen önemli: Çünkü hatasız olarak yazdığım ilk

 program...

//Önce forma şunları ekleyin :

//1 memo, 2 edit, 3 button.

//Şimdi aşağıdaki kodu uygun bir şekilde yapıştırın.

 

procedure TForm1.Button2Click(Sender: TObject);

begin

Halt;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

var n,r,p,i:Integer; c:Double;  n1,r1,p1:Extended;

begin

n:=StrToInt(Edit1.Text);

r:=StrToInt(Edit2.Text);

p:=n-r;

n1:=1; r1:=1; p1:=1;

for i:=2 to n do n1:=n1*i;

for i:=2 to r do r1:=r1*i;

for i:=2 to p do p1:=p1*i;

c:=n1/r1/p1;

Edit3.Text:=FloatToStr(n1);

Edit5.Text:=FloatToStr(r1);

Edit4.Text:=FloatToStr(c);

Memo1.Text:='Kombinasyon programını kullandığınız için teşekkür ederiz. Umarız memnun kalmışsınızdır... Yeni işlem yapmak için Temizle düğmesine basınız! Çıkmak için Tamam düğmesine tıklayınız!';

end;

 

procedure TForm1.FormCreate(Sender: TObject);

begin

Button1.Default:=True;

memo1.Text:='Kombinasyon programına hoş geldiniz! İstediğiniz n değerinin r li kombinasyonunu, n! ve r! değerlerini öğrenebilirsiniz!';

Edit1.Text:=";

Edit2.Text:=";

Edit3.Text:=";

Edit4.Text:=";

Edit5.Text:=";

end;

 

procedure TForm1.Button3Click(Sender: TObject);

begin

Edit1.Text:=";

Edit2.Text:=";

Edit3.Text:=";

Edit4.Text:=";

Edit5.Text:=";

memo1.Text:='Kombinasyon programını tekrar kullanıyorsunuz. Bu ilgiye layık olmaya çalışacağız. Teşekkür ederiz. Bizi sizler yarattınız!...';

end;

end.

 

//Yeni programlar yazdığımda ve sorularım olduğunda

//görüşürüz...

 

Delphi - .....................................

 

Düşük Seviyeli BDE

Borland Database Engine

Delphi deki veritabanı verilerine erişim yoludur. Bu motor talepleri delphi programlarınızdan alır ve uygun bir sürücüyü kullanarak bunları kullandığınız spesifik veritabanı tarafından tanınan komutlara tercüme eder.

BDE aslında programcılara daha çok IDAPI (Independent Database Application Programming Interface, Bağımsız veritabanı uygulama programlama arabirimi) olarak bilinen düşük seviyeli bir api sunan bir dizi dll dir.

 

Borland ilk olarak programcıların pascal ve c++ dillerini kullanarak paradox ile etkileşim kurmalarını sağlamak amacı ile bir veritabanı motoru geliştirmişti.Buna Paradox Engine adını vermişlerdi. Daha sonra Microsoft ODBC spesifikasyonunu çıkarkarttı ve Borland da IBM, Novell, Wordperfect ve başka birkaç şirketle birlikte buna rakip olan bir standardı destekledi. Bu standarda ilk önce ODAPI, daha sonrada IDAPI adı verildi; ancak taraftarları bu projeden ayrıldılar, bu yüzden borland da ona Borland Database Engine adını verdi. Böylece artık paradox yaklaşımı için donatılmış olan ve sadece Borland tarafından desteklenen, veritabanından bağımsız bir standardımız bulunuyor.

 

Elbette Delphi programcıları genellikle (Windows API'ı da doğrudan çağırmadıkları gibi) bu API'nin fonksiyonlarını çağırmazlar, bunun yerine TTable, TQuery, TDatabase ve TSession gibi en sık kullanılan çağrıları içeren bileşenleri kullanırlar. Sadece veri bilinçli bileşenler VCL nin bir parçasıdır ve doğrudan doğruya BDE ile ilgili değillerdir.

 

Bununla beraber bazen, Windows API fonksiyonlarında da olduğu gibi BDE'nin Delphi bileşenlerinde bulunmayan üşük seviyeli bazı özelliklerini kullanmanız da gerekebilir.

 

BDE yardım dosyası BDE ile birlikte yüklenir ve artık Delphi yardım dosyasının geri kalan kısmı ile de bağlanmış bulunuyor. Bu dosyayı bulamazsanız Program FilesBorlandCommon FilesBde dizinine (ya da BDE yi yüklediğiniz dizine) de bakabilirsiniz.

 

BDE ye erişim yapan bütün uygulamalar, ona bağımsız bir bağlantısı olan bir istek birimi olarak görülür. Bu bağlantı genellikle bir oturum olarak açıklanır; VCL içindeki global Session bileşeni de size varsayılan bir bağlantı sunar, bu yüzden genellikle bu konuya dikkat etmeniz gerekmez. Teknik olarak global Session bileşeni bu işi yapmak için DBiInit fonksiyonunu çağırır.

 

BDE her istek birimi, ya da oturumdan gelen talepleri bağımsız bir içerik kullanarak yönetir. Bir uygulama bile birden fazla TSession bileşeni kullanarak birden fazla bağımsız bağlantı isteyebilir. Bu durum genellikle çok kanallı veritabanı erişimi için gerekli olur, çünkü BDE bağımsız bir içerik oluşturmadığı takdirde (sadece çok kanallı bir uygulamada gerçekleşecek biçimde) eşzamanlı iki talep aldığında şaşırabilir.

 

Düşük seviyeli BDE çağrılarında genellikle çok sayıda (Windows tutamaçları ile ilgili olmayan özgün tutamaçlar biçiminde) parametre kullanılması gerekir. Aşağıda bunların kısa birl listesi yer alıyor :

 

Veritabanı tutamacı (HDBIDB), uygulamanın üzerinde çalıştığı etkin veritabanının tutamacıdır. Bu tutamacın değerini veri kümesi bileşenlerinin DBHandle özelliğini veya TDatabase bileşenininin Handle özelliğini kullanarak elde edebilirsiniz.

 

İmleç tutamacı (HDBICur), sonuç kümesinin, ya da tablo ya da sorgunun görünümünün tutamacıdır. İmleç teriminin de gösterdiği gibi, bu görünümde veriler arasında dolaşabilirsiniz çünkü imleç verisine erişim bir seferde bir kayıt şeklinde gerçekleşir.

 

Veritabanı verilerine erişim için bir imleç kullanımı, SQL hizmet birimlerinde sık karşılaşılan bir uygulamadır. BDE ise buna karşın aynı tekniği bütün veri tabanlarına homojen bir erişim sunmak için Paradox ve diğer yerel tablolara da uygular. Paradox, dBase ve diğer yerel formatlar geleneksel olarak sadece kayıt yönelimli bir yaklaşıma sahiptir.

 

Bir Bde Fonksiyonunu her çağırışınızda size bir hata kodu döndürür. Bu hata kodlarını kontrol edilmeleri (ve gerektiği takdirde bir istisna çıkartılması) son derece önemlidir; bunu VCL in (DBTables unitinde tanımlanmış olan) Check fonksiyonunu çağırarak kolayca gerçekleştirebilirsiniz.

 

Teorik olarak komple bir delphi veritabanı uygulamasını veri erişim bileşenleri yerine doğrudan BDE çağrıları kullanarak oluşturmak bile olasıdır, ancak çok özel durumlar hariç, bu yaklaşım çok az faydası olan, ya da hiç faydası olmayan fazladan bir işi de beraberinde getirir.

 

Delphi - .....................................

 

ADO ile ACCESS VERİTABANINA B AĞLANTI

ADO ile ACCESS VERİTABANINA B AĞLANTI

--------------------------------------------------------------------------------

Bu yazı kısaca ADO ile ilgili bilgi verdikten sonra bir ADOtable bileşeni ile Access Veritabanına nasıl bağlanılacağını anlatıyor.

ADO ile ACCESS BAĞLANTISI

 

Delphi ile veritabanı uygulamaları geliştiren hemen her kullanıcının ilk karşılaştığı veritabanı PARADOX tabloları olmuştur. Paradox bana göre bugün de SQL kullanımına olanak vermesi, tek bir tablonun güncellenmesiyle eski uygulama dağıtımlarının veritabanı desteğini kolaylaştırması ve inanılmaz hızı ile  local veritabanı uygulamaları için çekiciliğini ve kolaylığını sürdürüyor. Ancak, Paradoxun Access, Interbase gibi tek bir database yapısı içindeki tablolardan oluşmaması yukarıda belirttiğimiz olumlu yönüne karşın özellikle yedeklemede dağınıklılığıyla bazen sorunlar da yaratabilmektedir. Çok kullanıcılı veritabanı uygulamaları için Delphinin bize sunduğu üstelik ücretsiz bir İlişkisel Veritabanı olan Interbase dışında tek bacaklı veritabanı uygulamalarında Delphi 5 ve sonrası ile Delphi programcılarına sunulan yeni bir olanak Microsoftun yeni veritabanı sistemlerini Delphi programcıların kullanımına sunan ADO bileşenleridir. Bu bileşenler Microsoft Data Access Components (MDAC) yüklü bilgisayarlarda Access Veritabanı ile tek kullanıcılı hatta çok kullanıcılı uygulamalar geliştirmeyi kolaylaştırmakta, Win 98 ve sonrasıyla birlikte gelen MDAC karşı bilgisayarda varsayılan olarak zaten kurulu olduğundan ayrıca BDE yüklemeye gerek kalmamakta, kurulum dosyalarının boyutu örneğin 5 MB tan 2 MBlara düşmekte bu da bana göre ADO ve Access kullanımını çekici kılmaktadır. Ayrıca MS Access Database Desktop yanında kullanıcıya çok daha gelişmiş kolaylıklar, olanaklar ve konfor sunmaktadır.

 

ADO Bileşenleri:

 

 

 

resimde görüldüğü gibi ADO bileşenleri: sırasıyla ADConnection, ADOCommand, ADODataset, ADOTable, ADOQuery, ADOStoredProc, RDSConnectiondan oluşmaktadır. Delphi programcılarının uyum kolaylığı için sunulan ADOTable ve ADOQuerynin kullanımı ise ufak tefek farklılıklar dışında gerçekten ilginç, kolay ve  güzel. Bu yazımda ben ADOyu ilk kez kullanacaklara ADOTable bileşenini bir Access veritabanına nasıl bağlayacaklarını anlatacağım:

 

 

Forma yukarıda görüldüğü gibi bir ADOConnection, bir ADOTable ve bir bildiğimiz Datasource, DBGrid ve DBNavigator koyuyoruz.

 

 

ADOConnection bileşenini çift tıkladığımızda açılan diyalog penceresinde ConnectionString ile bağlantı için  Build butonunu tıklıyoruz.

 

 

Çıkan pencerede sağlayıcı olarak Microsoft Jet 4.0 OLE DB Provider’ı seçiyoruz.

 

 

 

Daha önce Accesste oluşturduğumuz örneğin Adres1.mdb adlı veritabanını seçip Test Connection adlı düğmeyi tıklıyoruz. Sorun yoksa Test connection succeeded. “ diyaloğunu göreceğiz. Diyalogları kapatıyoruz.

 

ADOConnection bileşeninin şifre ve kullanıcı adını soran-ki her zaman pek istenmiyor- diyaloğunun çıkmasını önlemek için LoginPromt “ özelliğine False değerini atayıp Connected” özelliğini True yapıyoruz. Sonuçta yaptığmız bu işlemlerle ADOConnection bileşeninin ConnectionString” özelliğine:

Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=C:MyprojectsAdres2_AdoAdres1.mdb;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=4;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False “ değerlerinin atandığını göreceksiniz. Aslında ADOTable bileşeninin ConnectionString özelliğini düzenleyip tabloyu doğrudan bağlamak ta mümkün ancak çok sayıda tablo kullanmak için en iyi çözüm Database bileşeninin kullanımındaki gibi tablo, query ve diğerlerini ADOConnection’a bağlamak olacaktır.

 

 

Artık Tablonun Connection özelliğine ADOConnection1’ı, Datasource1in Dataset özelliğine ADOTable1i, DBGridi ve DBavigatorun Datasource özeliğine Datasource1i atayıp ADOTable’ın Active özelliğini True yapabiliriz. Adres Defteri veritabanına bağlantımız gerçekleşmiştir.

 

Delphi - .....................................

 

MdI Not Defteri

unit Unit1;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, Menus;

 

type

  TForm1 = class(TForm)

    MainMenu1: TMainMenu;

    D1: TMenuItem;

    Yeni1: TMenuItem;

    A1: TMenuItem;

    Kaydet1: TMenuItem;

    N1: TMenuItem;

    k1: TMenuItem;

    Dzen1: TMenuItem;

    Kes1: TMenuItem;

    Kopyala1: TMenuItem;

    Yaptr1: TMenuItem;

    emizle1: TMenuItem;

    arihEkle1: TMenuItem;

    Zamanekle1: TMenuItem;

    AktifPencereyeEkle1: TMenuItem;

    HepsineEkle1: TMenuItem;

    AktifPencereyeEkle2: TMenuItem;

    HepsineEkle2: TMenuItem;

    Grnm1: TMenuItem;

    YazTipi1: TMenuItem;

    YazRengi1: TMenuItem;

    ArkaPlanRengi1: TMenuItem;

    Pencere1: TMenuItem;

    Basamakla1: TMenuItem;

    De1: TMenuItem;

    Yatay1: TMenuItem;

    Dikey1: TMenuItem;

    Kapat1: TMenuItem;

    HepsiniKapat1: TMenuItem;

    SatrNoEkle1: TMenuItem;

    OpenDialog1: TOpenDialog;

    SaveDialog1: TSaveDialog;

    FontDialog1: TFontDialog;

    ColorDialog1: TColorDialog;

    procedure Yeni1Click(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure Basamakla1Click(Sender: TObject);

    procedure Yatay1Click(Sender: TObject);

    procedure Dikey1Click(Sender: TObject);

    procedure Kapat1Click(Sender: TObject);

    procedure HepsiniKapat1Click(Sender: TObject);

    procedure Kes1Click(Sender: TObject);

    procedure Kopyala1Click(Sender: TObject);

    procedure Yaptr1Click(Sender: TObject);

    procedure emizle1Click(Sender: TObject);

    procedure AktifPencereyeEkle1Click(Sender: TObject);

    procedure AktifPencereyeEkle2Click(Sender: TObject);

    procedure HepsineEkle1Click(Sender: TObject);

    procedure HepsineEkle2Click(Sender: TObject);

    procedure YazTipi1Click(Sender: TObject);

    procedure YazRengi1Click(Sender: TObject);

    procedure ArkaPlanRengi1Click(Sender: TObject);

    procedure SatrNoEkle1Click(Sender: TObject);

  private

n:integer;

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

 

implementation

uses unit2;

{$R *.dfm}

 

procedure TForm1.Yeni1Click(Sender: TObject);

var

f:TForm2;

begin

f:=TForm2.Create(Self);

f.Caption:='Yeni ' + inttostr(n);

n:=n+1;

end;

 

procedure TForm1.FormCreate(Sender: TObject);

begin

n:=1;

end;

 

procedure TForm1.Basamakla1Click(Sender: TObject);

begin

Cascade;

end;

 

procedure TForm1.Yatay1Click(Sender: TObject);

begin

TileMode:=tbHorizontal;

Tile;

end;

 

procedure TForm1.Dikey1Click(Sender: TObject);

begin

TileMode:=tbVertical;

Tile;

end;

 

procedure TForm1.Kapat1Click(Sender: TObject);

begin

if ActiveMDIChild <> nil then

ActiveMDIChild.close;

 

end;

 

procedure TForm1.HepsiniKapat1Click(Sender: TObject);

var

i:integer;

begin

  for i:=MDIChildCount -1 downto 0 do

  MDIChildren[i].Close;

end;

 

procedure TForm1.Kes1Click(Sender: TObject);

begin

  if ActiveMDIChild = nil then

    exit;

  TForm2(ActiveMDIChild).Memo1.CutToClipboard;

end;

 

procedure TForm1.Kopyala1Click(Sender: TObject);

begin

if ActiveMDIChild = nil then

    exit;

  TForm2(ActiveMDIChild).Memo1.CopyToClipboard;

end;

 

procedure TForm1.Yaptr1Click(Sender: TObject);

begin

if ActiveMDIChild = nil then

    exit;

  TForm2(ActiveMDIChild).Memo1.PasteFromClipboard;

end;

 

procedure TForm1.emizle1Click(Sender: TObject);

begin

if ActiveMDIChild = nil then

    exit;

  TForm2(ActiveMDIChild).Memo1.Clear;

end;

 

procedure TForm1.AktifPencereyeEkle1Click(Sender: TObject);

begin

if ActiveMDIChild = nil then

    exit;

  TForm2(ActiveMDIChild).Memo1.Lines.Add(DatetoStr(Now));

  end;

 

procedure TForm1.AktifPencereyeEkle2Click(Sender: TObject);

begin

if ActiveMDIChild = nil then

    exit;

  TForm2(ActiveMDIChild).Memo1.Lines.Add(TimetoStr(Now));

end;

 

procedure TForm1.HepsineEkle1Click(Sender: TObject);

var

i:integer;

begin

  for i := 0 to MDIChildCount -1 do

    Tform2(MDIChildren[i]).Memo1.Lines.Add(DatetoStr(Now));

end;

 

procedure TForm1.HepsineEkle2Click(Sender: TObject);

var

i:integer;

begin

for i:= 0 to MDIChildCount -1 do

  TForm2(MDIChildren[i]).Memo1.Lines.Add(Timetostr(Now));

end;

 

procedure TForm1.YazTipi1Click(Sender: TObject);

begin

if ActiveMDIChild = nil then

  exit;

if fontdialog1.execute then

  TForm2(ActiveMDIChild).Memo1.Font := FontDialog1.Font;

 

  end;

 

procedure TForm1.YazRengi1Click(Sender: TObject);

begin

if ActiveMDIChild = nil then

  exit;

if colordialog1.execute then

  TForm2(ActiveMDIChild).Memo1.Font.Color := ColorDialog1.Color;

end;

 

procedure TForm1.ArkaPlanRengi1Click(Sender: TObject);

begin

if ActiveMDIChild = nil then

  exit;

if colordialog1.execute then

  TForm2(ActiveMDIChild).Memo1.Color := ColorDialog1.Color;

end;

 

procedure TForm1.SatrNoEkle1Click(Sender: TObject);

var

i:integer;

begin

  if ActiveMDIChild = nil then

  exit;

  for i:=0 to TForm2(ActiveMDIChild).Memo1.Lines.Count-1 do

  Tform2(ActiveMDIChild).Memo1.Lines[i]:=inttostr(i+1)+'.'+Tform2(ActiveMDIChild).Memo1.Lines[i];

 

end;

 

end.

 

----------*************************------------------------

unit Unit2;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls;

 

type

  TForm2 = class(TForm)

    Memo1: TMemo;

    procedure FormClose(Sender: TObject; var Action: TCloseAction);

    procedure Memo1Change(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form2: TForm2;

 

implementation

 

{$R *.dfm}

 

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Action:=cafree;

end;

________________________________________________________________________________

NORMAL NOT DEFTERİ

             unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, Menus, StdCtrls;

 

type

  TForm1 = class(TForm)

    Memo1: TMemo;

    MainMenu1: TMainMenu;

    DOSYA1: TMenuItem;

    A1: TMenuItem;

    Yeni1: TMenuItem;

    DZEN1: TMenuItem;

    Kes1: TMenuItem;

    Kopyala1: TMenuItem;

    Yaptr1: TMenuItem;

    BM1: TMenuItem;

    Yaztipi1: TMenuItem;

    OpenDialog1: TOpenDialog;

    SaveDialog1: TSaveDialog;

    FontDialog1: TFontDialog;

    procedure Yeni1Click(Sender: TObject);

    procedure k1Click(Sender: TObject);

    procedure Kes1Click(Sender: TObject);

    procedure Kopyala1Click(Sender: TObject);

    procedure Yaztipi1Click(Sender: TObject);

    procedure Yaptr1Click(Sender: TObject);

    procedure Sil1Click(Sender: TObject);

    procedure A1Click(Sender: TObject);

    procedure Katdet1Click(Sender: TObject);

    procedure Kaydet1Click(Sender: TObject);

    procedure emizle1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

procedure TForm1.Yeni1Click(Sender: TObject);

begin

memo1.Text:='';

end;

 

procedure TForm1.k1Click(Sender: TObject);

begin

close;

end;

 

procedure TForm1.Kes1Click(Sender: TObject);

begin

        memo1.CutToClipboard ;

end;

 

procedure TForm1.Kopyala1Click(Sender: TObject);

begin

        Memo1.CopyToClipboard ;

end;

 

procedure TForm1.Yaztipi1Click(Sender: TObject);

begin

FontDialog1.Execute;

memo1.Font :=FontDialog1.Font ;

memo1.Font.Size :=FontDialog1 .font.Size ;

memo1.Font.Style:=FontDialog1 .Font.Style ;

end;

 

procedure TForm1.Yaptr1Click(Sender: TObject);

begin

        memo1.PasteFromClipboard ;

end;

 

procedure TForm1.Sil1Click(Sender: TObject);

begin

        memo1.Text:=''

end;

 

procedure TForm1.A1Click(Sender: TObject);

begin

        OpenDialog1.Execute ;

end;

 

procedure TForm1.Katdet1Click(Sender: TObject);

begin

        SaveDialog1.Execute ;

end;

 

procedure TForm1.Kaydet1Click(Sender: TObject);

begin

        SaveDialog1.Execute;

        memo1.Lines.SaveToFile(SaveDialog1.FileName+'.txt');

end;

 

procedure TForm1.emizle1Click(Sender: TObject);

begin

memo1.text:=''

end;

 

end.

________________________________________________________________

Not Defteri 2

 

                   Unit Unot1;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Menus, Grids, Calendar,MMSystem,printers;

 

type

TForm1 = class(TForm)

MainMenu1: TMainMenu;

Memo1: TMemo;

Dosya1: TMenuItem;

Dzen1: TMenuItem;

Biim1: TMenuItem;

Grnm1: TMenuItem;

Yardm1: TMenuItem;

Yeni1: TMenuItem;

A1: TMenuItem;

Kaydet1: TMenuItem;

Farklkaydet1: TMenuItem;

N1: TMenuItem;

Sayfayaps1: TMenuItem;

Yazdr1: TMenuItem;

N2: TMenuItem;

k1: TMenuItem;

OpenDialog1: TOpenDialog;

SaveDialog1: TSaveDialog;

FontDialog1: TFontDialog;

ColorDialog1: TColorDialog;

PrintDialog1: TPrintDialog;

FindDialog1: TFindDialog;

ReplaceDialog1: TReplaceDialog;

nternettenyardm1: TMenuItem;

windowsyardm1: TMenuItem;

SaatTarih1: TMenuItem;

Gerial1: TMenuItem;

N3: TMenuItem;

Kes1: TMenuItem;

Kopyala1: TMenuItem;

Yaptr1: TMenuItem;

Sil1: TMenuItem;

N4: TMenuItem;

Bul1: TMenuItem;

Deitir1: TMenuItem;

mnse1: TMenuItem;

N6: TMenuItem;

Yaztipi1: TMenuItem;

Renkler1: TMenuItem;

Programyazan1: TMenuItem;

hakkmda1: TMenuItem;

version101: TMenuItem;

PageSetupDialog1: TPageSetupDialog;

Saat1: TMenuItem;

arkaplanrengi1: TMenuItem;

cdrom1: TMenuItem;

a2: TMenuItem;

Kapa1: TMenuItem;

N5: TMenuItem;

pcdekiyazclar1: TMenuItem;

procedure k1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure A1Click(Sender: TObject);

procedure Kaydet1Click(Sender: TObject);

procedure Yazdr1Click(Sender: TObject);

procedure Deitir1Click(Sender: TObject);

procedure Bul1Click(Sender: TObject);

procedure Yaztipi1Click(Sender: TObject);

procedure Renkler1Click(Sender: TObject);

procedure hakkmda1Click(Sender: TObject);

procedure version101Click(Sender: TObject);

procedure nternettenyardm1Click(Sender: TObject);

procedure windowsyardm1Click(Sender: TObject);

procedure Gerial1Click(Sender: TObject);

procedure Git1Click(Sender: TObject);

procedure Sayfayaps1Click(Sender: TObject);

procedure Farklkaydet1Click(Sender: TObject);

procedure Yeni1Click(Sender: TObject);

procedure Saat1Click(Sender: TObject);

procedure Kes1Click(Sender: TObject);

procedure Kopyala1Click(Sender: TObject);

procedure Yaptr1Click(Sender: TObject);

procedure Sil1Click(Sender: TObject);

procedure mnse1Click(Sender: TObject);

procedure arkaplanrengi1Click(Sender: TObject);

procedure a2Click(Sender: TObject);

procedure Kapa1Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure pcdekiyazclar1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

a:integer;

 

implementation

 

uses Unit2, Unit3, Unit4;

 

{$R *.dfm}

 

procedure TForm1.k1Click(Sender: TObject);

 

var

a:integer;

begin

a:=application.MessageBox('Programdan Çikmak Istiyormusunuz ?','Çikis',mb_yesnocancel+mb_iconexclamation);

if a=idyes then Close;

 

end;

 

procedure TForm1.FormCreate(Sender: TObject);

 

begin

 

animatewindow(handle,1000,aw_center);

Form1.caption:='uygarpad';

 

end;

 

procedure TForm1.A1Click(Sender: TObject);

begin

OpenDialog1.Title:='Açınız';

OpenDialog1.DefaultExt:='txt';

OpenDialog1.Filter:='Tüm Dosyalar|*.*| txt dosyalari|*.txt';

 

OpenDialog1.FilterIndex:=2;

OpenDialog1.InitialDir:='c:' ;

if OpenDialog1.Execute then

begin

memo1.Lines.LoadFromFile(OpenDialog1.FileName);

end;

 

end;

 

procedure TForm1.Kaydet1Click(Sender: TObject);

 

begin

saveDialog1.Title:='Kaydet';

saveDialog1.DefaultExt:='txt';

saveDialog1.Filter:='Tüm Dosyalar|*.*| txt dosyalari|*.txt';

 

saveDialog1.FilterIndex:=2;

saveDialog1.InitialDir:='c:' ;

if SaveDialog1.Execute then

begin

memo1.Lines.SaveToFile(SaveDialog1.FileName);

end;

 

end;

 

procedure TForm1.Yazdr1Click(Sender: TObject);

begin

PrintDialog1.Execute;

end;

 

procedure TForm1.Deitir1Click(Sender: TObject);

begin

if ReplaceDialog1.Execute then

//memo1.Lines:=replacedialog1;

end;

 

procedure TForm1.Bul1Click(Sender: TObject);

begin

if FindDialog1.Execute then

//memo1.lines:=finddialog1.

end;

 

 

procedure TForm1.Yaztipi1Click(Sender: TObject);

begin

if FontDialog1.Execute

then Memo1.Font:=

FontDialog1.Font;

 

end;

 

procedure TForm1.Renkler1Click(Sender: TObject);

begin

ColorDialog1.Execute;

Memo1.Font.color:=ColorDialog1.color;

 

 

end;

 

procedure TForm1.hakkmda1Click(Sender: TObject);

begin

showmessage('Uygar ATIS'+' '+'05552043592'+' '+'cakalcarlos_86@hotmail.com');

end;

 

procedure TForm1.version101Click(Sender: TObject);

begin

showmessage('%30ı kaldı');

end;

 

procedure TForm1.nternettenyardm1Click(Sender: TObject);

begin

Form2.show;

end;

 

procedure TForm1.windowsyardm1Click(Sender: TObject);

begin

Showmessage('yapılış tarihi=31.12.2006'+'en son guncelleme=08.01.2007');

end;

 

procedure TForm1.Gerial1Click(Sender: TObject);

begin

memo1.Undo ;

end;

 

procedure TForm1.Git1Click(Sender: TObject);

begin

Showmessage('yapılıyor');

end;

 

procedure TForm1.Sayfayaps1Click(Sender: TObject);

begin

if PageSetupDialog1.Execute then

begin

//memo1.Lines.BeginUpdate(PageSetupDialog1.PageSetup DlgRec);

end;

end;

 

procedure TForm1.Farklkaydet1Click(Sender: TObject);

begin

saveDialog1.Title:='Farklı Kaydet';

saveDialog1.DefaultExt:='txt';

saveDialog1.Filter:='Tüm Dosyalar|*.*| txt dosyalari|*.txt';

 

saveDialog1.FilterIndex:=2;

saveDialog1.InitialDir:='c:' ;

if SaveDialog1.Execute then

begin

memo1.Lines.SaveToFile(SaveDialog1.FileName);

end;

end;

 

procedure TForm1.Yeni1Click(Sender: TObject);

 

var

a:integer;

begin

a:=application.MessageBox('Programı Kaydetmek Istiyormusunuz ?','Yeni aç',mb_yesnocancel+mb_iconexclamation);

if a=idyes then

Begin

saveDialog1.Title:='Kaydet';

saveDialog1.DefaultExt:='txt';

saveDialog1.Filter:='Tüm Dosyalar|*.*| txt dosyalari|*.txt';

 

saveDialog1.FilterIndex:=2;

saveDialog1.InitialDir:='c:' ;

if SaveDialog1.Execute then

begin

memo1.Lines.SaveToFile(SaveDialog1.FileName);

end;

 

end

else if a=idno then

memo1.Lines.Clear

else if a=idcancel then

 

end;

 

procedure TForm1.Saat1Click(Sender: TObject);

begin

Form1.caption:='uygarpad'+' '+datetimeToStr(now);

end;

 

procedure TForm1.Kes1Click(Sender: TObject);

begin

memo1.CutToClipboard ;

end;

 

procedure TForm1.Kopyala1Click(Sender: TObject);

begin

Memo1.CopyToClipboard ;

end;

 

procedure TForm1.Yaptr1Click(Sender: TObject);

begin

memo1.PasteFromClipboard ;

end;

 

procedure TForm1.Sil1Click(Sender: TObject);

begin

memo1.Text:="

end;

 

procedure TForm1.mnse1Click(Sender: TObject);

begin

memo1.SelectAll;

end;

 

procedure TForm1.arkaplanrengi1Click(Sender: TObject);

begin

form3.show;

end;

 

procedure TForm1.a2Click(Sender: TObject);

begin

mciSendString('Set cdaudio door open wait', nil, 0, handle);

 

end;

 

procedure TForm1.Kapa1Click(Sender: TObject);

begin

mciSendString('Set cdaudio door closed wait', nil, 0, handle);

 

end;

 

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

showmessage('kaydetmeyi unutma istersen'+' !'+' iptal diyip saklamazsın');

saveDialog1.Title:='Kaydetmeyi unutma';

saveDialog1.DefaultExt:='txt';

saveDialog1.Filter:='Tüm Dosyalar|*.*| txt dosyalari|*.txt';

 

saveDialog1.FilterIndex:=2;

saveDialog1.InitialDir:='c:' ;

if SaveDialog1.Execute then

begin

memo1.Lines.SaveToFile(SaveDialog1.FileName);

end;

 

end;

 

procedure TForm1.pcdekiyazclar1Click(Sender: TObject);

 

var Printer:TPrinter;

begin

Printer:=TPrinter.Create;

Form4.Show;

Form4.Memo1.Lines.Assign(Printer.Printers);

end;

 

end.

 

Delphi - .....................................

 

WİNDOWS UN RENK SINIRLARINI ZORLAYIN RENKLER ARASI GEÇİŞ-VE KODLARI

WİNDOWS UN TÜM RENKLERİNİ VE RENKLER ARASI GEÇİŞİ GÖRMEK

İSTEYEN VE  RENKKODLARINI DELFİDE KULLANMAK İSTEYENLER MUTLAKA

BAKIN KENDİ ÖZEL RENGİNİZİ BULUP DELPİDE KULLANIN

unit Unit1;

 

interface

 

uses

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

  ExtCtrls, StdCtrls, ComCtrls;

 

type

  TForm1 = class(TForm)

    Panel1: TPanel;

    Edit1: TEdit;

    Edit2: TEdit;

    ColorDialog1: TColorDialog;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    button2:Tbutton;

procedure Edit1KeyDown(Sender: TObject; var Key: Word;

    Shift: TShiftState);

    procedure Button1Click(Sender: TObject);

    procedure FormClick(Sender: TObject);

    procedure IAeverButton2Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

 

implementation

 

{$R *.DFM}

 

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;

  Shift: TShiftState);

begin

if not(edit1.text=") and not(edit2.text=") then begin

if key=VK_DOWN then

begin edit1.text:=inttostr(strtoint(edit1.text)-strtoint(edit2.text));

panel1.Color:=strtoint(edit1.text);

end;

if key=VK_UP then

begin edit1.text:=inttostr(strtoint(edit1.text)+strtoint(edit2.text));

panel1.Color:=strtoint(edit1.text); end;

end else

showmessage('Lütfen bir sayı değeri giriniz')

 

end;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

colordialog1.color:=strtoint(edit1.text);

if colordialog1.execute then

edit1.text:=  inttostr(colordialog1.color);

end;

 

procedure TForm1.FormClick(Sender: TObject);

begin

SHOWMESSAGE('Hertürlü görüş ve önerileriniz için'+chr(13)+'ademyesilyurt@hotmail.com')

end;

 

procedure TForm1.Button2Click(Sender: TObject);

begin

if not(edit1.text=") and not(edit2.text=") then

ColorDialog1.Color:=strtoint(edit1.text);

if ColorDialog1.Execute then

begin

edit1.text:=inttostr(ColorDialog1.Color);

panel1.Color:=ColorDialog1.Color;

end;

 

 

end;

 

end.

{code by adem yesilyurt}

 

Delphi - .....................................

 

Acsess ve ado

Yeni baslayanlar icin Delphi ve DB

 

Merhabalar,

 

Acil olarak en azindan Delphi ile kücük DB uygulamarinin nasil yapildigina dair bbilgi toplamam gerekiyor. Forumlar genelde bir fikiri olupta bir yerlerde takilanlar icin uygun, e-book'larda genelde ileri seviye oluyor. Örnegin about.com'da ki tutorial ve örnekler cok hos ama ona benzer baska kaynaklar bulamadim. Örnegin ADOQuery yada ADOConnection nasil kullanilir. Cok cok basit seviyede bir DB'ye nasil veri girilir. ADO ve BDO arasindaki farklar, mysql kullanmak istersek neler yapicaz vb gibi cok temel DB bilgisine ihtiyacim var.

 

Bana kaynak tavsiyesi verebilecek yada yol gösterecek olan var mi?

 

Not: Almanya'da oldugum icin basili kaynak alamiyorum. E-book yada about.com gibi birseyler cok makbule gececek.

 

Ado ve Bde, Delphi'de veritabanlarına ulaşmak için geliştirilmiş iki teknolojidir. Bde artık geliştirilmemektedir. Ayrıca programlarda Bde kullanıldığında programla birlikte dağıtılması gerekir. Bu da kurulum dosyalarının boyutlarının 10 mb'den daha az olmamasına neden olmaktadır.

 

Ado ile yapılan programlar ise win98se ve üzeri işletim sistemlerinde çalışabilmektedir. Delphi'den aşağıdaki kayıt desenindeki bir Access veritabanına Ado teknolojisi ile ulaşmak için şu işlemler yapılmalıdır:

 

1. Önce form üzerine bir tane AdoConnection bileşeni konulur. Bu bileşen veritabanına fiziksel olarak ulaşmak için gereken ayarları içerir. Bu bileşenin kod yardımıyla ayarlamak için aşağıdaki kodlar ana formun create olayına yazılır(ki bunun faydası, programı klasör bağımlılığından kurtarmaktır):

 

Kod:

//Aşağıdaki komut veritabanının fiziksel yolunu belirtiyor

  adoconnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;'+

    'Data Source='+GecerliKlasoruAl+'data.mdb;'+'Mode=Share Deny None;'+

    'Persist Security Info=False';

2. Veritabanına fiziksel olarak ulaşıldıktan sonra tablolara ulaşılması gerekir. Bunun için AdoDataset nesnesi kullanılır. Bu nesnenin CommandText özelliğine gereken SQL cümlesi yazılır:

 

Kod:

//Öncelikle adodateset’lerin connection özellikler ayarlanıyor

  adodataset2.Connection:=ADOConnection1;

  adodataeset2.commandtext:='select * from kategori order by kategori_adi';

  //Daha sonra adodataset aktif hale getirilir

  adodataset2.Active:=true;

  Not: GecerliKlasoruAl, aplication.exename ifadesinden uygulamanın bulunduğu klasörü bulan basit bir fonksiyondur

Bu konu üzerinden epey zaman geçmiş ama ben bu konu ile ilgili şunu sormak istiyorum.Bir web sitesinin sql veritabanına delphi ile yazılan programla bağlanmak için ne yapılmalı üstadlar?

 

Delphi - .....................................

 

Basit bir Component yapma

Basit bir Component yapma

 

Kod:

Componet öncelikle component delphi ile birlikte gelen yada disardan alina bilen ve hatta delphi ile birlikte yapila bilen görsel veya görsel olmayan objelerdir. Delphi dünya pazarinda bu component yapma olayini çok iyi oturtmustur hatta component yapan ve bu componentleri kullanarak uygulama yapan , bu uygulamalarida satan firmalar ortaya çikmistir.

 

Delphide üç sekilde component yapilabilir. Bunlar :

 

1-Görsel olmayan componentler

2-Görsel olup sifirdan türetilen componentler

3-Olan bir componenti kullanarak gelistirilen componentler

 

Burada bu üç gruptan sadece olan bir componenti kullanarak gelistirilen componenlere örnek verilcektir . Bunun için önce file menüsünden close all deyin. Ve daha sonra yine file menüsünden new deyip ordan componenti seçin.

Karsiniza çikan bu pencerede Ancestor type ana bileseni yani hangi bilesenden üretilcegi seçilir.

Class Name de yapilan bilesenin sinifi seçilir. Palette Page bölümünde paletin hangi sayfasinda gözükmesinin istendigi belirtilir. Unit file name de yapilan dosyanin dizini yazilir. Search Page de ise delphi kayitli olan dizinler yazilidir. Bunlari doldurduktan sonra Create Unit butonnuna basin sizin için bir source kod yazacaktir. Simdi bizim yapcagimiz ilk belesende yaratildigi zaman yani sayfaya kondugu zaman font size 12 olacak ve içinde merhaba yazacaktir bunu için source kodu asagidaki gibi degistirin.

Public bölümünü ...

public

{ Public declarations }

constructor Create(AOwner: TComponent); override;

seklinde degistirdikten sonra implementation yazisinin hemen ardina asagidaki kodu girin böylece editbox yaratildiginda fonsize'i 12 yazisi ise merhaba olacaktir

constructor TEditBOX1.Create(AOwner:TComponent);

begin

inherited Create(AOwner);

font.Size:=12;

text:='MERHABA';

end;

Bu kez bu bilesenimize bir özellik ekleyelim bunu asagidaki gibi yapabiliriz. Aslinda ekledigimiz özelligin hiç bir anlami yok. Çünkü ekliyecegimiz özellik edit componentinin text özelligi ile ayni ama yinede nasil özellik eklencegine bir örnek olur.

Bu kez size direk source kodu vericegim

1. unit EditBOX1;

2. interface

3. uses

4. Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

5. StdCtrls;

6. type

7. TEditBOX1 = class(TEdit)

8. private

9. { Private declarations }

10. oku :string;

11. procedure yaz(drm:string);

12. protected

13. { Protected declarations }

14. public

15. { Public declarations }

16. constructor Create(AOwner: TComponent); override;

17. published

18. property metin:string read oku write yaz;

19. { Published declarations }

20. end;

21. procedure Register;

22. implementation

23. procedure TEditBOX1.yaz(drm:string);

24 . begin

25. oku:=drm;

26. text:=oku;

27. end;

constructor TEditBOX1.Create(AOwner:TComponent);

begin

inherited Create(AOwner);

font.Size:=12;

text:='MERHABA';

end;

procedure Register;

begin

RegisterComponents('Samples', [TEditBOX1]);

end;

end.

Burda dikkat etmemiz gereken ilk nokta 10,11,18 satirlardir. 10. satirda oku diye bir string yaziyorum. Metin özelligi içindeki degeri bu oku stringinden alacak. 11. satirda yaz diye bir procedure yaratiyoruz. Bu procedure oku stringine verilen degeri yaziyor ayni yamanda editbox1 bileseninin içine de bu degeri yaziyor.

18. satirda ise degerini oku adli stringden alan bir metin adli procedure yapiyoruz. Bu metin adli procedure'ün içine yazilan deger otomatik olarak editbox1 bileseninin içinede yazilacaktir.

Bunlari yaptiktan sonra 23 ile 27 numarali satirlar arasina yaz adli proceduru ekliyoruz.

Bu kodu ekleyip kaydedin ve file menüsünden close all deyin. Daha sonra new application deyip yeni bir uygulama açin. Burdan component bölümünden install component deyip componentin bulundugu adresi yazin ve compile deyin bunlari dedikten sonra size componentin eklendigini söyleyen bir mesaj gelecektir. Buna okey dedikten sonra palette sample bölümüne bakarsaniz orda yazmis oldugumuz EditBox1 componentini görürsününz. Bunu forma yerlestirdiginizde içinde merhaba yazacaktir. ve object inspector menüsünde metin adli bir bölüm gözükecektir.

 

Delphi - .....................................

 

Microsoft Word ile otomasyon:

Microsoft Word ile otomasyon:

uses  ComObj;

procedure TForm1.Button1Click(Sender: TObject);

var

  Word97: Variant;

begin

   Word97 := CreateOLEObject('Word.Application');

   Word97.Documents.Add;

   Word97.Selection.TypeText('Wow BOB woW');

   Word97.Visible := True;

   Word97:= UnAssigned;

end;

 

Delphi - .....................................

 

MS Speech hız kontrolü

Uses ... Variants, ComObj

 

Var

 x : Variant;

begin

 x:=CreateOleObject('SAPI.SpVoice');

 x.Rate:=5;

 x.Speak(label1.Caption);

 

Delphi - .....................................

 

Programda Güvenlik

Hazır kod kullanmak yerine işin mantığını anlamak isteyenlere faydalı olacağını düşünüyorum.

 

- Programın şifre kutusunu gösterip göstermemesinin belirlenmesi:

 

Programda bir string değer belirle.

mesela bu değer 2569gHJn6 olsun.

kullanıcı şifre kutusu istemiyorsa bir dosyaya 2569gHJn6 yazıp kaydet (mesela abc.dat dosyasına)

(dikkat etifre kutusu istemiyorsa dedim.)

(kullanıcı şifre kutusu istiyorsa 2569gHJn6 değerinden farklı bir değer kulanacaksın)

 

Unutmadan ..

Bu değer dosyaya kaydedilmeden önce bu değeri şifre algoritmalarıyla şifrele.(eğer profosyonel program yazacaksan ve kırılmasını zorlaştırmak istiyorsan hazır algoritma kullanmak yerine kendi şifreleme algoritmanı kullan) (şifre kırmayı zorlaştırmak için dosyayı kodluyoruz bunu unutma)

 

- Kullanıcı giriş şifresinin belirlenmesi:

kullanıcının şifre olarak 123456 değerini girdiğini varsayalım.

kullanıcı şifreyi girdikten sonra 123456 değerini algoritma ile kodla

ve başka bir dosyaya kaydet (xyz.dat)

 

 

- Program açılışında şifre kutusunun çıkarılması:

açılışta şifre için üstteki işlemlerin tersini yapıyorsun ve biraz daha karmaşık.

yani önce abc.dat dosyasını bir string değerine ata ve önceden şifrelediğin değeri,belirlediğin şifreleme algoritmasının tersini uygulayarak çöz.

eğer abc.dat dosyasından yüklediğin değer 2569gHJn6 değerinden farklıysa şifre kutusu çıksın.yok eğer bu string değer 2569gHJn6 değeriyle aynıysa şifre kutusu çıkmasın

(bu şekilde yaparsak programın kırılması zorlaşır.nedenini bulmak için biraz düşün)

 

biz abc.dat dosyasındaki string değerin 2569gHJn6'dan farklı bir değer olduğunu farzedelim.

bu yüzden program bize şifre kutusu çıkartacaktır.

 

 

- Kullanıcının belirlediği şifrenin denetlenmesi:

xyz.dat dosyasını program içinden bir string değere ata.sonra atadığın bu değeri şifdreleme algoritmasının tersini uygulayarak çöz..

hoooop işte karşına kullanıcının şifresi yani 123456 çıktı.

ve bu çözülmüş şifreyi de bellekte tut.

 

Eğer kullanıcının programdaki edit kutusuna girdiği değer,xyz.dat dosyasından yükleyip çözdüğün şifreden (yani 123456'dan farklıysa) farklıysa kullanıcının programı açmasını engelle.

 

Eğer kullanıcının programdaki edit kutusuna girdiği değer,xyz.dat dosyasından yükleyip çözdüğün şifre ile aynıysa (yani 123456 ile aynıysa) kullanıcının programı açmasına izin ver.

 

Mantığı kavradıktan sonra istersen daha sonra kullanıcıya şifre giriş limiti verebilirsin rneğin 3 defa yanlış şifre girince program kapansın ve bilgisayarın bir dahaki açılışına kadar

program çalışmasın) (sonra daha da ileri gidip kullanıcının şifre giriş limitlerini program içinden ayarlatabilirsin)

 

Delphi - .....................................

 

Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol