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

Sayıları virgüllerle yazmak

 

Sayı windows'unuz ayarına göre 12.345.678 veya 12,345,678 şeklinde gösterilir.

 

procedure TForm1.Button1Click(Sender: TObject);

 

  var

 

    i : integer;

 

begin

 

  i := 12345678;

 

  Memo1.Lines.Add(FormatFloat('#,', i));

 

 

 

Sistem Tarihini ve Saatini Değiştirmek

Sistemin tarihini ve saatini değiştirmek 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 meşgul şekilde göstermek

try

 

  Screen.Cursor := crHourGlass;

 

  {buraya kodunuzu yazın...}

 

finally

 

  Screen.Cursor := crDefault;

 

end;

 

Application.ProcessMessages;

 

 

 

Dos programı 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;

 

 

 

 

 

İlk harf büyük diğerleri küçük

Edit1'e yazılan yazının ilk harfini büyük diğer harflerini küçük yapıyor.

 

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,Length(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 alıp bir wav dosyası içine kayıt 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('Kayıt');

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('Başla');

RecordSound(10000);

WriteLn('Bitir');

 

 

 

 

 

DELPHİ 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: Korumalı mod için.

 

/b: Hepsini tekrar oluştur,

/m: Hepsinin güncel olduğundan emin ol.

 

 

 

 

 

BRC Nedir ?

 

Brc Res dosyalarını derliyor.

Bir res dosyası açın ,(Notepad ile)

İçine Icon ICON "emre.ico" yazın. (emre.ico dosyası aynı klasörde bulunmalı. )

BRC -r EMRE.RES olarak derleyin.

Delphideki projenizin başınada {$ Emre.rc} yazın. Böylece ikon dosyalarını taşımadan kullana bilirsiniz.

Sadece icon değil , ayrıca BITMAP,TEXT de kullana bilirsiniz.

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

 

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

 

Delphi ipuçları ( toplu olarak )

PARADOX ve dBASE VERİTABANLARININ AĞ ÜZERİNDE KULLANIMI

 

Paradox ve Dbase tablolarını ağda çalıştırabilmek için Aşağıdaki BDE ayarlarını Kullanın.

 

ANA MAKİNA AYARLARI

 

Ana Makina Adı: Server

Disk paylaşım adı : C

Paradox veya dBASE tablolarının bulunduğu Klasör c:ProgData

PDOXUSRS.NET dosyasının yeri: c:

 

Ana Makina BDE Ayarları:

 

DataBAse sekmesi:

 

Alias: MyProg

Path : c:ProgData

 

Congiguration->Drivers->Native->PARADOX (veya dBASE) sekmesi:

NET DIR: C: (PDOXUSRS.NET dosyasını gösterecek)

LANGDRIVER: paradox "turk"

 

Congiguration->System->INIT sekmesi:

LANGDRIVER: paradox "turk"

LOCALSHARE: TRUE

 

TERMİNAL MAKİNA BDE AYARLARI:

 

DataBAse sekmesi:

Alias: MyProg

Path : ServerProgData

 

Congiguration->Drivers->Native->PARADOX (veya dBASE) sekmesi:

NET DIR: Serverc (Ana makinadaki PDOXUSRS.NET dosyasını gösterecek)

LANGDRIVER: paradox "turk"

 

Congiguration->System->INIT sekmesi:

LANGDRIVER: paradox "turk"

LOCALSHARE: TRUE

 

Yukarda anlatılan ayarlaRın dışında şayet terminalden ana makina için bir ağ yolu tanımlamışsanız terminal ayarları aşağıdaki gibi de olabilir.

Ana makinanın diskine F diye bir ağ yolu tanımladıysak ayarlar şu şekilde olacaktır.

 

DataBase sekmesi:

Alias: MyProg

Path : F:ProgData

 

Congiguration->Drivers->Native->PARADOX (veya dBASE) sekmesi:

NET DIR: F: (Ana makinadaki PDOXUSRS.NET dosyasını gösterecek)

LANGDRIVER: paradox "turk"

 

Congiguration->System->INIT sekmesi:

LANGDRIVER: paradox "turk"

LOCALSHARE: TRUE

 

Ancak bu tanımda dikkat edilmesi gereken şey F ağ yolu koptuğunda program çalışmayacaktır. .exe dosyanızı terminalden istediğiniz klasörden çalıştırabilirsiniz.

******************************************DELPHI İPUÇLARI VE KODLARI

 

 

 

Alt+F4 tuş kombinasyonuyla programın kapanmaması için

 

Formun OnCreate olayına; KeyPreview := true;

 

Formun OnKeyDown olayına; if ((ssAlt in Shift) and (Key = VK_F4)) then

 

Key := 0;

 

 

 

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

 

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

 

 

Listbox'a, Memo'ya ve Combobox'a bir seferde birden çok eleman eklemek

 

 

Listbox1.items.SetText('Ali'#13'Veli'#13'kırkdokuzelli');

Memo1.Lines.SetText('Ali'#13'Veli'#13'kırkdokuzelli');

Combobox1.items.SetText('Ali'#13'Veli'#13'kırkdokuzelli');

 

 

 

Memo içinde imlecin hangi satır ve kolonda olduğunu bulma

 

var

LineNum:logint;

CharsBeforeLine:logint;

begin

LineNum:=SendMessage(Memo1.Handle,EM_LINEFROMCHAR,Memo1.SelStart,0);

CharsBeforeLine:=SendMessage(Memo1.Handle,EM_LINEINDEX,LineNum,0);

Label1.Caption:='Satır'+IntToStr(LineNum+1);

Label2.Caption:='Kolon'+IntToStr((Memo1.SelStart-CharsBeforeLine)+1);

 

 

 

ListBox veya ComboBox'ta seçili bir veya birden fazla öğeyi

seçilmemiş hale getirme

 

 

ListBox1.ItemIndex:=-1;

 

Combobox1.ItemIndex:=-1;

 

 

 

Bir menü öğesini kullanılamaz hale getirmek

 

MainMenu1.Items[0].Items[1].Enabled:=False; //ilk menünün, ikinci elemanı

 

 

 

 

 

Edit'e sadece sayı girilsin

 

Bir edit'e sadece istediğiniz karakterlerin girilmesini sağlayabilirsiniz.

Bunun için Edit'in OnKeyPress olayına aşağıdaki kodu yazın.

if not (key in ['0'..'9',#8]) then

begin

Key:=#0; //girilen karakter rakam veya backspace değilse null(#0)'a dönüştür

Beep; //bip sesi ile kullanıcıyı uyar.

end;

 

 

 

NOT:Kullanıcı Edit'e rakamların dışında karakter giremez, ancak Paste ile Edit'e bir

metni kopyalayabilir. Bunuda Edit'in OnExit olayında kontrol edip, girilen değerin

istediğiniz şekilde olup olmadığını kontrol edebilirsiniz.

 

 

 

 

Bir Popup menüyü kod ile gösterme

 

PopupMenu1.Popup(Form1.Left+60,Form1.Top+140);

 

 

 

 

Sistem tarihini ve saatini değiştirmek

 

Sistemin tarihini ve saatini değiştirmek 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;

 

 

 

 

Sayıları virgüllerle yazmak

 

Bu iş için FormatFloat fonksiyonunu kullanabilirsiniz. Sayı windows'unuz ayarına

 

göre 12.345.678 veya 12,345,678 şeklinde gösterilir.

procedure TForm1.Button1Click(Sender: TObject);

var

i : integer;

begin

i := 12345678;

Memo1.Lines.Add(FormatFloat('#,', i));

 

 

 

 

Edit'e girilen metnin ilk harfini büyük harf yapma

 

Bunun için Edit'in OnKeyPress olayına aşağıdaki kodu ekleyin.

with Sender as TEdit do

if (SelStart = 0) or

(Text[SelStart] = ' ') then

if Key in ['a'..'z'] then

Key := UpCase(Key);

 

 

 

 

 

Fareyi meşgul şekilde göstermek

 

 

Bir işlem yaparken makinenin meşgul olduğunu göstermek için fareyi kum saati

şeklinde gösterip sonra eski haline getirmek için aşağıdaki gibi bir kod

kullanabilirsiniz.

try

Screen.Cursor := crHourGlass;

{buraya kodunuzu yazın...}

finally

Screen.Cursor := crDefault;

end;

Application.ProcessMessages;

 

 

 

 

Çok Satırlı İpucu

 

procedure TForm1.FormCreate(Sender: TObject);

begin

SpeedButton1.Hint:='Çok satırlı ipucunu '+chr(13)+

'mutlaka denemelisiniz '+chr(13)+'çok güzel';

end;

 

 

 

Form'un arka kısmına bir resmi döşemek

 

Bitmap: TBitmap;

procedure TForm1.FormCreate(Sender: TObject);

begin

Bitmap := TBitmap.Create;

Bitmap.LoadFromFile('C:WINDOWScars.BMP');

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

 

 

 

 

Hareketli İmleç(animated cursor)leri kullanma

 

procedure TForm1.Button1Click(Sender:TObject);

 

var

 

h : THandle;

 

begin h := LoadImage(0, 'C:TheWallMagic.ani', IMAGE_CURSOR,0,0,LR_DEFAULTSIZE orLR_LOADFROMFILE); if h = 0 then ShowMessage('Cursor not loaded') else begin Screen.Cursors[1] := h; Form1.Cursor := 1; end; end;

 

 

 

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 form üzerindeki tüm bileşenleri read only(salt okunur) yapma

uses kısmına typinfo unitini ekleyin.

procedure TForm1.SetReadOnly( Value : boolean ) ;

var

PropInfo : PPropInfo ;

Component : TComponent ;

i : integer ;

begin

for i := 0 to ComponentCount - 1 do begin

Component := Components[ i ] ;

if Component is TControl then begin

PropInfo := GetPropInfo( Component.ClassInfo, 'ReadOnly' ) ;

if Assigned( PropInfo ) and

( PropInfo^.PropType^.Kind = tkEnumeration ) then

SetOrdProp( Component, PropInfo, integer( Value ) ) ;

end ;

end ;

end ;

procedure TForm1.Button1Click(Sender: TObject);

begin

SetReadOnly( true ) ;

end;

 

 

 

 

 

Dikdörtgen olmayan Edit'ler

 

Değişik şekilde bir edit elde etmek için formun OnCreate olayına aşağıdaki

kodu yazın.

SetWindowRgn(Edit1.handle,

CreateRoundRectRgn(2,2,Edit1.Width-2,Edit1.Height-2,15,15),

True);

 

 

 

 

Bir klasörün boyutunu öğrenmek

Bir klasördeki dosyaların kaç byte yer kapladığını öğrenmek için

function TForm1.GetDirectorySize(const ADirectory: string): Integer;

var

Dir: TSearchRec;

Ret: integer;

Path: string;

begin

Result := 0;

Path := ExtractFilePath(ADirectory);

Ret := Sysutils.FindFirst(ADirectory, faAnyFile, Dir);

 

if Ret <> NO_ERROR then

exit;

 

try

while ret=NO_ERROR do

begin

inc(Result, Dir.Size);

if (Dir.Attr in [faDirectory]) and (Dir.Name[1] <> '.') then

Inc(Result, GetDirectorySize(Path + Dir.Name + '*.*'));

Ret := Sysutils.FindNext(Dir);

end;

finally

Sysutils.FindClose(Dir);

end;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

Showmessage(intToStr(getdirectorysize('C:windows')));

end;

 

 

 

 

Bir dosyanın özelliklerini gösterme

procedure TForm1.Button1Click(Sender: TObject);

var

sei : TShellExecuteInfo;

begin

FillChar(sei,SizeOf(sei),#0);

sei.cbSize:=SizeOf(sei);

sei.lpFile:=PChar('c:windowsnotepad.exe');

sei.lpVerb:='properties';

sei.fMask:=SEE_MASK_INVOKEIDLIST;

ShellExecuteEx(@sei);

end;

 

 

 

Programım hangi klasörde çalışıyor

 

procedure TForm1.Button1Click(Sender: TObject);

var

path: string;

begin

Path := ExtractFilePath(ParamStr(0));

Showmessage (path);

end;

 

 

 

Bir dosyayı geri dönüşüm kutusuna (recyle bin) atmak

 

uses kısmına shellapi unitini ekleyin.

procedure TForm1.Button1Click(Sender: TObject);

var

T : TSHFileOpStruct;

begin

FillChar(T,SizeOf(TSHFileOpStruct),#0);

with T do

begin

Wnd:=0;

wFunc:=FO_DELETE;

pFrom:=Pchar('c:test2.avi');

fFlags:=FOF_ALLOWUNDO;

end;

SHFileOperation(T);

end;

 

 

 

Bir dosyanın boyutunu bulmak

 

procedure TForm1.Button1Click(Sender: TObject);

var

srFileSR: TSearchRec;

sFileName, sFileSize: string;

begin

sFileName := 'c:test2.avi';

FindFirst(sFileName,faAnyFile,srFileSR);

sFileSize := IntToStr(srFileSR.Size);

Showmessage(sFileSize);

end;

 

 

 

Bmp dosyasını JPEG'e dönüştürme

 

uses kısmına jpeg unitini ekleyin.

procedure TForm1.Button1Click(Sender: TObject);

var

MyJPEG : TJPEGImage;

MyBMP : TBitmap;

begin

MyBMP := TBitmap.Create;

with MyBMP do

try

LoadFromFile('c:winntACD Wallpaper.bmp');

MyJPEG := TJPEGImage.Create;

with MyJPEG do begin

Assign(MyBMP);

SaveToFile('c:winntACD Wallpaper.JPEG');

Free;

end;

finally

Free;

 

end;

end;

 

 

 

DELPHI -- ASSEMBLY İPUCU

 

1-Bilgisayarı reboot etmek

asm

cli

@@WaitOutReady:

in al,64h

test al,00000010b

jnz

@@WaitOutReady

mov al,0FEh

out 64h,al

End;

 

 

 

DELPHI FORM İPUCU

1. Form üzerindeki bileşenleri resolution oranında büyütme.

 

//640*480 referans olarak alindi

procedure AdjustResolution(oForm:TForm);

var

iPercentage:integer;

begin

if Screen.Width > 640 then

begin

iPercentage:=Round(((Screen.Width-640)/640)*100)+100;

oForm.ScaleBy(iPercentage,100);

end;

end;

AdjustResolution(Self);

 

 

 

2. Formun title Bar'da gözükmesini engellemek.

 

{ Mutlaka Winprocs & WinTypes unitlerinin çagrilmasi gerekli }

 

Procedure TSeninFormName.HideTitlebar;

Var

Save : LongInt;

Begin

If BorderStyle=bsNone then Exit;

Save:=GetWindowLong(Handle,gwl_Style);

If (Save and ws_Caption)=ws_Caption then Begin

Case BorderStyle of

bsSingle,

bsSizeable : SetWindowLong(Handle,gwl_Style,Save and

(Not(ws_Caption)) or ws_border);

bsDialog : SetWindowLong(Handle,gwl_Style,Save and

(Not(ws_Caption)) or ds_modalframe or ws_dlgframe);

End;

Height:=Height-getSystemMetrics(sm_cyCaption);

Refresh;

End;

end;

 

Procedure TSeninFormName.ShowTitlebar;

Var

Save : LongInt;

begin

If BorderStyle=bsNone then Exit;

Save:=GetWindowLong(Handle,gwl_Style);

If (Save and ws_Caption)<>ws_Caption then Begin

Case BorderStyle of

bsSingle,

bsSizeable : SetWindowLong(Handle,gwl_Style,Save or ws_Caption or

ws_border);

bsDialog : SetWindowLong(Handle,gwl_Style,Save or ws_Caption or

ds_modalframe or ws_dlgframe);

End;

Height:=Height+getSystemMetrics(sm_cyCaption);

Refresh;

End;

end;

 

 

 

3. Form'da kendi hotkeyini olusturma...

 

//Önce formun KeyPreview := true; yapin.

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

Shift: TShiftState);

begin

if (ssCtrl in Shift) and (chr(Key) in ['A', 'a']) then

ShowMessage('Ctrl-A');

end;

 

 

 

4. MDI Child formun kapatılması...

 

//Formun onClose olayina asagidaki satiri yazmaniz yeterli.

Action := caFree;

 

5. Formu ilk açılışta minimize açmak...

 

//Formun onCreate olayina

ShowWindow(Handle, SW_MINIMIZE);

//yazin...

 

Delphi -- Miscellaneous İpuçları

 

1. Programı sleep moduna alma...

 

Procedure MsSleep(ms : Integer);

Var

tmpTime : Integer;

tmpMs : Integer;

Begin

 

tmpMs := ms;

tmpTime := GetTickCount + tmpMs;

While tmpTime > GetTickCount Do

Application.ProcessMessages;

End;

{Program kapanışında istediğiniz bir açıklamayı koyup çalıştırın

bu uyuma metodunu engellemenin yolu yok ) }

 

 

 

2. Saat'i parçalayarak yaz...

 

// Kayıtları oluştur

type TimeParse = record

timeDay : Integer;

timeHour : Integer;

timeMin : Integer;

timeSec : Integer;

timeMilli : Integer;

end;

 

 

// function burda başlıyor

function DoTime(MilliSeconds : Integer) : TimeParse;

begin

// Değerleri sıfırla

Result.timeHour := 0;

Result.timeMin := 0;

Result.timeDay := 0;

Result.timeSec := 0;

Result.timeMilli := 0;

// Günü al

While MilliSeconds > 86399999 Do

Begin

Result.timeDay := Result.timeDay + 1;

MilliSeconds := MilliSeconds - 86400000;

End;

// Saati al

While MilliSeconds > 3599999 Do

Begin

Result.timeHour := Result.timeHour + 1;

MilliSeconds := MilliSeconds - 3600000;

End;

// Dakikayı al

While MilliSeconds > 59999 Do

Begin

Result.timeMin := Result.timeMin + 1;

MilliSeconds := MilliSeconds - 60000;

End;

// Saniyeyi al

While MilliSeconds > 999 Do

Begin

Result.timeSec := Result.timeSec + 1;

MilliSeconds := MilliSeconds - 1000;

End;

// Kaç milisaniye geçti

Result.timeMilli := MilliSeconds;

end;

 

Procedure TFrom1.Button1Click(Sender:TObject)

Var

FTimeParse : TTimeParse;

I : Integer;

begin

I := GetTickCount;

 

I := GetTickCount - I;

LabelDays.Caption := FTimeParse.timeDay;

LabelHours.Caption := FTimeParse.timeHour;

LabelMinutes.Caption := FTimeParse.timeMin;

LabelSeconds.Caption := FTimeParse.timeSec;

LabelMilliseconds.Caption := FTimeParse.timeMilli;

end;

 

 

 

Delphi -- Sistem İpuçları

 

 

 

1. Registryden kayıt okuma...

 

procedure TForm1.FormCreate(Sender: TObject);

Var

Registry: TRegistry;

Listan:TStringList;

begin

Listan := TStringList.create;

Registry := TRegistry.Create;

try

Registry.RootKey := HKey_Classes_Root;

Registry.OpenKey('',False);

Registry.GetKeynames(Listan);

ComboBox1.Items := Listan;

finally

Registry.Free;

end;

end;

 

 

 

2. Porttan bilgi oku...

 

function ReadPortB( wPort : Word ) : Byte;

begin

asm

mov dx, wPort

in al, dx

mov result, al

end;

end;

 

 

 

3. Porta bilgi gönder...

 

procedure WritePortB( wPort : Word; bValue : Byte );

begin

asm

mov dx, wPort

mov al, bValue

out dx, al

end;

end.

 

 

 

4.Uygulamanız Desktop'ta kısayol oluştursun..

 

procedure desktopShortcut(ffilename:string; fcaption: widestring);

var

IObject : IUnknown;

ISLink : IShellLink;

IPFile : IPersistFile;

PIDL : PItemIDList;

InFolder : array[0..MAX_PATH] of Char;

TargetName : String;

LinkName : WideString;

FLinkName : String;

begin

TargetName := ffilename;

 

IObject := CreateComObject(CLSID_ShellLink);

ISLink := IObject as IShellLink;

IPFile := IObject as IPersistFile;

 

with ISLink do begin

SetPath(pChar(TargetName));

SetWorkingDirectory

(pChar(ExtractFilePath(TargetName)));

end;

 

SHGetSpecialFolderLocation

(0, CSIDL_DESKTOPDIRECTORY, PIDL);

SHGetPathFromIDList

(PIDL, InFolder);

FlinkName := ''+ FCaption + '.lnk';

LinkName := InFolder + FlinkName;

IPFile.Save(PWChar(LinkName), false);

end;

 

Kullanımı:

DesktopShortcut('C:/windows/notepad.exe','Notepad');

 

 

 

Delphi -- Database İpuçları

 

 

 

 1. İstenilen alanları Combobox'a yazdırma...

 

procedure TForm1.FormCreate(Sender: TObject);

begin

with Table1 do begin

DisableControls;

try

First

while not EOF do begin

with MyCombo.Items do

Objects[Add(FieldByName('Terms').AsString)] := Pointer((FieldByName('EmpNo').AsInteger));

Next;

end;

finally

EnableControls;

end;

end;

end;

 

procedure TForm1.MyComboClick(Sender: TObject);

var EmpNo: Integer;

begin

with MyCombo do

EmpNo:=LongInt(Items.Objects[ ItemIndex ]);

ShowMessage('Emp.No.: ' + IntToStr(EmpNo));

End;

 

 

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