QuickReport Fonksiyonları
Date: Mevcut tarihi string olarak geri gönderir. Rapor üzerine QRExpr elemanı alınarak
Expression özelliğine Date verilerek kullanılır.
Time: Mevcut saati stringe çevirir. Rapor üzerine QRExpr elemanı alınarak Expression
özelliğine Time verilerek kullanılır.
Str ( sayı ): Sayısal bir ifadeyi stringe çevirir.
Copy(str,s,l): Bir ifadenin içinde bulunan belli bir bölümü geri gönderir.
Rapora Sayfa Numarası ve Tarih Eklemek
Raporumuza sayfa numarası ve tarih eklemek için; rapor üzerine QRB elemanı alarak
BandType özelliğini rbPageFooter yapalım. Daha sonra QRSYSData kontrolünden iki tane
alıp birincisinin Data özelliğini qrsDate ve Text özelliğine "Basım Tarihi ", ikincisinin Data
özelliğini qrsPageNumber ve Text özelliğini de " Sayfa : " yapalım. Raporu Preview'e tıklayarak
önizlemeye alırsak sayfanın sonunda Basım Tarihi ve Sayfa Numarasının yazılmış olduğunu
görürüz.
Delphi ile MS Access Database'ine Bağlantı
Delphi'den MS Access Databaseine ulaşabilmek için sırasıyla yapılması gerekenler aşağıdaki
gibidir:
1. Windows Control Panel'i açın.
2. ODBC simgesini çift tıklayın.
3. User DSN tabına gelin ve Add butonuna basın.
4. Driver olarak "Microsoft Access Driver (*.mdb)" yi seçin ve Finish butonuna basın.
5. Data Source Name'i olarak kullanmak istediğiniz bir isim verin. Description kısmına
isterseniz database'inizle ilgili bir açıklama yazabilirsiniz.
6. Daha sonra Select butonuna basarak database isminizi verin.
7. Advanced butonuna basarak kullanıcı adı ve şifresi tanımlayabilirsiniz. ( Zorunlu değil )
8. OK butonuna basıp ODBC ekranını kapatın.
9. Şimdi programınıza bir TDatabase objesi ekleyin.
10. AliasName olarak ODBC ayarlarında verdiğiniz, (5) Data Source Name'i seçin.
11. Database Name olarak istediğiniz bir isim yazın.
12. Eğer 7. basamakta bir kullanıcı adı ve şifresi girmediyseniz login ekranın çıkmaması
için LoginPrompt seçeneğini false yapın.
Not: Eğer database'in bir kullanıcı adı ve şifresi varsa LoginPrompt seçeneğini False yapmanız
durumunda database'e ulaşamazsınız.
13. Programınıza bit TTable ekleyin.
14. Database Name kısmına TDatabase bileşeninde, Database Name kısmına 11. adımda
verdiğiniz ismi seçin.
15. Programınıza bit TDataSource ekleyin.
16. DataSet değeri olarak 13. adımda eklediğiniz TTable adını verin.
Artık MS Access Database'ine bağlı bir table'a sahipsiniz.
Borland Delphi'de Yapılmış Bazı Yararlı Programlar
Database'de Türkçe Problemi
BDE administor programında configuration/dirvers/native/[kullandığın dosya türü] seçeneklerinde
langdriver kısmını türkçe bir sürücü olarak değiştir. Bunu yaptıktan sonra
delphi ile türkçe karakterleri görebilirsiniz
Bu ayarı yaptıktan sonra Database Desktopta Türkçe karakterler yine görünmeyecek.
Enter Tuşu Kullanımı
Windows programlarında bir alttaki alana geçmek için TAB tuşu kullanılır. Ancak DOS
programlarından gelen alışkanlıkla kullanıcılar hep Enter ile alt alana geçmek ister ve bu bir
tik olmuştur.
Delphide Enter tuşu ile bir alt alana geçmek için bir yöntem;
· Formun Keypreview olayını True yapılır.
· Form üzerinde herhangiki tüm bileşenlere Default false yaplır.
· formun onKeypres olayına aşağıdaki function ilave edilir.
procedure TAdresformu.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then begin
Key := #0;
if (Sender is TDBGrid) then
TDBGrid(Sender).Perform(WM_KeyDown,VK_Tab,0)
else
Perform(Wm_NextDlgCtl,0,0);
end;
Açık Windows Uygulamalarının Gösterilmesi
Burada EnumWindows API fonksiyonuyla bir window handle ve pointer parametreleri çağrılarak
gizli ve görünür uygulamalar listelenir.
//AnaForm üzerine bir ListBox1 ve Button1 ekleyin
//implementation {$R *.DFM} altyna a?a?ydaki fonksiyonu yaz
function EnumWindowsProc(Wnd : HWnd;Form : TForm1) : Boolean;
Export; {$ifdef Win32} StdCall; {$endif}
var
Buffer : Array[0..99] of char;
begin
GetWindowText(Wnd,Buffer,100);
if StrLen(Buffer)
<> 0 then
Form1.ListBox1.Items.Add(StrPas(Buffer));
Result := True;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//Tüm gizli ve görünür uygulamalary listele
EnumWindows(@EnumWindowsProc,LongInt(Self));
end;
Delphide Yazılan Kodla Exe Çalıştırma
Aşağıdaki örnek kod verilen web sitesini Internet Explorer' ı çalıştırarak açar.
procedure TForm1.Button1Click(Sender: TObject);
begin
winexec('C:\Program Files\Internet Explorer\iexplore.exe
Linklerin Görülmesine İzin Verilmiyor
Linki Görebilmek İçin
Üye Ol veya
Giriş Yapwww.programlama.com
',SW_MAXIMIZE);
end;
Bir Harddiskin Seri Numarasının Bulunması
Hard diskin seri numarasını bulur.
procedure TForm1.Button1Click(Sender: TObject);
var
VolumeSerialNumber : DWORD;
MaximumComponentLength : DWORD;
FileSystemFlags : DWORD;
SerialNumber : string;
begin
GetVolumeInformation('C:\', nil, 0, @VolumeSerialNumber,
MaximumComponentLength, FileSystemFlags, nil, 0);
SerialNumber := IntToHex(HiWord(VolumeSerialNumber), 4) + '-' +
IntToHex(LoWord(VolumeSerialNumber), 4);
Memo1.Lines.Add(SerialNumber);
end;
Windows'un Belgeler Menüsünü Temizleme
Formun uses kısmına ShlOBJ şeklinde ilave yapın; bir butona veya herhangi bir olayın
event' ine de ;
SHAddToRecentDocs(SHARD_PATH, nil); şeklinde yazın.
Ekran Görüntüsü Aktarma
Belirttiğiniz sınırlar dahilinde ekranın belli bir alanını formunuzun üzerine koymak isterseniz.
Formunuza image1 adlı bir resim objesi ekleyin ve daha sonra formunuzun create olayına
şu kodu yazın.
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;
Mouse Pointerı Gizlemek
Mouse Pointerı gizlemek için ShowCursor(False) komutunu kullanmak yeterli. Tabi yeniden
görünmesini sağlamak için ShowCursor(True) komutunu kullanıyoruz.
İmlecin Ekrandaki Yerinin Belirlenmesi
İmlecin o anda ekranın neresinde olduğunu bulan ufak bir kod parçası.
procedure TForm1.Button1Click(Sender: TObject);
var Yer:TPoint;
begin
if Assigned(ActiveControl) then
begin
Yer:=Point(0,0); { burda 0,0 imleç'in ekrandaki yeri oluyor }
ActiveControl.ClientToScreen(Yer);
SetCursorPos(Yer.X,Yer.Y);
end;
end;
Başlat Menüsü Programlarının Tespit Edilmesi
Başlat menüsünde hangi programların bulunduğunu tespit eden bir kod parçası. Forma bir
ListBox, bir Buton, birde DDEClientConv nesnesi ekleyip, Service ve Topic özelligini
"Progman" olarak giriniz.
var
B:Pchar;
procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Items.clear;
B := DDEClientConv1.RequestData('Groups');
ListBox1.Items.SetText(B);
StrDispose(B);
end;