Programlama yapalım ve Öğrenelim. - Delphi Eğitim123
  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

Bir Denetim Masası uygulamasını çalıştırmak

 

Control Panel uygulamaları WindowsSystem klasörü altında bulunur. *.CPL uzantılı dosyalardır. Bu uygulamaları Control.Exe programı ile çalıştırabilirsiniz. Bazı Control Panel uygulamaları WindowsSystem klasöründe bulunmaz. Bunların ismini vererek çalıştırabilirsiniz.

 

WinExec('C:WINDOWSCONTROL.EXE TIMEDATE.CPL', sw_ShowNormal);

 

WinExec('C:WINDOWSCONTROL.EXE MOUSE', sw_ShowNormal);

 

WinExec('C:WINDOWSCONTROL.EXE PRINTERS', sw_ShowNormal);

 

 

 

Windows'u kapatmak veya yeniden başlatmak(reboot)

 

 

ExitWindowsEx(EWX_SHUTDOWN,0); //yeniden başlatmak için EWX_REBOOT

 

 

 

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);

 

 

 

Ekran kartım kaç rengi destekliyor

 

Ekran kartınızın kaç rengi desteklediğini aşağıdaki kodla bulabilirsiniz.

 

(1 shl (GetDeviceCaps(Form1.Canvas.Handle, BITSPIXEL) *

GetDeviceCaps(Form1.Canvas.Handle, PLANES)));

 

 

 

Windows Gezginini istediğiniz bir klasörle açma

 

uses kısmına ShellApi unitini ekleyin.

 

ShellExecute(0,

 

                  'explore',

 

                  'C:WINDOWS',   //buraya açmak istediğiniz klasörü yazın.

 

                  nil,

 

                  nil,

 

                  SW_SHOWNORMAL);

 

 

 

Windows'un Bul (Find File) diyalog penceresini istediğiniz bir klasörle açma

 

Windows'ta Başlat->Bul->Dosyalar ve Klasörler ile açtığınız Bul diyalog penceresini Delphi içerisinden hem de istediğiniz yolu vererek çalıştırabilirsiniz.

 

uses kısmına ddeman unitini ekleyin.

 

procedure TForm1.Button1Click(Sender: TObject);

begin

with TDDEClientConv.Create(Self) do begin

ConnectMode := ddeManual;

ServiceApplication := 'explorer.exe';

SetLink( 'Folders', 'AppProperties');

OpenLink;

ExecuteMacro('[FindFolder(, C:DOWNLOAD)]', False); //diyalog açıldığında konum kısmında

CloseLink; //olmasını istediğiniz klasör.

Free;

end;

end;

 

 

 

Pencerenin kapatma düğmesini etkisiz hale getirme

 

Pencerenin başlık çubuğunda bulunan kapatma düğmesini (X) etkisiz hale getirebilirsiniz. Aynı zamanda sistem menüsündeki Kapat(Close) seçeneğide kaybolur. Bunun için aşağıdaki gibi bir kod yazmalısınız.

 

procedure TForm1.Button1Click(Sender: TObject);

var

hwndHandle : THANDLE;

hMenuHandle : HMENU;

begin

hwndHandle := FindWindow(nil, 'Form1'); //Form1 pencerenin başlığını göstermektedir.

if (hwndHandle <> 0) then begin //Burayı uygulamanıza göre değiştirin

hMenuHandle := GetSystemMenu(hwndHandle, FALSE);

if (hMenuHandle <> 0) then

DeleteMenu(hMenuHandle, SC_CLOSE, MF_BYCOMMAND);

end;

end;

 

 

 

Uygulamam Windows her açıldığında otomatik çalışsın

 

uses kısmına Registry unitini ekleyin.

 

{$IFNDEF WIN32}

 

const MAX_PATH = 144;

 

{$ENDIF}

 

 

 

procedure TForm1.Button1Click(Sender: TObject);

 

var

 

  reg: TRegistry;

 

begin

 

  reg := TRegistry.Create;

 

  reg.RootKey := HKEY_LOCAL_MACHINE;

 

  reg.LazyWrite := false;

 

  reg.OpenKey('SoftwareMicrosoftWindowsCurrentVersionRun',false);

 

  reg.WriteString('Uygulamam', uygulamanızın_yolu_ve_adı);

 

  reg.CloseKey;

 

  reg.free;

 

end;

 

 

 

Klasöre Gözat diyalogunu kullanarak bir klasörü seçme

 

uses kısmına ShellAPI ve ShlObj unitlerini ekleyin.

 

procedure TForm1.Button1Click(Sender: TObject);

var

TitleName : string;

lpItemID : PItemIDList;

BrowseInfo : TBrowseInfo;

DisplayName : array[0..MAX_PATH] of char;

TempPath : array[0..MAX_PATH] of char;

begin

FillChar(BrowseInfo, sizeof(TBrowseInfo), #0);

BrowseInfo.hwndOwner := Form1.Handle;

BrowseInfo.pszDisplayName := @DisplayName;

TitleName := 'Lütfen bir klasör seçin';

BrowseInfo.lpszTitle := PChar(TitleName);

BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS;

lpItemID := SHBrowseForFolder(BrowseInfo);

if lpItemId <> nil then begin

SHGetPathFromIDList(lpItemID, TempPath);

ShowMessage(TempPath);

GlobalFreePtr(lpItemID);

end;

end;

 

 

 

Bir web adresini açma

 

uses kısmına Shellapi unitini ekleyin;

 

ShellExecute(Handle,

 

                   'open',

 

                   'http://www.geocities.com/siliconvalley/campus/4958/',

 

                    nil,

 

                    nil,

 

                    sw_ShowMaximized);

 

 

 

Bir DOS programını çalıştırma ve çalışması bitince penceresini kapatma

 

WinExec('command.com /c progdos.exe',sw_ShowNormal); //progdos.exe çalıştırılıyor.

 

(* eğer ikinci paremetreyi sw_Hide yaparsanız kullanıcı programın çalıştığını görmez. *)

 

 

 

Alt + Tab ve Ctrl + Esc tuşlarının kullanılmaz hale getirilmesi

 

var

 

  OldVal : LongInt;

 

begin

 

  SystemParametersInfo (97, Word (True), @OldVal, 0)

 

(* Word(False) ile kullanırsanız tuşları tekrar kullanabilirsiniz. *)

 

 

 

Bir menü öğesine resim ekleme

 

procedure TForm1.FormCreate(Sender: TObject);

 

var

 

  Bmp1 : TPicture;

 

begin

 

  Bmp1 := TPicture.Create;

 

  Bmp1.LoadFromFile('c:denemeturkey.bmp');

 

  SetMenuItemBitmaps( deneme1.Handle,

 

                      0,

 

                      MF_BYPOSITION,

 

                      Bmp1.Bitmap.Handle,

 

                      Bmp1.Bitmap.Handle);

 

end;

 

 

 

Ağ ortamında makinenin ismini bulma

 

procedure TForm1.Button1Click(Sender: TObject);

var

Makine_ismi:array[0..255] of char;

BufferSize:DWORD;

begin

BufferSize:=SizeOf(Makine_ismi);

GetComputerName(@Makine_ismi,BufferSize);

Showmessage(Makine_ismi);

end;

 

 

 

Ağ ortamında login olmuş kullanıcı ismini bulma

 

procedure TForm1.Button1Click(Sender: TObject);

var

Kullanici_ismi:array[0..255] of char;

BufferSize:DWORD;

begin

BufferSize:=SizeOf(Kullanici_ismi);

GetUserName(@Kullanici_ismi,BufferSize);

Showmessage(Kullanici_ismi);

end;

 

 

 

Ekran çözünürlüğünü nasıl öğrenirim

 

Screen.Width //yatay çözünürlük

Screen.Height //dikey çözünürlük

 

MessageDlg('Şu anda ' + IntToStr( Screen.Width ) +' x '+

 

                                 IntToStr( Screen.Height )+' çözünürlükte çalışıyorsunuz',

 

                 mtInformation, [mbOk], 0 );

 

 

 

Taskbar'ın (Görev çubuğu) AutoHide özelliği açık mı, kapalı mı?

 

uses kısmına ShellAPI unitini ekleyin.

 

procedure TForm1.Button1Click(Sender: TObject);

var

ABData : TAppBarData;

begin

ABData.cbSize := sizeof(ABData);

if (SHAppBarMessage(ABM_GETSTATE, ABData) and ABS_AUTOHIDE) > 0 then

Showmessage('Autohide özelliği açık');

end;

 

 

 

rogramım biraz beklesin

 

Bazı işlemlerden sonra diğer bir işlemi çalıştırmadan önce bir süre beklemek istersiniz. Bu gibi durumlarda Sleep komutunu kullanabilirsiniz. Burada verilen değer milisaniye cinsindendir. (1 saniye=1000 milisaniye)

 

Sleep(10000) //10 saniye bekler

 

 

 

 Caps lock tuşu açık mı, kapalı mı?

 

if (GetKeyState(VK_CAPITAL) and $01)<>0 then

Showmessage ('caps lock açık');

 

 

 

 İmleci (cursor) gizleyip, tekrar gösterme

 

ShowCursor(False) //imleci gizler

ShowCursor(True) //imleci tekrardan gösterir.

 

 

 

Ekran görüntüsünü alın

 

procedure TForm1.Button1Click(Sender: TObject);

var

DCDesk: HDC;

begin

DCDesk:=GetWindowDC(GetDesktopWindow);

BitBlt(Form1.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,DCDesk, 0, 0,SRCCOPY);

ReleaseDC(GetDesktopWindow, DCDesk);

end;

 

 

 

Not: Yukarıdaki kod ekran görünütüsünü form üstüne alır. Image bileşeni içine ekran görüntüsünü almak için form üzerine bir image bileşeni yerleştirin ve Form1.Canvas.Handle yerine Image1.Canvas.Handle yazın.

 

 

 

Map Network Drive diyalogunu açma

 

WNetConnectionDialog ( 0, RESOURCETYPE_DISK );

 

 

 

Bir dosyayı bağlantılı olduğu uygulama ile açma

 

uses kısmına shellapi unitini ekleyin.

 

shellexecute(0,'open', 'c:test2.avi','','',SW_NORMAL);

 

 

 

Temp klasörünü bulma

 

procedure TForm1.Button1Click(Sender: TObject);

var

temp_klasor: array[0..MAX_PATH] of char;

begin

GetTempPath(SizeOf(temp_klasor), @temp_klasor);

ShowMessage(temp_klasor);

end;

 

 

 

Ekran koruyucuyu çalıştırmak

 

PostMessage(GetDesktopWindow, WM_SYSCOMMAND, SC_SCREENSAVE, 0);

 

 

 

Güç koruma modunda (Power Safe Mode) çalışan monitörü kapatıp açma

 

Monitörü kapatmak için :

 

SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 0);

 

Monitörü açmak için :

 

SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, -1);

 

 

 

Windows Tarih/Saat Özellikleri (Date/Time Properties) iletişim kutusunu açma

 

Winexec('Control.exe Date/Time',sw_shownormal);

******************************************

 DLL Uygulaması

 

Selamlar ;

 

Bir aksaklık olmazsa bundan böyle Delphi çerçevesinde programcılık hakkında yazılarımla, sizlerle olacağım. Yani yazılarımız Delphi üzerine olmasına karşın, programcılığa da değineceğiz.

 

İlk cümlem bu olmadı ama şunu da dikkate almanızı dilerim, Delphi de uzman bir programcı değilim, Delphinin ne kadarını bildiğimi de bilmiyorum, Programcılıkta ne seviye de olduğumuda onun için bir şey iddia etmiyorum, bilgiyi paylaşalım diyorum.

 

Ben Delphiye yavaşça girecektim ama arkadaşlarla yaptığımız tartışmalarda, direk uygulama yazmaya karar verdim (Aslında arkadaşlar haklı, ben de haklıyım ama onlar daha haklı). Yani herkesin Delphiyi kullanmayı bildiği ve birçok kavrama aşina olduğu varsayılarak yazılarımı yazacağım.

 

İlk uygulamamız DLL uygulaması olsun, ama sonuna kadar da incelemeden bırakmayalım. Her bi saçma gelen ayrıntıyı bile inceliyelim.

 

Di-El-El, nedir DLL, sizler için gittim olayi M$ fabrikasında inceledim, Amerikalıların icad ettiği ve bütün dünyadan da kabul gören ok da iyi bir şey) kısatmalardan bir tanesi, hemen açalım yoksa anlayamıyacaz olayı; Dynamic Link Library (Dinamik Bağlantılı Kütüphaneler) bi sorunumuz var tabii açılmışı da açmak gerekiyor. Onu da açıklarsak Dinamik, hareket halinde olan, enerjik faal, durağan olmayan anlamlarına geliyor. Link te bildiğimiz bağlantı. Birleştirelim, Bağlantısı durağan olması gerekmeyen, dilediğimiz zaman bağlanıp işimiz bittikten sonra kopabileceğimiz kütüphane oluyor, Di-El-El. DLL lerin rutinleri başka programlar tarafından çağrılabilir ve programa derleme sırasında bağlanmazlar, program çalışırken istediğimiz bir anda DLLe iş yaptırabilir.

 

DLL sayesinde bir çok program tarafından kullanılan işlemler tekbir DLL de bir sefer yazılabilir ve tüm programlar diledikleri anda DLLe bu işleri yaptırabilirler, böylece fazla kodlamadan ve kargaşadan kurtulunmuş olur. Windowsun DLL ler üzerine kurulmuş olduğunu, ve DLLin windows için herşey gibi bir şey olduğunu söylesem yalan olmaz. Bunu dikkate alın ve DLL ruhunu kavrarsanız Windowsa hakim olmaya başlıyorsunuz demektir. Hadi başlayalım.

 

Öncelikle Delphi nasıl DLL yapar ?

 

Delphi bir yazıyı derlemeden önce ilk satırı olan,

 

Program Project1;

Library Project1;

Unit Project1;

 

Gibi satırlara bakarak ona göre derleme yapar, zeki olanlar hemen anladılar tabii. Evet Bir DLL yapmak için

 

1-) Delphiyi açalım, her zamanki gibi New Application diyelim bize Form ve Üzerinde Unit Unit1; yazılı kod penceremiz gelecektir. View ve Project Source dediğimizde bize Unit1 den başka ile düzey yazılarımızda da kullandığımz Proje kodları gelir. Burada

 

program Project1; ve diğer kodlaro göreceksiniz. program Project1; yazısının yerine Library Project1; yazarsanız ve Derlerseniz programınızın Exe değil DLL uzantısı ile derlendiğini göreceksiniz. İşte bir DLL yaptınız.

 

2-) Delphiyi açalım sadece New diyelim, karşımıza Yeni oluşturabileceğimiz bir çok şey çıkacaktır biz şimdilik bunlardan DLL ile ilgilendiğimiz için DLLi seçin (soldan 4.cü). Proje kod ekranı karşımıza çıkıyor save as deyip kaydedelim ve yine bir DLL oluşturdunuz.

 

Şimdi, oluşturduğumuz DLL  ler hiçbir şey yapmıyor sadece oluşturmayı öğrendik. DLLin içine ne yazarız ne yapabiliriz buna bakalım.

 

Baştan başlayalım, Delphi deyiz, New, ve oradan DLL yi seçelim. Kod pencersindeyiz.

 

 

 

library Project1;

uses

SysUtils,

Classes;

begin

end.

 

Yazıyor.

 

library Project1;

uses

SysUtils,

Classes;

function trscene:integer;export;

begin

 

result:=9;

 

 

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 Adı değiştirme

 

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

 

Treeview componentinin durumunu kaydetme ve gösterme

 

Kaydetmek için

 

TreeView.SaveToFile('Dosya.adı');

 

Dosyayı açmak için

 

TreeView.LoadFromFile('Dosya.adı');

 

Dosyayı yanlızca okumak (read only) şeklinde açma

 

AssignFile(F, Dosya);

FileMode := 0; (read only modunda açmak}

Reset(F);

.

.

.

CloseFile(F);

 

Açılan dosyanın tarih ve zamanını 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 değiştirmek

 

randomize;

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

 

ComboBox'ın aşağıya listelemesinin farklı bir yolu (DropComboBox)

 

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

 

Başlığı 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;

 

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,

cLabel1.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);

 

Silinmiş Dosyaları 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 hakkında kısa bilgi

 

Form1.Show; {Formu göster}

Form1.Showmodal { Formu showmodal olarak göster (Showmodal iken başka hiçbir forma ulaşılamaz) }

myForm.Hide; {Formmu gizle }

myForm.Free; {Formu sil }

 

 

 

Formu şeffaf hale getirilmesi

 

OnCreate olayına Brush.Style:=bsClear; yazmanız yeterli.

 

ESC tuşuyla programdan çıkma

 

OnKeyPress olayına if Key = #27 then halt; yazın.

 

Bir Resim Dosyası Açıp İç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 Yazı Kutusundan Çıkamazsın

 

procedure TForm1.Edit1Exit(Sender: TObject);

begin

showmessage('Asla yazı kutusundan çıkamassın');

postmessage(handle,WM_NEXTDLGCTL,0,0);

postmessage(handle,WM_NEXTDLGCTL,1,0);

end;

 

Formun Boyutlarını 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;

 

 

end.

 

Windows'a True Type Font Ekleme

 

uses Registry;

procedure TForm1.Button1Click(Sender: TObject);

var

reg: TRegistry;

b : bool;

begin CopyFile('C:DOWNLOADFP000100.TTF', 'C:WINDOWSFONTSFP000100.TTF', b);

reg := TRegistry.Create; reg.RootKey := HKEY_LOCAL_MACHINE;

reg.LazyWrite := false; reg.OpenKey('SoftwareMicrosoftWindowsCurrentVersionFonts', false); reg.WriteString('TESTMICR (TrueType)','FP000100.TTF');

reg.CloseKey; reg.free;

AddFontResource('c:windowsfontsFP000100.TTF'); SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);

RemoveFontResource('c:windowsfontsFP000100.TTF'); SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);

end;

 

Dosya Taşıma

MoveFile('C:Sourcesourcefile.txt', 'C:Destdestfile.txt');

 

Trim Fonksiyonunun açılımı

 

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 Programı (Ekran Çalma)

 

Bir tane image componenti eklemek zorundasınız.

 

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;

 

Sağa yada Sola hizalama function'u

 

function hiza(sagsol,yer:string;sayi:integer):string;

var

i,bosluk,uzunluk:integer;

begin

trim(yer); //Boşlukları temizle

uzunluk:=length(yer); //Verilen stringin uzunluğunu öğren

bosluk:=sayi-uzunluk; //Verilen sayıdan uzunluğu çıkar

if sagsol='sag' then begin //Sağamı solamı yaslancağını öğren

for i:=1 to bosluk do begin //Fark kadar sağa boşluk ekle

yer:=' '+yer; //Boşluk 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;

 

Sayıyı virgüllü yazma functionu

 

Bunun için forma birtana label componenti yerleştirin ve visible özeliğini false yapın.

 

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 değerindeki bir sayıyı string yapma

 

function Comp2Str(N: Comp): String;

var

TS: String;

begin

Str(N:0:0, TS);Comp2Str := TS;

end;

 

Dosya açılış yolları

 

Windows programının açılışı

WinExec('C:WINDOWSNOTEPAD.EXE', SW_SHOWNORMAL);

 

Komut satırı ile birlikte :

WinExec('C:WINDOWSNOTEPAD.EXE C:WINDOWSWIN.INI', SW_SHOWNORMAL);

 

Pop Up dos kutusuyla :

WinExec('COMMAND.COM', SW_SHOWNORMAL);

 

Normal bir dos programının komutla açılışı

WinExec('COMMAND.COM /C DIR *.*', SW_SHOWNORMAL);

 

Dekstop'ı refresh etmek

 

procedure TForm1.Button1Click(Sender: TObject);

begin

SendMessage(FindWindow('Progman', 'Program Manager'), WM_COMMAND,$A065, 0);

end;

 

Programın windows'la birlikte açılması

 

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('SoftwareMicrosoftWindowsCurrentVersionRun', false); reg.WriteString('My App', Application.ExeName);

reg.CloseKey;

reg.free;

end;

 

Formun ara çubuğunu 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'ın handle sayısı

 

hTaskbar := FindWindow('Shell_TrayWnd', Nil );

 

Exe yada Dll'deki iconların alınması

Uses shellapi;

procedure TForm1.FormCreate(Sender: TObject);

var TheIcon: TIcon;

begin TheIcon := TIcon.Create;

TheIcon.Handle := ExtractIcon(hInstance,'C:dosyadosya.EXE',0);

image1.picture.Icon:=Theicon;

end;

 

Windows ekranına ç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 yazıyı 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;

 

Form1'in aynısını printerden çıkartma

 

Form1.Print;

 

O anki sürücünün kapasitesini ve sürücüdeki boş yer miktarını bulmak;

 

DiskFree(0) //o anki sürücüdeki boş yer miktarını 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ü öğesinin enabled özelliğini false yapmak;

 

mainmenu1.items[0].items[1].enabled:=False;

 

Listbox veya Combobox'ta seçili bir veya birden fazla öğeyi seçilmemiş 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 numarasının bulunması;

 

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;

 

Bir string'in başındaki ve sonundaki boşlukları atmak için;

 

Trim(string)

 

TrimLeft (string)  //stringin sadece başındaki boşlukları atmak için

 

TrimRight (string) //stringin sadece sonundaki boşlukları atmak için

 

Şifreli bir table için programın şifre istememesi için;

 

Table'ın Active özelliğini False yapın ve Form'un OnCreate olayına aşağıdaki kodu ekleyin

 

Session.AddPassword('şifre');

 

Table1.Active:=True;

 

Pencereyi minimize etmek;

 

Application.Minimize; //taskbar'a minimize

CloseWindow(handle)

WindowState := wsMinimized;

 

Windows'u kapatmak veya yeniden başlatmak(reboot);

 

var

 

  i:dword;

 

begin

 

  ExitWindowsEx(EWX_SHUTDOWN); //yeniden başlatmak için EWX_REBOOT

 

end;

 

Help menüsünden About kısmına girin. Alt tuşuna basılı tutarak TEAM veya DEVELOPERS yazın. Delphi'yi geliştirenlerin isimlerini görebilirsiniz. Database Desktop'tada Help menüsünden About kısmına girin ve delphi yazın.

 

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 kısmına 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 tuşlarını açıp-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 tuşu için VK_CAPITAL yerine VK_NUMLOCK yazınız.

 

Menü'ye bitmap (resim) ekleme;

 

procedure TForm1.FormCreate(Sender: TObject);

 

var

 

  Bmp1 : TPicture;

 

begin

 

  Bmp1 := TPicture.Create;

 

  Bmp1.LoadFromFile('c:denemeturkey.bmp');

 

  SetMenuItemBitmaps( deneme1.Handle,

 

                      0,

 

                      MF_BYPOSITION,

 

                      Bmp1.Bitmap.Handle,

 

                      Bmp1.Bitmap.Handle);

 

end;

 

Alt + Tab ve Ctrl + Esc tuşlarının kullanılmaz hale getirilmesi;

 

var

 

  OldVal : LongInt;

 

begin

 

  SystemParametersInfo (97, Word (True), @OldVal, 0)

 

  //Word(False) ile kullanırsanız tuşları tekrar kullanabilirsiniz.

 

Windows ve System klasörlerinin bulunması

 

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 çıkartma

 

MessageBeep(word(-1));

 

 

 

Belgeler menüsüne bir dosya ekleme

 

uses kısmına ShlOBJ unitini ekleyin;

 

procedure TForm1.Button1Click(Sender: TObject);

 

var

 

  s : string;

 

begin

 

  s := 'C:DownLoaddeneme.html';

 

  SHAddToRecentDocs(SHARD_PATH, pChar(s));

 

end;

 

 

 

Belgeler menüsünü temizleme

 

uses kısmına ShlOBJ unitini ekleyin;

 

SHAddToRecentDocs(SHARD_PATH, nil);

 

 

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