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

ListBox'a OnChange Olayı ekleme (Yeni bir nesne olarak)

UNIT Lbox;

 

INTERFACE

 

USES

SysUtils, WinTypes, Messages, Classes, Controls, Graphics, Forms,

Menus, StdCtrls;

 

Type

TCngListBox = Class(TListBox)

private

FOnChange : TNotifyEvent;

FLastSel : integer;

procedure Click; override;

protected

procedure Change; Virtual;

published

property OnChange : TNotifyEvent read FOnChange write FOnChange;

public

constructor create(AOwner : TComponent); override;

End;

 

Procedure Register;

 

IMPLEMENTATION

 

procedure TCngListBox.Change;

begin

FLastSel := ItemIndex;

if assigned(FOnChange) then FOnChange(self);

end;

 

procedure TCngListBox.Click;

begin

inherited Click;

if FLastSel <> ItemIndex then

Change;

end;

 

constructor TCngListBox.Create;

begin

Inherited Create(AOwner);

FLastSel := -1;

end;

 

procedure Register;

begin

RegisterComponents('FreeWare**[TCngListBox]);

end;

 

END.

 

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

 

StatusBar'ın panellerinin dinamik olarak değiştirmek(Font değişimine rağmen)

With StatusBar1.Panels[1] do begin

Text := Edit1.Text;

Canvas.Font.Size := StatusBar1.Font.Size;

Width := Canvas.TextWidth(Text) + 10;

end;

 

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

 

StatusBar'a bir alternatif (Gauge'li)

unit Status;

 

interface

 

uses

SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,

Forms, Dialogs, ExtCtrls, Menus, Gauges;

 

type

TStatus = class(TCustomPanel)

private

FDate : Boolean;

FKeys : Boolean;

FTime : Boolean;

FResources : Boolean;

DateTimePanel : TPanel;

ResPanel : TPanel;

ResGauge : TGauge;

CapPanel : TPanel;

 

NumPanel : TPanel;

InsPanel : TPanel;

HelpPanel : TPanel;

UpdateWidth : Boolean;

FTimer : TTimer;

procedure SetDate(A: Boolean);

procedure SetKeys(A: Boolean);

procedure SetTime(A: Boolean);

procedure SetResources(A: Boolean);

procedure SetCaption(A: String);

Function GetCaption: String;

procedure CMFontChanged(var Message: TMessage); message CM_FONTCHANGED;

 

public

constructor Create(AOwner: TComponent); override;

destructor Destroy; override;

procedure SetupPanelFields(ThePanel: TPanel);

procedure SetupPanel(ThePanel: TPanel; WidthMask: String);

procedure UpdateStatusBar(Sender: TObject);

published

property ShowDate: Boolean read FDate write SetDate default True;

property ShowKeys: Boolean read FKeys write SetKeys default True;

 

property ShowTime: Boolean read FTime write SetTime default True;

property ShowResources: Boolean read FResources write SetResources

default True;

property BevelInner;

property BevelOuter;

property BevelWidth;

property BorderStyle;

property BorderWidth;

property Caption: string read GetCaption write SetCaption;

 

property Color;

property Ctl3D;

property DragCursor;

property DragMode;

property Enabled;

property Font;

property ParentColor;

property ParentCtl3d;

property ParentFont;

property ParentShowHint;

property PopUpMenu;

property ShowHint;

property Visible;

end;

 

procedure Register;

 

implementation

 

procedure Register;

begin

RegisterComponents('Additional** [TStatus]);

end;

 

procedure TStatus.SetupPanelFields(ThePanel: TPanel);

begin

with ThePanel do

begin

Alignment := taCenter;

Caption := '';

BevelInner := bvLowered;

BevelOuter := bvNone;

{Set all these true so they reflect the settings of the TStatus}

ParentColor := True;

ParentFont := True;

 

ParentCtl3D := True;

end;

end;

 

procedure TStatus.SetupPanel(ThePanel: TPanel; WidthMask: String);

begin

SetupPanelFields(ThePanel);

with ThePanel do

begin

Width := Canvas.TextWidth(WidthMask);

Align := alRight;

end;

end;

 

constructor TStatus.Create(AOwner: TComponent);

begin

inherited Create(AOwner);

Parent := TWinControl(AOwner);

 

FTime := True;

FDate := True;

FKeys := True;

FResources := True;

{Force the status bar to be aligned bottom}

Align := alBottom;

Height := 19;

BevelInner := bvNone;

BevelOuter := bvRaised;

{When UpdateWidth is set TRUE, status bar will recalculate panel widths once}

UpdateWidth := True;

Locked := True;

TabOrder := 0;;

TabStop := False;

Font.Name := 'Arial';

Font.Size := 8;

{Create the panel that will hold the date & time}

 

DateTimePanel := TPanel.Create(Self);

DateTimePanel.Parent := Self;

SetupPanel(DateTimePanel,' 00/00/00 00:00:00 am ');

{Create the panel that will hold the resources graph}

ResPanel := TPanel.Create(Self);

ResPanel.Parent := Self;

SetupPanel(ResPanel,' ');

{Create the 2 Gauges that will reside within the Resource Panel}

ResGauge := TGauge.Create(Self);

ResGauge.Parent := ResPanel;

ResGauge.Align := alClient;

 

ResGauge.ParentFont := True;

ResGauge.BackColor := Color;

ResGauge.ForeColor := clLime;

ResGauge.BorderStyle := bsNone;

{Create the panel that will hold the CapsLock state}

CapPanel := TPanel.Create(Self);

CapPanel.Parent := Self;

SetupPanel(CapPanel,' Cap ');

{Create the panel that will hold the NumLock state}

NumPanel := TPanel.Create(Self);

NumPanel.Parent := Self;

SetupPanel(NumPanel,' Num ');

 

{Create the panel that will hold the Insert/Overwrite state}

InsPanel := TPanel.Create(Self);

InsPanel.Parent := Self;

SetupPanel(InsPanel,' Ins ');

{Create the panel that will hold the status text}

HelpPanel := TPanel.Create(Self);

HelpPanel.Parent := Self;

SetupPanelFields(HelpPanel);

{Have the help panel consume all remaining space}

HelpPanel.Align := alClient;

HelpPanel.Alignment := taLeftJustify;

 

{This is the timer that will update the status bar at regular intervals}

FTimer := TTimer.Create(Self);

If FTimer <> Nil then

begin

FTimer.OnTimer := UpdateStatusBar;

{Updates will occur twice a second}

FTimer.Interval := 500;

FTimer.Enabled := True;

end;

end;

 

destructor TStatus.Destroy;

begin

FTimer.Free;

HelpPanel.Free;

 

InsPanel.Free;

NumPanel.Free;

CapPanel.Free;

ResGauge.Free;

ResPanel.Free;

DateTimePanel.Free;

inherited Destroy;

end;

 

procedure TStatus.SetDate(A: Boolean);

begin

FDate := A;

UpdateWidth := True;

end;

 

procedure TStatus.SetKeys(A: Boolean);

begin

FKeys := A;

UpdateWidth := True;

end;

 

procedure TStatus.SetTime(A: Boolean);

begin

 

FTime := A;

UpdateWidth := True;

end;

 

procedure TStatus.SetResources(A: Boolean);

begin

FResources := A;

UpdateWidth := True;

end;

 

{When we set or get the TStatus caption, it is affecting the HelpPanel

caption instead}

procedure TStatus.SetCaption(A: String);

begin

HelpPanel.Caption := ' '+A;

end;

 

function TStatus.GetCaption: String;

begin

 

GetCaption := HelpPanel.Caption;

end;

 

{This procedure sets the captions appropriately}

procedure TStatus.UpdateStatusBar(Sender: TObject);

begin

if ShowDate and ShowTime then

DateTimePanel.Caption := DateTimeToStr(Now)

else

if ShowDate and not ShowTime then

DateTimePanel.Caption := DateToStr(Date)

else

if not ShowDate and ShowTime then

 

DateTimePanel.Caption := TimeToStr(Time)

else

DateTimePanel.Caption := '';

if UpdateWidth then with DateTimePanel do

if ShowDate or ShowTime then

Width := Canvas.TextWidth(' '+Caption+' ')

else

Width := 0;

if ShowResources then

begin

ResGauge.Progress := GetFreeSystemResources(GFSR_SYSTEMRESOURCES);

 

if ResGauge.Progress < 20 then

ResGauge.ForeColor := clRed

else

ResGauge.ForeColor := clLime;

end;

if UpdateWidth then

if ShowResources then

ResPanel.Width := Canvas.TextWidth(' ')

else

ResPanel.Width := 0;

if ShowKeys then

begin

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

 

NumPanel.Caption := ' Num ' else NumPanel.Caption := '';

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

CapPanel.Caption := ' Cap ' else CapPanel.Caption := '';

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

InsPanel.Caption := ' Ins ' else InsPanel.Caption := '';

end;

if UpdateWidth then

if ShowKeys then

 

begin

NumPanel.Width := Canvas.TextWidth(' Num ');

InsPanel.Width := Canvas.TextWidth(' Ins ');

CapPanel.Width := Canvas.TextWidth(' Cap ');

end

else

begin

NumPanel.Width := 0;

InsPanel.Width := 0;

CapPanel.Width := 0;

end;

UpdateWidth := False;

end;

 

{This allows font changes to be detected so the panels will be adjusted}

 

procedure TStatus.CMFontChanged(var Message: TMessage);

begin

inherited;

UpdateWidth := True;

end;

 

end.

 

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

 

sürücü listesi (kısa kod)

procedure TForm1.Button1Click(Sender: TObject);

var

ld : DWORD;

i : integer;

begin

memo1.clear;

ld := GetLogicalDrives;

for i := 0 to 25 do begin

if (ld and (1 shl i)) <> 0 then Memo1.Lines.Add(Char(Ord('A') + i) + ':');

end;

end;

 

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

 

Ağ üzerinden ve İnternetten ip adresine göre dosya alma(gönderme)

//Formumuza 3 Edit, 1 openDialod, 1 saveDialog, 1 Button, 1 NMStrm, 1 NMStrmServ, 1 İmage Ekleyin ve asagıdakı kodları yazın

 

 

 

 

procedure TForm1.FormCreate(Sender: TObject);

begin

Edit1.text:='127.0.0.1';

edit2.text:='6711';

edit3.text:='Adınızı Giriniz';

NMstrm1.timeout:=90000;

NMStrmServ1.Timeout:=90000;

end;

 

procedure TForm1.Edit1Change(Sender: TObject);

begin

NMStrm1.host:=edit1.text;

end;

 

procedure TForm1.Edit2Change(Sender: TObject);

begin

NMstrm1.port:=strtoint(edit2.text);

nmstrmserv1.port:=strtoint(edit2.text);

end;

 

procedure TForm1.Edit3Change(Sender: TObject);

begin

nmstrm1.fromname:=edit3.text;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

var

Fstrm: TFileStream;

begin

if opendialog1.execute then

begin

FStrm:=TFilestream.create(Opendialog1.Filename, fmopenread);

try

NMStrm1.postit(Fstrm);

finally

FStrm.free;

end;

end;

end;

 

procedure TForm1.NMStrm1PacketSent(Sender: TObject);

begin

Caption:=inttostr(nmstrm1.bytessent)+'/'+ inttostr(nmstrm1.bytestotal);

end;

 

procedure TForm1.NMStrm1MessageSent(Sender: TObject);

begin

Caption:='Dosya Gönderildi';

 

end;

 

procedure TForm1.NMStrmServ1MSG(Sender: TComponent; const sFrom: String;

strm: TStream);

var

fstrm:tfilestream;

begin

Caption:=sfrom+'dan'+inttostr(strm.size)+'boyutund a dosya geldi';

if savedialog1.execute then

begin

if fileexists(savedialog1.filename) then

deletefile(savedialog1.filename);

fstrm:=tfilestream.create(savedialog1.filename, fmcreate);

try

fstrm.copyfrom(strm, strm.size);

finally

end;

if lowercase(Extractfileext(savedialog1.filename))='. bmp' then

image1.picture.loadfromfile(savedialog1.filename);

end;

end;

 

end

 

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

 

Burası Nedir????

Burası Kod Bank mi yoksa forummu :))

 

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

 

mssql 2005 den 2000 cıktı

Sql Server management tan databesini sağ tıkla

orada Tasks kısmında Generate Scrip kısmı var. Onu tıkla

Tekrar database ni falan seç ondan sonra Option kısmı var orda

Script for Server Version'ı 2000 yaparsan yaparsın.

 

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

 

ascii kodlarını veren program

ascii kodlarını veren program

1 edit 2 label ascii leri denemek içinde 1 memo kullanın label 1in visible özlln false yapın label 2 de yazılan rakamın ascii kodu görünür deneyin

procedure TForm1.FormCreate(Sender: TObject);

begin

edit1.Text:=";

memo1.Text:=";

end;

 

procedure TForm1.Edit1Change(Sender: TObject);

begin

label1.Caption:=edit1.Text+'  harfinin ascii kodu:  ';

label1.Visible:=true;

end;

 

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

label2.Caption:=inttostr(ord(key));

end;

 

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

 

Delphi de dbexpress ile mysql veritabanına bağlanma

Kısaca mysql ile bağlantıyı nasıl yapacağınızı açıklamaya çalışacağım

 

Forma bir tane dbexpress paletinden  sqlconnection ekleyin

 

Eklediğiniz sqlconnection in propeties penceresinden params yazan yerin yanın daki ??? yazan butonu tıklayın

Burada bazı parametreler gelecek.

DriverName=MySQL

HostName=localhost

Database=doda

User_Name=doda

Password=sa

BlobSize=-1

ErrorResourceFile=

LocaleCode=0000

 

buradaki bilgileri doğru biçimde doldurun. Bunları oluşturduğunuz win mysqladmin penceresinden de alabilirsiniz..

 

Daha sonra loginprompt ozelliğini (Propeties de) false yapın.

Bu sayedeprogram çalışınca login bilgisi istemez..

 

Son olarak connected özelliğini true yapın.

Eğer girilen değerlerde bir problem yoksa bağlantı gerçekleşecektir..

 

Daha sonra forma dbexpress paletinden sqlquery koyup normal bir query ile işlem yapar gibi kullanabilirsiniz.

 

Sqldataset te kullanımıkolay bir komponent tir?

command text ozelliğine sql ifadelerini yazarak kullanmanız gerekiyor ama rahat bir kullanım sağlıyor..

Sadece dikkaty etmeniz gerekensql sqlconnection ozeilliklerini yukarda oluşturduğunuz sqlconnection olarak ayarlamanız...

 

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

 

IIS + DELPHI

Arkadaşlar burası yeri değil ama, mecbur kaldım.

ISAPI kullanarak Delphide WEB tabanlı uygulama geliştirmiş

arkadaşlar acilen ba_talay@yahoo.com adresinden irtibata

geçebilirler..

Arkadaşlar tekrar özür diliyorum..

 

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

 

Yardım istiyorum!..

A) Aşağıdaki gibi listeleme nasıl yapabiliriz (Quick Reportda)

 

               1                    2                      3

Ad Soyad : Osman              Erhan                   Ali

Adres    : cumhuriyet...      Atatürk meydanı ...     Musabey Cad...

Telefon  : 0212 543 4343      0212 532 6564           0212 505 5451

ilçe     : fatih              Aksaray                 Etiler

il       : istanbul           istanbul                İstanbul

 

 

B) Bende bu şekilde oluyor,Bu şekilde listeleme olmayacak...

               1                  2                   3

Ad Soyad : Osman              Osman               Osman

Adres    : cumhuriyet...      cumhuriyet...       cumhuriyet...

Telefon  : 0212 543 4343      0212 543 4343       0212 543 4343

ilçe     : fatih              fatih               fatih

il       : istanbul           istanbul            İstanbul

 

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

 

Komutlar

Goto komutu

        __________________________

var

  i : Integer;

 

label

  GotoLabel;

 

begin

  for i := 1 to 10 do

  begin

    ShowMessage('i = '+IntToStr(i));

 

    if i = 4 then Goto GotoLabel;   // Conditionally exit the loop

  end;

 

  ShowMessage('The loop finished OK');

GotoLabel:

  ShowMessage('Loop finished with i = '+IntToStr(i));

end;

 

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

 

Tetris

//Delphi Kullanılarak Tasarlanmış Bir Tetris Olyunu.

//Programın Tamamı İçin halitclp@hotmail.com

unit Unit1;

 

interface

 

uses

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

  Dialogs, Buttons, ExtCtrls, StdCtrls, MPlayer, XPMan, Menus, DB, DBTables,

  Grids, DBGrids, FileCtrl;

 

type

  TForm1 = class(TForm)

    Timer1: TTimer;

    MediaPlayer1: TMediaPlayer;

    XPManifest1: TXPManifest;

    BitBtn1: TBitBtn;

    DataSource1: TDataSource;

    Table1: TTable;

    BitBtn2: TBitBtn;

    Timer2: TTimer;

    BitBtn3: TBitBtn;

    FileListBox1: TFileListBox;

    Button1: TButton;

    Button2: TButton;

    Button3: TButton;

    procedure FormCreate(Sender: TObject);

    procedure Timer1Timer(Sender: TObject);

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

      Shift: TShiftState);

    procedure BitBtn1Click(Sender: TObject);

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

      Shift: TShiftState);

    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure BitBtn2Click(Sender: TObject);

    procedure Timer2Timer(Sender: TObject);

    procedure FormActivate(Sender: TObject);

    procedure BitBtn3Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form1       : TForm1;

  Sx1         : Byte;

  Sy1         : Byte;

  Sx2         : Byte;

  Sy2         : Byte;

  Sx3         : Byte;

  Sy3         : Byte;

  Sx4         : Byte;

  Sy4         : Byte;

  Tip         : Byte;

  Yon         : Byte;

  Art         : Byte;

  Ps          : Byte;

  Tp          : Byte;

  Tp1         : Byte;

  Yn          : Byte;

  Yn1         : Byte;

  Cev         : Byte;

  BrPuan      : Byte;

  Int1        : Integer;

  Int2        : Integer;

  Int3        : Integer;

  Int4        : Integer;

  Int5        : Integer;

  Int6        : Integer;

  Hiz1        : Integer;

  Hiz2        : Integer;

  Puan        : Integer;

  PatlamaSay  : Integer;

  Def         : String;

  Name        : String;

  Str         : String;

  KareKontrol : Boolean;

  Islem       : Boolean;

  Cikis       : Boolean;

  Dosya       : TextFile;

  KareX       : Array[0..11,0..21] Of Boolean;

implementation

 

{$R *.dfm}

 

Procedure Music(Secenek : Byte);

Begin

  Case Secenek Of

    1 : Form1.MediaPlayer1.FileName:=Def+'Ao-laser.wav';

    2 : Form1.MediaPlayer1.FileName:=Def+'Padexplo.wav';

    3 : Form1.MediaPlayer1.FileName:=Def+'clicker.wav';

    4 : Form1.MediaPlayer1.FileName:=Def+'wmpaud7.wav';

  End;

  Form1.MediaPlayer1.Open;

  Form1.MediaPlayer1.Play;

End;

 

Procedure PuanYaz;

Begin

    Form1.Canvas.Brush.Color:=clBlack;

    Form1.Canvas.Font.Color :=clWhite;

    Form1.Canvas.TextOut(240,100,'Ps  :'+IntToStr(PatlamaSay));

    Form1.Canvas.TextOut(240,120,'Br P:'+IntToStr(BrPuan));

    Form1.Canvas.TextOut(240,140,'Puan:'+IntToStr(Puan));

    Form1.Canvas.TextOut(240,160,'Hız :'+IntToStr(500-Hiz1));

End;

 

Procedure PuanHesapla;

Begin

    PatlamaSay:=PatlamaSay+Ps;

    If Ps=1 Then Puan:=Puan+10;

    If Ps=2 Then Puan:=Puan+25;

    If Ps=3 Then Puan:=Puan+40;

    If Ps=4 Then Puan:=Puan+60;

    Hiz1:=Hiz1-5;

    PuanYaz;

End;

 

Procedure KareCiz(Drm : Byte);

Begin

   If Drm=0 Then Form1.Canvas.Brush.Color:=clBlack;

   If Drm=1 Then Form1.Canvas.Brush.Color:=clSilver;

   Form1.Canvas.Rectangle(Sx1*20,Sy1*20,(Sx1+1)*20,(Sy1+1)*20);

   Form1.Canvas.Rectangle(Sx2*20,Sy2*20,(Sx2+1)*20,(Sy2+1)*20);

   Form1.Canvas.Rectangle(Sx3*20,Sy3*20,(Sx3+1)*20,(Sy3+1)*20);

   Form1.Canvas.Rectangle(Sx4*20,Sy4*20,(Sx4+1)*20,(Sy4+1)*20);

   Exit;

   Form1.Canvas.Font.Color:=clBlack;

   Form1.Canvas.TextOut(Sx1*20+5,Sy1*20+1,'1');

   Form1.Canvas.TextOut(Sx2*20+5,Sy2*20+1,'2');

   Form1.Canvas.TextOut(Sx3*20+5,Sy3*20+1,'3');

   Form1.Canvas.TextOut(Sx4*20+5,Sy4*20+1,'4');

End;

 

Procedure Skor;

Begin

   Music(4);

   Form1.Timer2.Interval:=1000;

   Form1.Canvas.Brush.Color:=clBlack;

   Form1.Canvas.Rectangle(0,0,Form1.Width,Form1.Height);

   Form1.Canvas.Brush.Color:=clWhite;

   Form1.Canvas.Rectangle(15,18,345,277);

   Form1.Canvas.Brush.Color:=clBlack;

   Form1.Canvas.Rectangle(18,21,342,274);

   Form1.Canvas.Font.Size:=14;

   Form1.Canvas.Font.Color:=clWhite;

   Int1:=0;

   Form1.Table1.First;

   Sleep(100);

   While Not Form1.Table1.Eof Do

   Begin

     Form1.Canvas.Brush.Color:=clBlack;

     Int1:=Int1+1;

     Form1.Canvas.TextOut(030,Int1*25,IntToStr(Int1));

     Form1.Canvas.TextOut(070,Int1*25,Form1.Table1.Fields[1].AsString);

     Form1.Canvas.TextOut(280,Int1*25,IntToStr(Form1.Table1.Fields[2].AsInteger));

     If Int1<>10 Then

     Begin

        Form1.Canvas.Brush.Color:=clWhite;

        Form1.Canvas.Rectangle(18,20+Int1*25,342,23+Int1*25);

     End;

     Form1.Table1.Next;

     Sleep(100);

   End;

   Cikis:=True;

End;

 

Procedure KareGoster(Drm : Byte);

Var

  Ust,Sol : Byte;

Begin

   Ust:=20;

   Sol:=220;

   If Drm=0 Then Form1.Canvas.Brush.Color:=clBlack;

   If Drm=1 Then Form1.Canvas.Brush.Color:=clWhite;

   Form1.Canvas.Rectangle(Sol+Sx1*10,Ust+Sy1*10,Sol+(Sx1+1)*10,Ust+(Sy1+1)*10);

   Form1.Canvas.Rectangle(Sol+Sx2*10,Ust+Sy2*10,Sol+(Sx2+1)*10,Ust+(Sy2+1)*10);

   Form1.Canvas.Rectangle(Sol+Sx3*10,Ust+Sy3*10,Sol+(Sx3+1)*10,Ust+(Sy3+1)*10);

   Form1.Canvas.Rectangle(Sol+Sx4*10,Ust+Sy4*10,Sol+(Sx4+1)*10,Ust+(Sy4+1)*10);

End;

 

Procedure Sag;

Begin

   Islem:=True;

   If (Tip=1) And (Yon=1) And (KareX[Sx4+1,Sy4]=True) Then Islem:=False;

   If (Tip=1) And (Yon=2) And ((KareX[Sx1+1,Sy1]=True) Or (KareX[Sx2+1,Sy2]=True) Or

                               (KareX[Sx3+1,Sy3]=True) Or (KareX[Sx4+1,Sy4]=True)) Then Islem:=False;

 

   If (Tip=2) And (Yon=1) And ((KareX[Sx2+1,Sy2]=True) Or (KareX[Sx4+1,Sy4]=True)) Then Islem:=False;

   If (Tip=3) And (Yon=1) And ((KareX[Sx2+1,Sy2]=True) Or (KareX[Sx4+1,Sy4]=True)) Then Islem:=False;

   If (Tip=3) And (Yon=2) And ((KareX[Sx2+1,Sy2]=True) Or (KareX[Sx3+1,Sy3]=True)

                                                       Or (KareX[Sx4+1,Sy4]=True)) Then Islem:=False;

 

   If (Tip=4) And (Yon=1) And ((KareX[Sx3+1,Sy3]=True) Or  (KareX[Sx4+1,Sy4]=True)) Then Islem:=False;

 

   If (Tip=4) And (Yon=2) And ((KareX[Sx1+1,Sy1]=True) Or  (KareX[Sx3+1,Sy3]=True)

                                                       Or  (KareX[Sx4+1,Sy4]=True)) Then Islem:=False;

   If (Tip=4) And (Yon=3) And ((KareX[Sx1+1,Sy1]=True) Or  (KareX[Sx4+1,Sy4]=True)) Then Islem:=False;

   If (Tip=4) And (Yon=4) And ((KareX[Sx2+1,Sy2]=True) Or  (KareX[Sx3+1,Sy3]=True)

                                                       Or  (KareX[Sx4+1,Sy4]=True)) Then Islem:=False;

 

 

   If (Tip=5) And (Yon=1) And ((KareX[Sx1+1,Sy1]=True) Or (KareX[Sx2+1,Sy2]=True)

                                                       Or (KareX[Sx4+1,Sy4]=True)) Then Islem:=False;

   If (Tip=5) And (Yon=2) And ((KareX[Sx1+1,Sy1]=True) Or (KareX[Sx4+1,Sy4]=True)) Then Islem:=False;

   If (Tip=5) And (Yon=3) And ((KareX[Sx2+1,Sy2]=True) Or (KareX[Sx3+1,Sy3]=True)

                                                       Or (KareX[Sx4+1,Sy4]=True)) Then Islem:=False;

   If (Tip=5) And (Yon=4) And ((KareX[Sx3+1,Sy3]=True) Or (KareX[Sx4+1,Sy4]=True)) Then Islem:=False;

 

   If (Tip=6) And (Yon=1) And ((KareX[Sx2+1,Sy2]=True) Or (KareX[Sx3+1,Sy3]=True)

                                                       Or (KareX[Sx4+1,Sy4]=True)) Then Islem:=False;

   If (Tip=6) And (Yon=2) And ((KareX[Sx3+1,Sy3]=True) Or (KareX[Sx4+1,Sy4]=True)) Then Islem:=False;

   If (Tip=6) And (Yon=3) And ((KareX[Sx2+1,Sy2]=True) Or (KareX[Sx3+1,Sy3]=True)

                                                       Or (KareX[Sx4+1,Sy4]=True)) Then Islem:=False;

   If (Tip=6) And (Yon=4) And ((KareX[Sx1+1,Sy1]=True) Or (KareX[Sx4+1,Sy4]=True)) Then Islem:=False;

   If (Tip=7) And (Yon=1) And ((KareX[Sx2+1,Sy2]=True) Or (KareX[Sx4+1,Sy4]=True)) Then Islem:=False;

   If (Tip=7) And (Yon=2) And ((KareX[Sx1+1,Sy1]=True) Or (KareX[Sx3+1,Sy3]=True)

                                                       Or (KareX[Sx4+1,Sy4]=True)) Then Islem:=False;

   If Islem=True Then

   Begin

     KareCiz(0);

     Sx1:=Sx1+1;

     Sx2:=Sx2+1;

     Sx3:=Sx3+1;

     Sx4:=Sx4+1;

     KareCiz(1);

     Exit;

   End;

   Beep;

End;

 

Procedure Sol;

Begin

   Islem:=True;

   If (Tip=1) And (Yon=1) And (KareX[Sx1-1,Sy1]=True) Then Islem:=False;

   If (Tip=1) And (Yon=2) And ((KareX[Sx1-1,Sy1]=True) Or (KareX[Sx2-1,Sy2]=True) Or

                               (KareX[Sx3-1,Sy3]=True) Or (KareX[Sx4-1,Sy4]=True)) Then Islem:=False;

 

   If (Tip=2) And (Yon=1) And ((KareX[Sx1-1,Sy1]=True) Or (KareX[Sx3-1,Sy3]=True)) Then Islem:=False;

 

   If (Tip=3) And (Yon=1) And ((KareX[Sx1-1,Sy1]=True) Or (KareX[Sx3-1,Sy3]=True)) Then Islem:=False;

   If (Tip=3) And (Yon=2) And ((KareX[Sx1-1,Sy1]=True) Or (KareX[Sx2-1,Sy2]=True)

                                                       Or (KareX[Sx3-1,Sy3]=True)) Then Islem:=False;

 

   If (Tip=4) And (Yon=1) And ((KareX[Sx1-1,Sy1]=True) Or (KareX[Sx4-1,Sy4]=True)) Then Islem:=False;

 

   If (Tip=4) And (Yon=2) And ((KareX[Sx1-1,Sy1]=True) Or (KareX[Sx3-1,Sy3]=True)

                                                       Or (KareX[Sx4-1,Sy4]=True)) Then Islem:=False;

   If (Tip=4) And (Yon=3) And ((KareX[Sx1-1,Sy1]=True) Or (KareX[Sx2-1,Sy2]=True)) Then Islem:=False;

   If (Tip=4) And (Yon=4) And ((KareX[Sx2-1,Sy2]=True) Or (KareX[Sx1-1,Sy1]=True)

                                                       Or (KareX[Sx4-1,Sy4]=True)) Then Islem:=False;

 

 

   If (Tip=5) And (Yon=1) And ((KareX[Sx1-1,Sy1]=True) Or (KareX[Sx2-1,Sy2]=True)

                                                       Or (KareX[Sx3-1,Sy3]=True)) Then Islem:=False;

   If (Tip=5) And (Yon=2) And ((KareX[Sx1-1,Sy1]=True) Or (KareX[Sx2-1,Sy2]=True)) Then Islem:=False;

   If (Tip=5) And (Yon=3) And ((KareX[Sx1-1,Sy1]=True) Or (KareX[Sx3-1,Sy3]=True)

                                                       Or (KareX[Sx4-1,Sy4]=True)) Then Islem:=False;

   If (Tip=5) And (Yon=4) And ((KareX[Sx1-1,Sy1]=True) Or (KareX[Sx4-1,Sy4]=True)) Then Islem:=False;

 

   If (Tip=6) And (Yon=1) And ((KareX[Sx1-1,Sy1]=True) Or (KareX[Sx2-1,Sy2]=True)

                                                       Or (KareX[Sx3-1,Sy3]=True)) Then Islem:=False;

   If (Tip=6) And (Yon=2) And ((KareX[Sx1-1,Sy1]=True) Or (KareX[Sx4-1,Sy4]=True)) Then Islem:=False;

   If (Tip=6) And (Yon=3) And ((KareX[Sx1-1,Sy1]=True) Or (KareX[Sx2-1,Sy2]=True)

                                                       Or (KareX[Sx3-1,Sy3]=True)) Then Islem:=False;

   If (Tip=6) And (Yon=4) And ((KareX[Sx1-1,Sy1]=True) Or (KareX[Sx2-1,Sy2]=True)) Then Islem:=False;

   If (Tip=7) And (Yon=1) And ((KareX[Sx1-1,Sy1]=True) Or (KareX[Sx3-1,Sy3]=True)) Then Islem:=False;

   If (Tip=7) And (Yon=2) And ((KareX[Sx1-1,Sy1]=True) Or (KareX[Sx2-1,Sy2]=True)

                                                       Or (KareX[Sx4-1,Sy4]=True)) Then Islem:=False;

   If Islem=True Then

   Begin

     KareCiz(0);

     Sx1:=Sx1-1;

     Sx2:=Sx2-1;

     Sx3:=Sx3-1;

     Sx4:=Sx4-1;

     KareCiz(1);

     Exit;

   End;

   Beep;

End;

 

Procedure SekilAktar(X1,Y1,X2,Y2,X3,Y3,X4,Y4:Byte);

Begin

    Sx1:=X1;

    Sx2:=X2;

    Sx3:=X3;

    Sx4:=X4;

    Sy1:=Y1;

    Sy2:=Y2;

    Sy3:=Y3;

    Sy4:=Y4;

End;

 

Procedure SekilDeg(X1,Y1,X2,Y2,X3,Y3,X4,Y4,Yn:Integer);

Begin

    If (KareX[Sx1+X1,Sy1+Y1]=True) Or (KareX[Sx2+X2,Sy2+Y2]=True)

    Or (KareX[Sx3+X3,Sy3+Y3]=True) Or (KareX[Sx4+X4,Sy4+Y4]=True) Then Exit;

    KareCiz(0);

    Sx1:=Sx1+X1;

    Sx2:=Sx2+X2;

    Sx3:=Sx3+X3;

    Sx4:=Sx4+X4;

    Sy1:=Sy1+Y1;

    Sy2:=Sy2+Y2;

    Sy3:=Sy3+Y3;

    Sy4:=Sy4+Y4;

    Yon:=Yn;

    KareCiz(1);

    Music(3);

End;

 

Procedure OyunEkrani;

Begin

   Form1.Canvas.Brush.Color:=clBlack;

   Form1.Canvas.Rectangle(0,0,Form1.Width,Form1.Height);

   Form1.Canvas.Pen.Color:=clBlack;

   Form1.Canvas.Brush.Color:=clWhite;

   Form1.Canvas.Rectangle(15,15,225,425);

   Form1.Canvas.Rectangle(230,15,340,215);

   Form1.Canvas.Brush.Color:=clBlack;

   Form1.Canvas.Rectangle(20,20,220,420);

   Form1.Canvas.Rectangle(235,20,335,210);

   Form1.Canvas.Font.Size:=12;

   Form1.Canvas.Font.Name:='Courier New Tur';

End;

 

Procedure Sekil(Tip1,Yon1 : Byte);

Begin

   Tip:=Tip1;

   Yon:=Yon1;

   If (Tip1=1) And (Yon1=1) Then  SekilAktar(4,1,5,1,6,1,7,1);  // Çubuk Yatay

   If (Tip1=1) And (Yon1=2) Then  SekilAktar(4,1,4,2,4,3,4,4);  // Çubuk Dikey

   If (Tip1=2) And (Yon1=1) Then  SekilAktar(4,1,5,1,4,2,5,2);  // Kare

   If (Tip1=3) And (Yon1=1) Then  SekilAktar(4,1,5,1,5,2,6,2);  // Z

   If (Tip1=3) And (Yon1=2) Then  SekilAktar(4,2,4,3,5,1,5,2);  // N

   If (Tip1=4) And (Yon1=1) Then  SekilAktar(4,1,5,1,6,1,5,2);  // T

   If (Tip1=4) And (Yon1=2) Then  SekilAktar(4,2,4,3,4,4,5,3);  // I-

   If (Tip1=4) And (Yon1=3) Then  SekilAktar(5,1,4,2,5,2,6,2);  //_I_

   If (Tip1=4) And (Yon1=4) Then  SekilAktar(4,2,5,1,5,2,5,3);  //-I-

   If (Tip1=5) And (Yon1=1) Then  SekilAktar(4,1,4,2,4,3,5,3);  //L

   If (Tip1=5) And (Yon1=2) Then  SekilAktar(6,1,4,2,5,2,6,2);  //_I

   If (Tip1=5) And (Yon1=3) Then  SekilAktar(4,1,5,1,5,2,5,3);  //-I

   If (Tip1=5) And (Yon1=4) Then  SekilAktar(4,1,5,1,6,1,4,2);  //I-

   If (Tip1=6) And (Yon1=1) Then  SekilAktar(4,3,5,1,5,2,5,3);  // _|

   If (Tip1=6) And (Yon1=2) Then  SekilAktar(4,1,5,1,6,1,6,2);  // _|

   If (Tip1=6) And (Yon1=3) Then  SekilAktar(4,1,4,2,4,3,5,1);  // _|

   If (Tip1=6) And (Yon1=4) Then  SekilAktar(4,1,4,2,5,2,6,2);  // _|

   If (Tip1=7) And (Yon1=1) Then  SekilAktar(5,1,6,1,4,2,5,2);  // /Z

   If (Tip1=7) And (Yon1=2) Then  SekilAktar(4,1,4,2,5,2,5,3);  // /N

End;

 

Procedure Yeni;

Begin

  Form1.Timer1.Interval:=0;

  If Cikis=True Then Exit;

 

  Tp:=Tp1;

  Yn:=Yn1;

  Sekil(Tp1,Yn1);

  KareGoster(0);

  Tp1:=Random(7)+1;

  Repeat

    Yn1:=Random(4)+1;

  Until ((Tp1=1) And (Yn1<=2)) Or

        ((Tp1=2) And (Yn1<=1)) Or

        ((Tp1=3) And (Yn1<=2)) Or

        ((Tp1=4) And (Yn1<=4)) Or

        ((Tp1=5) And (Yn1<=4)) Or

        ((Tp1=6) And (Yn1<=4)) Or

        ((Tp1=7) And (Yn1<=2));

  Sekil(Tp1,Yn1);

  KareGoster(1);

  //Sekil(1,1);

  Sekil(Tp,Yn);

  KareCiz(1);

  Sleep(200);

  Form1.Timer1.Interval:=Hiz1;

End;

 

Procedure YonDeg;

Begin

 

  If (Tip=1) And (Yon=1) Then // Çubuk  Yatay --> Dikey

  Begin

      SekilDeg(1,-1,0,0,-1,1,-2,2,2);

      Exit;

  End;

 

  If (Tip=1) And (Yon=2) Then // Çubuk  Dikey --> Yatay

  Begin

    SekilDeg(-1,1,0,0,1,-1,2,-2,1);

    Exit;

  End;

 

  If (Tip=3) And (Yon=1) Then // Z --> N

  Begin

    SekilDeg(0,1,-1,2,0,-1,-1,0,2);

    Exit;

  End;

 

  If (Tip=3) And (Yon=2) Then // N --> Z

  Begin

    SekilDeg(0,-1,1,-2,0,1,1,0,1);

    Exit;

  End;

 

  If (Tip=4) And (Yon=1) Then // T --> I-

  Begin

    SekilDeg(1,-1,0,0,-1,1,1,-1,2);

    Exit;

  End;

 

  If (Tip=4) And (Yon=2) Then // I- --> T

  Begin

    SekilDeg(0,0,-1,0,0,-1,0,0,3);

    Exit;

  End;

 

  If (Tip=4) And (Yon=3) Then //

  Begin

    SekilDeg(-1,1,1,-1,0,0,-1,1,4);

    Exit;

  End;

 

  If (Tip=4) And (Yon=4) Then //

  Begin

    SekilDeg(0,0,0,1,1,0,0,0,1);

    Exit;

  End;

 

  If (Tip=5) And (Yon=1) Then // L

  Begin

    SekilDeg(1,1,-1,1,0,0,0,0,2);

    Exit;

  End;

 

  If (Tip=5) And (Yon=2) Then // L

  Begin

    SekilDeg(-1,0,2,-1,1,0,0,1,3);

    Exit;

  End;

 

  If (Tip=5) And (Yon=3) Then // L

  Begin

    SekilDeg(0,0,0,0,1,-1,-1,-1,4);

    Exit;

  End;

 

  If (Tip=5) And (Yon=4) Then // L

  Begin

    SekilDeg(0,-1,-1,0,-2,1,1,0,1);

    Exit;

  End;

 

 

  If (Tip=6) And (Yon=1) Then // _|

  Begin

    SekilDeg(-1,-1,-1,1,0,0,0,0,2);

    Exit;

  End;

 

  If (Tip=6) And (Yon=2) Then // _|

  Begin

    SekilDeg(1,-1,0,0,-1,1,0,-2,3);

    Exit;

  End;

 

  If (Tip=6) And (Yon=3) Then // _|

  Begin

    SekilDeg(0,0,0,0,1,-1,1,1,4);

    Exit;

  End;

 

  If (Tip=6) And (Yon=4) Then // _|

  Begin

    SekilDeg(0,2,1,-1,0,0,-1,1,1);

    Exit;

  End;

 

  If (Tip=7) And (Yon=1) Then // Z --> N

  Begin

    SekilDeg(-1,-1,-2,0,1,-1,0,0,2);

    Exit;

  End;

 

  If (Tip=7) And (Yon=2) Then // N --> Z

  Begin

    SekilDeg(1,1,2,0,-1,1,0,0,1);

    Exit;

  End;

 

End;

 

 

procedure TForm1.FormCreate(Sender: TObject);

begin

   GetDir(0,Def);

   Table1.DatabaseName:=Def;

   Table1.TableName:='Score.db';

   Table1.Open;

   FileListBox1.Directory:=Def;

   Form1.Table1.IndexName:='byPounts';

end;

 

 

Procedure Yaz;

Begin

   For Int5:=1 To 10 Do

   Begin

      For Int6:=1 To 20 Do

      Begin

 

          If KareX[Int5,Int6]=True  Then Form1.Canvas.Brush.Color:=clWhite;

          If KareX[Int5,Int6]=False Then Form1.Canvas.Brush.Color:=clBlack;

          Form1.Canvas.Rectangle(Int5*20,Int6*20,(Int5+1)*20,(Int6+1)*20);

 

{         If KareX[Int5,Int6]=True  Then Form1.Canvas.Brush.Color:=clGreen;

          If KareX[Int5,Int6]=False Then Form1.Canvas.Brush.Color:=clGray;

          Form1.Canvas.Rectangle(300+Int5*20,Int6*20,300+(Int5+1)*20,(Int6+1)*20); }

      End;

   End;

End;

 

Procedure Kontrol;

Begin

  Ps:=0;

  For Int1:=1 To 20 Do

  Begin

     KareKontrol:=True;

     For Int2:=1 To 10 Do

     Begin

        If KareX[Int2,Int1]=False Then KareKontrol:=False;

     End;

 

     If KareKontrol=True Then

     Begin

        For Int3:=Int1 DownTo 2 Do

        Begin

          For Int4:=1 To 10 Do

          Begin

             KareX[Int4,Int3]:=KareX[Int4,Int3-1];

          End;

        End;

        For Int4:=1 To 10 Do KareX[Int4,1]:=False;

        Music(2);

        Ps:=Ps+1;

        Yaz;

        Sleep(200);

        Form1.Timer1.Interval:=Hiz1;

     End;

   End;

   If Ps>0 Then PuanHesapla;

End;

 

Procedure GameOwer;

Var

  A,B : Byte;

Begin

  Cikis:=True;

  Form1.Timer1.Interval:=0;

  Form1.Canvas.Brush.Color:=clWhite;

  For A:=20 DownTo 1 Do

  Begin

     For B:=1 To 10 Do

     Begin

         Form1.Canvas.Rectangle(B*20,A*20,(B+1)*20,(A+1)*20);

         Sleep(5);

      End;

   End;

  Name:=InputBox('Score','İsminizi Giriniz...',");

  If Name=" Then Name:='İsimsiz';

  Form1.Table1.Append;

  Form1.Table1.Fields[1].AsString:=Name;

  Form1.Table1.Fields[2].AsInteger:=Puan;

  Form1.Table1.Post;

  Form1.Table1.Last;

  If Form1.Table1.RecordCount>10 Then Form1.Table1.Delete;

  Form1.Canvas.Brush.Color:=clBlack;

  Form1.Canvas.Rectangle(0,0,Form1.Width,Form1.Height);

  Form1.BitBtn1.Visible:=True;

  Form1.BitBtn2.Visible:=True;

  Form1.BitBtn3.Visible:=True;

  Skor;

End;

 

Procedure Taban;

Begin

    If Cikis=True Then Exit;

    Form1.Timer1.Interval:=0;

    KareX[Sx1,Sy1]:=True;

    KareX[Sx2,Sy2]:=True;

    KareX[Sx3,Sy3]:=True;

    KareX[Sx4,Sy4]:=True;

    For Int1:=1 To 10 Do

    Begin

      If KareX[Int1,2]=True Then Cikis:=True;

    End;

    If Cikis=True Then

    Begin

      Form1.Timer1.Interval:=0;

      GameOwer;

      Exit;

    End;

    Yaz;

    Music(1);

    Kontrol;

    Yeni;

End;

 

Procedure Kaydet;

Begin

  Cikis:=True;

  Form1.Timer1.Interval:=0;

  Cev:=Application.MessageBox('Oyununuzu Kaydetmek İstiyor Musunuz...','Tetris',36);

  If Cev=6 Then

  Begin

    Name:=InputBox('Kaydet','Kayıt İçin Bir İsim Girin...',");

    If Name=" Then

    Begin

      Form1.Canvas.Brush.Color:=clBlack;

      Form1.Canvas.Rectangle(0,0,Form1.Width,Form1.Height);

      Form1.BitBtn1.Visible:=True;

      Form1.BitBtn2.Visible:=True;

      Form1.BitBtn3.Visible:=True;

      Music(4);

      Form1.Timer2.Interval:=1000;

      Exit;

    End;

    AssignFile(Dosya,Def+''+Name+'.ttrs');

    RewRite(Dosya);

    For Int1:=1 To 20 Do

    Begin

      Str:=";

      For Int2:=1 To 10 Do

      Begin

         If KareX[Int2,Int1]=True  Then Str:=Str+'1';

         If KareX[Int2,Int1]=False Then Str:=Str+'0';

      End;

      Writeln(Dosya,Str);

    End;

    Writeln(Dosya,IntToStr(PatlamaSay));

    Writeln(Dosya,IntToStr(Puan));

    Writeln(Dosya,IntToStr(Hiz1));

    CloseFile(Dosya);

  End;

 

  Music(4);

  Form1.Timer2.Interval:=1000;

  Form1.Canvas.Brush.Color:=clBlack;

  Form1.Canvas.Rectangle(0,0,Form1.Width,Form1.Height);

  Form1.BitBtn1.Visible:=True;

  Form1.BitBtn2.Visible:=True;

  Form1.BitBtn3.Visible:=True;

End;

 

procedure TForm1.Timer1Timer(Sender: TObject);

begin

  If Cikis=True Then

  Begin

    Timer1.Interval:=0;

    Exit;

  End;

 

  If (Tip=1) And (Yon=1) And ((KareX[Sx1,Sy1+1]=True) Or (KareX[Sx2,Sy2+1]=True) Or

                              (KareX[Sx3,Sy3+1]=True) Or (KareX[Sx4,Sy4+1]=True)) Then Taban;

  If (Tip=1) And (Yon=2) And  (KareX[Sx4,Sy4+1]=True) Then Taban;

 

  If (Tip=2) And (Yon=1) And ((KareX[Sx3,Sy3+1]=True) Or (KareX[Sx4,Sy4+1]=True))  Then Taban;

 

  If (Tip=3) And (Yon=1) And ((KareX[Sx1,Sy1+1]=True) Or  (KareX[Sx3,Sy3+1]=True)

                                                      Or  (KareX[Sx4,Sy4+1]=True)) Then Taban;

  If (Tip=3) And (Yon=2) And ((KareX[Sx2,Sy2+1]=True) Or  (KareX[Sx4,Sy4+1]=True)) Then Taban;

 

  If (Tip=4) And (Yon=1) And ((KareX[Sx1,Sy1+1]=True) Or  (KareX[Sx3,Sy3+1]=True)

                                                      Or  (KareX[Sx4,Sy4+1]=True)) Then Taban;

  If (Tip=4) And (Yon=2) And ((KareX[Sx3,Sy3+1]=True) Or  (KareX[Sx4,Sy4+1]=True)) Then Taban;

  If (Tip=4) And (Yon=3) And ((KareX[Sx2,Sy2+1]=True) Or  (KareX[Sx3,Sy3+1]=True)

                                                      Or  (KareX[Sx4,Sy4+1]=True)) Then Taban;

  If (Tip=4) And (Yon=4) And ((KareX[Sx1,Sy1+1]=True) Or  (KareX[Sx4,Sy4+1]=True)) Then Taban;

 

 

  If (Tip=5) And (Yon=1) And ((KareX[Sx3,Sy3+1]=True) Or  (KareX[Sx4,Sy4+1]=True)) Then Taban;

  If (Tip=5) And (Yon=2) And ((KareX[Sx2,Sy2+1]=True) Or  (KareX[Sx3,Sy3+1]=True)

                                                      Or  (KareX[Sx4,Sy4+1]=True)) Then Taban;

  If (Tip=5) And (Yon=3) And ((KareX[Sx1,Sy1+1]=True) Or  (KareX[Sx4,Sy4+1]=True)) Then Taban;

  If (Tip=5) And (Yon=4) And ((KareX[Sx2,Sy2+1]=True) Or  (KareX[Sx3,Sy3+1]=True)

                                                      Or  (KareX[Sx4,Sy4+1]=True)) Then Taban;

 

 

  If (Tip=6) And (Yon=1) And ((KareX[Sx1,Sy1+1]=True) Or  (KareX[Sx4,Sy4+1]=True)) Then Taban;

  If (Tip=6) And (Yon=2) And ((KareX[Sx1,Sy1+1]=True) Or  (KareX[Sx2,Sy2+1]=True)

                                                      Or  (KareX[Sx4,Sy4+1]=True)) Then Taban;

  If (Tip=6) And (Yon=3) And ((KareX[Sx3,Sy3+1]=True) Or  (KareX[Sx4,Sy4+1]=True)) Then Taban;

  If (Tip=6) And (Yon=4) And ((KareX[Sx2,Sy2+1]=True) Or  (KareX[Sx3,Sy3+1]=True)

                                                      Or  (KareX[Sx4,Sy4+1]=True)) Then Taban;

  If (Tip=7) And (Yon=1) And ((KareX[Sx2,Sy2+1]=True) Or  (KareX[Sx3,Sy3+1]=True)

                                                      Or  (KareX[Sx4,Sy4+1]=True)) Then Taban;

  If (Tip=7) And (Yon=2) And ((KareX[Sx2,Sy2+1]=True) Or  (KareX[Sx4,Sy4+1]=True)) Then Taban;

  If Cikis=True Then Exit;

  Kontrol;

  Art:=1;

  KareCiz(0);

  Sy1:=Sy1+Art;

  Sy2:=Sy2+Art;

  Sy3:=Sy3+Art;

  Sy4:=Sy4+Art;

  KareCiz(1);

end;

 

 

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

  Shift: TShiftState);

begin

  If Cikis=True Then

  Begin

    Timer1.Interval:=0;

    Exit;

  End;

  If Key=37 Then Sol;

  If Key=38 Then YonDeg;

  If Key=39 Then Sag;

  If Key=40 Then Timer1.Interval:=Hiz2;

  If Key=27 Then Kaydet;

 

  If (Key=32) And (Timer1.Interval=0) Then

  Begin

    Timer1.Interval:=Hiz1;

    Exit;

  End;

 

  If (Key=32) And (Timer1.Interval<>0) Then

  Begin

    Timer1.Interval:=0;

    Exit;

  End;

 

end;

 

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

   Show;

   MediaPlayer1.Stop;

   Timer2.Interval:=0;

   BitBtn1.Visible:=False;

   BitBtn2.Visible:=False;

   BitBtn3.Visible:=False;

   OyunEkrani;

   Cikis:=False;

   Hiz1:=500;

   Hiz2:=10;

   Art:=20;

   Ps:=1;

   BrPuan:=10;

   Puan:=0;

   Patlamasay:=0;

   Randomize;

   Tp1:=Random(7)+1;

   Repeat

     Yn1:=Random(4)+1;

   Until ((Tp1=1) And (Yn1<=2)) Or

         ((Tp1=2) And (Yn1<=1)) Or

         ((Tp1=3) And (Yn1<=2)) Or

         ((Tp1=4) And (Yn1<=4)) Or

         ((Tp1=5) And (Yn1<=4)) Or

         ((Tp1=6) And (Yn1<=4)) Or

         ((Tp1=7) And (Yn1<=2));

 

   Sekil(Tp1,Yn1);

   KareGoster(1);

   For Int1:=0 To 21 Do

   Begin

      KareX[00,Int1]:=True;

      KareX[11,Int1]:=True;

   End;

 

   For Int1:=0 To 11 Do

   Begin

     KareX[Int1,00]:=True;

     KareX[Int1,21]:=True;

   End;

 

   For Int1:=1 To 10 Do

   Begin

      For Int2:=1 To 20 Do

      Begin

        KareX[Int1,Int2]:=False;

      End;

   End;

    PuanYaz;

    KareCiz(1);

end;

 

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

  Shift: TShiftState);

begin

  If Cikis=True Then

  Begin

    Timer1.Interval:=0;

    Exit;

  End;

  If Key=40 Then Timer1.Interval:=Hiz1;

end;

 

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

  If Button=mbRight Then YonDeg;

end;

 

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

  Skor;

end;

 

procedure TForm1.Timer2Timer(Sender: TObject);

begin

  If MediaPlayer1.Position=MediaPlayer1.Length Then Music(4);

end;

 

procedure TForm1.FormActivate(Sender: TObject);

begin

   Music(4);

   Timer2.Interval:=1000;

end;

 

procedure TForm1.BitBtn3Click(Sender: TObject);

begin

  FileListBox1.Directory:='C:';

  FileListBox1.Directory:=Def;

  Music(4);

  Form1.Timer2.Interval:=1000;

  FileListBox1.Visible:=True;

  BitBtn1.Visible:=False;

  BitBtn2.Visible:=False;

  BitBtn3.Visible:=False;

  Button1.Visible:=True;

  Button2.Visible:=True;

  Button3.Visible:=True;

end;

 

procedure TForm1.Button3Click(Sender: TObject);

begin

  FileListBox1.Visible:=False;

  BitBtn1.Visible:=True;

  BitBtn2.Visible:=True;

  BitBtn3.Visible:=True;

  Button1.Visible:=False;

  Button2.Visible:=False;

  Button3.Visible:=False;

end;

 

procedure TForm1.Button2Click(Sender: TObject);

begin

  If FileListBox1.ItemIndex=-1 Then

  Begin

    Application.MessageBox('Lütfen Kayıtlardan Birini Seçin...','Sil',64);

    Exit;

  End;

  DeleteFile(FileListBox1.FileName);

  FileListBox1.Directory:='C:';

  FileListBox1.Directory:=Def;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  If FileListBox1.ItemIndex=-1 Then

  Begin

    Application.MessageBox('Lütfen Kayıtlardan Birini Seçin...','Başla',64);

    Exit;

  End;

  MediaPlayer1.Stop;

  Form1.Timer2.Interval:=0;

  FileListBox1.Visible:=False;

  Button1.Visible:=False;

  Button2.Visible:=False;

  Button3.Visible:=False;

  OyunEkrani;

  AssignFile(Dosya,FileListBox1.FileName);

  Reset(Dosya);

 

   For Int1:=0 To 21 Do

   Begin

      KareX[00,Int1]:=True;

      KareX[11,Int1]:=True;

   End;

 

   For Int1:=0 To 11 Do

   Begin

     KareX[Int1,00]:=True;

     KareX[Int1,21]:=True;

   End;

 

  For Int1:=1 To 20 Do

  Begin

    Readln(Dosya,Str);

    For Int2:=1 To 10 Do

    Begin

       If Str[Int2]='0' Then

       Begin

          Form1.Canvas.Brush.Color:=clBlack;

          KareX[Int2,Int1]:=False;

       End;

       If Str[Int2]='1' Then

       Begin

          Form1.Canvas.Brush.Color:=clWhite;

          KareX[Int2,Int1]:=True;

       End;

       Form1.Canvas.Rectangle(Int2*20,Int1*20,(Int2+1)*20,(Int1+1)*20);

    End;

  End;

 

  Readln(Dosya,Str);

  PatlamaSay:=StrToInt(Str);

  Readln(Dosya,Str);

  Puan:=StrToInt(Str);

  Readln(Dosya,Str);

  Hiz1:=StrToInt(Str);

  CloseFile(Dosya);

  Hiz2:=10;

  Randomize;

  Tp1:=Random(7)+1;

  Repeat

    Yn1:=Random(4)+1;

  Until ((Tp1=1) And (Yn1<=2)) Or

        ((Tp1=2) And (Yn1<=1)) Or

        ((Tp1=3) And (Yn1<=2)) Or

        ((Tp1=4) And (Yn1<=4)) Or

        ((Tp1=5) And (Yn1<=4)) Or

        ((Tp1=6) And (Yn1<=4)) Or

        ((Tp1=7) And (Yn1<=2));

  Sekil(Tp1,Yn1);

  PuanYaz;

  KareGoster(1);

  KareCiz(1);

  Cikis:=False;

end;

 

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

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