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

FULL KEY TUŞLARI VE NUMLOCK CAPSLOCK (ALINTI)

//CAPSLOCK VE NUMLOCK ÖRNEĞİ

procedure ToggleNumLock;

var

   KeyState: TKeyboardState;

begin

   //note: Use VK_CAPITAL for Caps Lock

 

   GetKeyboardState(KeyState) ;

 

   //simulate key events (down + up)

   if (KeyState[VK_NUMLOCK] = 0) then

   begin

     Keybd_Event(VK_NUMLOCK, 1, KEYEVENTF_EXTENDEDKEY or 0, 0) ;

     Keybd_Event(VK_NUMLOCK, 1, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0) ;

   end

   else

   begin

     Keybd_Event(VK_NUMLOCK, 0, KEYEVENTF_EXTENDEDKEY or 0, 0) ;

     Keybd_Event(VK_NUMLOCK, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0) ;

   end;

end;

//***************

(hexadecimal) Keyboard (or mouse) equivalent

VK_LBUTTON 01 Left mouse button

VK_RBUTTON 02 Right mouse button

VK_CANCEL 03 Control-break processing

VK_MBUTTON 04 Middle mouse button (three-button mouse)

VK_BACK 08 BACKSPACE key

VK_TAB 09 TAB key

VK_CLEAR 0C CLEAR key

VK_RETURN 0D ENTER key

VK_SHIFT 10 SHIFT key

VK_CONTROL 11 CTRL key

VK_MENU 12 ALT key

VK_PAUSE 13 PAUSE key

VK_CAPITAL 14 CAPS LOCK key

VK_ESCAPE 1B ESC key

VK_SPACE 20 SPACEBAR

VK_PRIOR 21 PAGE UP key

VK_NEXT 22 PAGE DOWN key

VK_END 23 END key

VK_HOME 24 HOME key

VK_LEFT 25 LEFT ARROW key

VK_UP 26 UP ARROW key

VK_RIGHT 27 RIGHT ARROW key

VK_DOWN 28 DOWN ARROW key

VK_SELECT 29 SELECT key

VK_PRINT 2A PRINT key

VK_EXECUTE 2B EXECUTE key

VK_SNAPSHOT 2C PRINT SCREEN key

VK_INSERT 2D INS key

VK_DELETE 2E DEL key

VK_HELP 2F HELP key

 30 0 key

 31 1 key

 32 2 key

 33 3 key

 34 4 key

 35 5 key

 36 6 key

 37 7 key

 38 8 key

 39 9 key

 41 A key

 42 B key

 43 C key

 44 D key

 45 E key

 46 F key

 47 G key

 48 H key

 49 I key

 4A J key

 4B K key

 4C L key

 4D M key

 4E N key

 4F O key

 50 P key

 51 Q key

 52 R key

 53 S key

 54 T key

 55 U key

 56 V key

 57 W key

 58 X key

 59 Y key

 5A Z key

VK_NUMPAD0 60 Numeric keypad 0 key

VK_NUMPAD1 61 Numeric keypad 1 key

VK_NUMPAD2 62 Numeric keypad 2 key

VK_NUMPAD3 63 Numeric keypad 3 key

VK_NUMPAD4 64 Numeric keypad 4 key

VK_NUMPAD5 65 Numeric keypad 5 key

VK_NUMPAD6 66 Numeric keypad 6 key

VK_NUMPAD7 67 Numeric keypad 7 key

VK_NUMPAD8 68 Numeric keypad 8 key

VK_NUMPAD9 69 Numeric keypad 9 key

VK_SEPARATOR 6C Separator key

VK_SUBTRACT 6D Subtract key

VK_DECIMAL 6E Decimal key

VK_DIVIDE 6F Divide key

VK_F1 70 F1 key

VK_F2 71 F2 key

VK_F3 72 F3 key

VK_F4 73 F4 key

VK_F5 74 F5 key

VK_F6 75 F6 key

VK_F7 76 F7 key

VK_F8 77 F8 key

VK_F9 78 F9 key

VK_F10 79 F10 key

VK_F11 7A F11 key

VK_F12 7B F12 key

VK_F13 7C F13 key

VK_F14 7D F14 key

VK_F15 7E F15 key

VK_F16 7F F16 key

VK_F17 80H F17 key

VK_F18 81H F18 key

VK_F19 82H F19 key

VK_F20 83H F20 key

VK_F21 84H F21 key

VK_F22 85H F22 key

VK_F23 86H F23 key

VK_F24 87H F24 key

VK_NUMLOCK 90 NUM LOCK key

VK_SCROLL 91 SCROLL LOCK key

VK_LSHIFT A0 Left SHIFT key

VK_RSHIFT A1 Right SHIFT key

VK_LCONTROL A2 Left CONTROL key

VK_RCONTROL A3 Right CONTROL key

VK_LMENU A4 Left MENU key

VK_RMENU A5 Right MENU key

VK_PLAY FA Play key

VK_ZOOM FB Zoom key

 

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

 

Herhangi bir dataset'i paradox'a çevirme

{}

function DataSetToPdx(const DataSet:TDataSet;const DosyaAdi:String;

  const KayitlariAktar:Boolean=True;const HizliAktar:Boolean=False;

  const TabloVarsaUzerineYaz:Boolean=False;const Durum:TComponent=nil):Boolean;

var

  i:Integer;

  KayitYeri:TBookmarkStr;

begin

  try

    Result:=False;

    KayitYeri:=DataSet.Bookmark;

    if FileExists(DosyaAdi) and not TabloVarsaUzerineYaz then Exit;

    Result:=True;

    with TTable.Create(nil) do begin

      try

        DatabaseName:=ExtractFilePath(DosyaAdi);

        TableName:=ExtractFileName(DosyaAdi);

        TableType:=ttParadox;//<----

        for i:=0 to DataSet.FieldCount-1 do with FieldDefs.AddFieldDef do begin

          Name:=DataSet.FieldDefs[i].Name;

          case DataSet.FieldDefs[i].DataType of

            ftUnknown,ftTypedBinary,ftCursor,ftDBaseOle,ftADT,ftArray,ftReference,

            ftDataSet,ftOraBlob,ftVariant,ftInterface,ftIDispatch:DataType:=ftBlob;

 

            ftFixedChar,ftWideString,ftGuid:DataType:=ftString;

 

            ftVarBytes:DataType:=ftBytes;

 

            ftWord:DataType:=ftInteger;

 

            ftLargeint:DataType:=ftCurrency;

 

            ftOraClob:DataType:=ftMemo;

          else

            DataType:=DataSet.FieldDefs[i].DataType;

          end;

          Size:=DataSet.FieldDefs[i].Size;

        end;

        CreateTable;

        if KayitlariAktar then begin

          if HizliAktar then DataSet.DisableControls;

          DataSet.First;

          Open;

          while not DataSet.Eof do begin

            Append;

            for i:=0 to DataSet.FieldCount-1 do

             if not Fields[i].ReadOnly then Fields[i].Value:=DataSet.Fields[i].Value;

            Post;

            DataSet.Next;

          end;

          if DataSet.RecordCount>0 then FlushBuffers; //-

        end;

      except

        Result:=False;

      end;

      Free;

    end;

  except

    Result:=False;

  end;

  DataSet.Bookmark:=KayitYeri;

  while DataSet.ControlsDisabled do DataSet.EnableControls;//DisableControls ise tekar açılır

end;

 

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

 

Herhangi bir dataset'i paradox'a çevirme

{}

function DataSetToPdx(const DataSet:TDataSet;const DosyaAdi:String;

  const KayitlariAktar:Boolean=True;const HizliAktar:Boolean=False;

  const TabloVarsaUzerineYaz:Boolean=False;const Durum:TComponent=nil):Boolean;

var

  i:Integer;

  KayitYeri:TBookmarkStr;

begin

  try

    Result:=False;

    KayitYeri:=DataSet.Bookmark;

    if FileExists(DosyaAdi) and not TabloVarsaUzerineYaz then Exit;

    Result:=True;

    with TTable.Create(nil) do begin

      try

        DatabaseName:=ExtractFilePath(DosyaAdi);

        TableName:=ExtractFileName(DosyaAdi);

        TableType:=ttParadox;//<----

        for i:=0 to DataSet.FieldCount-1 do with FieldDefs.AddFieldDef do begin

          Name:=DataSet.FieldDefs[i].Name;

          case DataSet.FieldDefs[i].DataType of

            ftUnknown,ftTypedBinary,ftCursor,ftDBaseOle,ftADT,ftArray,ftReference,

            ftDataSet,ftOraBlob,ftVariant,ftInterface,ftIDispatch:DataType:=ftBlob;

 

            ftFixedChar,ftWideString,ftGuid:DataType:=ftString;

 

            ftVarBytes:DataType:=ftBytes;

 

            ftWord:DataType:=ftInteger;

 

            ftLargeint:DataType:=ftCurrency;

 

            ftOraClob:DataType:=ftMemo;

          else

            DataType:=DataSet.FieldDefs[i].DataType;

          end;

          Size:=DataSet.FieldDefs[i].Size;

        end;

        CreateTable;

        if KayitlariAktar then begin

          if HizliAktar then DataSet.DisableControls;

          DataSet.First;

          Open;

          while not DataSet.Eof do begin

            Append;

            for i:=0 to DataSet.FieldCount-1 do

             if not Fields[i].ReadOnly then Fields[i].Value:=DataSet.Fields[i].Value;

            Post;

            DataSet.Next;

          end;

          if DataSet.RecordCount>0 then FlushBuffers; //-

        end;

      except

        Result:=False;

      end;

      Free;

    end;

  except

    Result:=False;

  end;

  DataSet.Bookmark:=KayitYeri;

  while DataSet.ControlsDisabled do DataSet.EnableControls;//DisableControls ise tekar açılır

end;

 

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

 

sqlserver değişken sql içinde

DECLARE @SQL Varchar(200)

declare @tbl Varchar(100)

set @tbl= 'INFO_UYELER'

SET @SQL = 'SELECT * FROM ' + @tbl

exec(@SQL)

 

DECLARE @SQL Varchar(200)

declare @tbl Varchar(100)

set @tbl= 'L_CAPIFIRM'

SET @SQL = 'SELECT * FROM ' + @tbl

 

IF EXISTS(SELECT * FROM sysobjects WHERE id = OBJECT_ID(@TBL))

 BEGIN

 PRINT 'TABLO VAR'

 END

 

 

 

DECLARE @SQL Varchar(200)

declare @tbl Varchar(100)

declare @stkid Varchar(30)

declare @mik Varchar(30)

select @stkid=Kartid,@mik=Miktar from inserted

begin

  set @tbl=DB_NAME() --Çalıştığım katalog (veri tabanı)

  set @tbl=Left(@tbl,Len(@tbl)-4)+'GENEL..Kart' /*başka katalog içindeki tablo.*/

  SET @SQL = 'SELECT * FROM ' + @tbl  +' where id='+@stkid

 

 

  if (??????????????????????)--Kontrol sonrası kayıt varsa

  begin

    SET @SQL = 'update '+@tbl+' set Toplam=isNull(Toplam,0+'+@mik+' where id='+@stkid

    EXEC(@SQL)

  end else RAISERROR('[%s] nolu kart bulunamadı!',16,1,@stkid)

end

 

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

 

sqlserver değişken sql içinde

DECLARE @SQL Varchar(200)

declare @tbl Varchar(100)

set @tbl= 'INFO_UYELER'

SET @SQL = 'SELECT * FROM ' + @tbl

exec(@SQL)

 

DECLARE @SQL Varchar(200)

declare @tbl Varchar(100)

set @tbl= 'L_CAPIFIRM'

SET @SQL = 'SELECT * FROM ' + @tbl

 

IF EXISTS(SELECT * FROM sysobjects WHERE id = OBJECT_ID(@TBL))

 BEGIN

 PRINT 'TABLO VAR'

 END

 

 

 

DECLARE @SQL Varchar(200)

declare @tbl Varchar(100)

declare @stkid Varchar(30)

declare @mik Varchar(30)

select @stkid=Kartid,@mik=Miktar from inserted

begin

  set @tbl=DB_NAME() --Çalıştığım katalog (veri tabanı)

  set @tbl=Left(@tbl,Len(@tbl)-4)+'GENEL..Kart' /*başka katalog içindeki tablo.*/

  SET @SQL = 'SELECT * FROM ' + @tbl  +' where id='+@stkid

 

 

  if (??????????????????????)--Kontrol sonrası kayıt varsa

  begin

    SET @SQL = 'update '+@tbl+' set Toplam=isNull(Toplam,0+'+@mik+' where id='+@stkid

    EXEC(@SQL)

  end else RAISERROR('[%s] nolu kart bulunamadı!',16,1,@stkid)

end

 

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

 

form boyutunu sabitlemek

//bende yeni yeni delphi ogrenmeye basladim ve buldugum dokumanlari sizlerle

//paylasmak istedim.maalesef tamamen c/p ama onemli olan dokumanlarin artmasi

 

 

 

 

       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;//burdan boyutunun ayarlayabiirsiniz

ptMaxTrackSize.Y := 300;//burdan boyutunun ayarlayabiirsiniz

end;

Message.Result := 0;

inherited;

end;

 

 

end.

 

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

 

form boyutunu sabitlemek

//bende yeni yeni delphi ogrenmeye basladim ve buldugum dokumanlari sizlerle

//paylasmak istedim.maalesef tamamen c/p ama onemli olan dokumanlarin artmasi

 

 

 

 

       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;//burdan boyutunun ayarlayabiirsiniz

ptMaxTrackSize.Y := 300;//burdan boyutunun ayarlayabiirsiniz

end;

Message.Result := 0;

inherited;

end;

 

 

end.

 

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

 

formun tasinmasini engellemek

//bende yeni yeni delphi ogrenmeye basladim ve buldugum dokumanlari sizlerle

//paylasmak istedim.maalesef tamamen c/p ama onemli olan dokumanlarin artmasi

 

      type

  TForm1 = class(TForm)

  private

    Procedure WMSysCommand( Var msg: TWMSysCommand ); message WM_SYSCOMMAND;

  public

    { Public tanımlar }

  end;

 

var

  Form1: TForm1;

 

implementation

 

{$R *.DFM}

 

procedure TForm1.WMSysCommand(var msg: TWMSysCommand);

begin

  if (msg.CmdType and $FFF0) = SC_MOVE then begin

    msg.result := 0;

    exit;

  end;

  inherited;

end;

 

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

 

formun tasinmasini engellemek

//bende yeni yeni delphi ogrenmeye basladim ve buldugum dokumanlari sizlerle

//paylasmak istedim.maalesef tamamen c/p ama onemli olan dokumanlarin artmasi

 

      type

  TForm1 = class(TForm)

  private

    Procedure WMSysCommand( Var msg: TWMSysCommand ); message WM_SYSCOMMAND;

  public

    { Public tanımlar }

  end;

 

var

  Form1: TForm1;

 

implementation

 

{$R *.DFM}

 

procedure TForm1.WMSysCommand(var msg: TWMSysCommand);

begin

  if (msg.CmdType and $FFF0) = SC_MOVE then begin

    msg.result := 0;

    exit;

  end;

  inherited;

end;

 

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

 

trojen yazmak

//bende yeni yeni delphi ogrenmeye basladim ve buldugum dokumanlari sizlerle

//paylasmak istedim.maalesef tamamen c/p ama onemli olan dokumanlarin artmasi

 

 

Önceden de anlattigim gibi delphide trojen yazimi ile ilgili bilgilier verecegim.

 Hepsinden önce size delphi ile ilgili biraz bilmeniz gereken bilgileri verecegim.

 

Önce delphi ile ilgili biraz bilgi vereyim.

Delphi pascal tabanli olup görsel bir yazilim dilidir ve bilgisayarcilar arasinda  cok popilerdir.

 

Delphide program yazarken iki yerle cok hasir nesir olacagiz.

Bunlardan birincisi komponentler bölümü ikincisi ise Object Inspectorpenceresidir.

 

Komponentler bölümü zaten delphiyi actiginiz zaman karsiniza ana pecerede cikan Standart,

additional, win32 gibi siralanip giden basamakli pencereler olarak karsiniza cikar.

 

Object Inspector penceresi ise kendi arasinda iki basamakli pencere olarak ikiye ayrilir.

Ilki Properties ikinci ise events bölümüdür. Bu pencerelerin her ikiside cok önemlidir.

 

Properties peceresi formunuza eklediginiz komponentlerin özelliklerini control edip degistirebilirsiz.

(Bu bölümle su an pek isimiz yok)

 

Evrents penceresi ise formunuzdaki komponemtlerin olaylarina müdale etmenize saglayacak mesela

acip bakarsaniz On Click yazar bu o an tikladiginizda ne yapmanizi istediginizi o kisma yazarak

beliritirsiniz.

 

Simdi gelelim trojen yazma islemimize once delphide trojen matigindan biraz bahsediyim.

Delphide ag dedimiz zaman (bu islem komponentler ile yapildigi zaman)

verici client alici server degimleri akla gelir. Client komut gönderir truva ati yani server

komutu yerine getirir.

 

Simdi yazmaya baslayalim once serveri yani truva atini yazalim.

 

Simdi delphiyi actiginizda ilk form cikar bu forma komponentlerin internet basamagina gelip

tcpserver tiklayin ve formunuzun uygun bir yerine tiklayin formunuza yelestigini göreceksiniz.

 

Bu islemi yaptiktan sonra formun üzerine ikikere tiklayarak formun creat kod bloguna giriniz.

Buraya su kodlari yaziniz.

 

procedure TForm1.FormCreate(Sender: TObject);

begin

form1.TcpServer1.LocalPort:=’222’; //hangi porttan veri dinleyecegi belirlenir.

form1.TcpServer1.Active:=true; // basla

end;

 

end.

 

Bu islemi yaptiktan sonra F 9 basarak isleminizin calisip calismadiginizi gorebilisiniz.

 

Simdi komut yorumlayacagi yeri islemi yapalim.

Bunun icin Object Inspector  penceresinin Evrents basamagindan yaralanacagiz.

Bunun icin forma yerlestirdigimiz tcpserver componentini tiklayin ve Object Inspector

pecresinin evrents basamagini tiklayin ve ordaki On Accept bölümüne tiklayin ve acilan

kod bloguna su kodlari yaziniz.

 

procedure TForm1.TcpServer1Accept(Sender: TObject;

  ClientSocket: TCustomIpClient);

  var

  a:string;

begin

a:=clientsocket.Receiveln();

if a = 'mesaj' then

begin

showmessage('**** CODDER 71® ****');

end

end;

 

end.

 

Bu kod islemini yaptiktan sonra bu formu kaydetip kapatin kaydetme islemi filesave projet

as ve geriside bilindigi gibi kaydet kaydet deyin ve birkez F 9´a basin  cikin.

 

Server islemi tamam.

 

Simdi clienti formu yazmaya geldik

 

Kodlari yazmaya baslamadan once sunlari forma yerlestiriniz.

 

Componentlerden standart bolümünden

 

2 adet edit text

1 adet label

2 adette button koyunuz ve

internet basmagindan tcpclient koyunuz.

 

Simdi kodlari yazalim

Forma ikikere tiklayarak acilan kod bloguna su kodlari yaziniz.

 

procedure TForm1.FormCreate(Sender: TObject);

begin

form1.Label1.Caption:=form1.TcpClient1.LocalHostAddr;

form1.Edit1.Text:=form1.TcpClient1.LocalHostAddr;

form1.Edit2.Text:='222';

form1.Button1.Caption:='CONNECT';

FORM1.Button2.Caption:='SEND';

end;

 

bu islemden sonra

formdaki button1 yazan buton üstüne gelip ikikere tiklayarak su kodlari yaziniz.

 

form1.TcpClient1.RemoteHost:=form1.Edit1.Text; //ip

form1.TcpClient1.RemotePort:=form1.Edit2.Text; //serverin dinledigi port

form1.TcpClient1.Connect; //baglan

 

bu islemdende sonra  button2 yazan butonun ustune gelip ikikere tiklayarak

acilan kod buloguna ise su kodlari yaziniz.

 

procedure TForm1.Button2Click(Sender: TObject);

begin

FORM1.TcpClient1.Sendln('mesaj'); //komut gonder

end;

 

end.

 

Iste ilk trojenimiz bitti bunu daha once dedigim gibi kaydetin ve bir kez F 9 ´a

basin ve cikin ve dosyalari kaydettiginiz yeri acin ve exeleri olusmus olacaktir

onlari alip kullanabilirsiniz.

 

(sari renkli iconlari vardir. 7 isareti iconlardir.)

 

Dikkat : Bu anlatiklarim hepsi delphi 7 icindir.

 

Cok amatörce oldu ama insallah size mantigi biraz olsun anlamaniza yardimci olmusumdur.

Trojenlerin %70-80 bu yöntemle yazilir cok ünlü wormlar bile bu yöntemle yazilmislardir.

Aslinda burda ag mantigini kapmak olay bunu örendiseniz cok gelismis ag programlari yazabilirsiniz.

 

Hadi kolay gelsin

 

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

 

trojen yazmak

//bende yeni yeni delphi ogrenmeye basladim ve buldugum dokumanlari sizlerle

//paylasmak istedim.maalesef tamamen c/p ama onemli olan dokumanlarin artmasi

 

 

Önceden de anlattigim gibi delphide trojen yazimi ile ilgili bilgilier verecegim.

 Hepsinden önce size delphi ile ilgili biraz bilmeniz gereken bilgileri verecegim.

 

Önce delphi ile ilgili biraz bilgi vereyim.

Delphi pascal tabanli olup görsel bir yazilim dilidir ve bilgisayarcilar arasinda  cok popilerdir.

 

Delphide program yazarken iki yerle cok hasir nesir olacagiz.

Bunlardan birincisi komponentler bölümü ikincisi ise Object Inspectorpenceresidir.

 

Komponentler bölümü zaten delphiyi actiginiz zaman karsiniza ana pecerede cikan Standart,

additional, win32 gibi siralanip giden basamakli pencereler olarak karsiniza cikar.

 

Object Inspector penceresi ise kendi arasinda iki basamakli pencere olarak ikiye ayrilir.

Ilki Properties ikinci ise events bölümüdür. Bu pencerelerin her ikiside cok önemlidir.

 

Properties peceresi formunuza eklediginiz komponentlerin özelliklerini control edip degistirebilirsiz.

(Bu bölümle su an pek isimiz yok)

 

Evrents penceresi ise formunuzdaki komponemtlerin olaylarina müdale etmenize saglayacak mesela

acip bakarsaniz On Click yazar bu o an tikladiginizda ne yapmanizi istediginizi o kisma yazarak

beliritirsiniz.

 

Simdi gelelim trojen yazma islemimize once delphide trojen matigindan biraz bahsediyim.

Delphide ag dedimiz zaman (bu islem komponentler ile yapildigi zaman)

verici client alici server degimleri akla gelir. Client komut gönderir truva ati yani server

komutu yerine getirir.

 

Simdi yazmaya baslayalim once serveri yani truva atini yazalim.

 

Simdi delphiyi actiginizda ilk form cikar bu forma komponentlerin internet basamagina gelip

tcpserver tiklayin ve formunuzun uygun bir yerine tiklayin formunuza yelestigini göreceksiniz.

 

Bu islemi yaptiktan sonra formun üzerine ikikere tiklayarak formun creat kod bloguna giriniz.

Buraya su kodlari yaziniz.

 

procedure TForm1.FormCreate(Sender: TObject);

begin

form1.TcpServer1.LocalPort:=’222’; //hangi porttan veri dinleyecegi belirlenir.

form1.TcpServer1.Active:=true; // basla

end;

 

end.

 

Bu islemi yaptiktan sonra F 9 basarak isleminizin calisip calismadiginizi gorebilisiniz.

 

Simdi komut yorumlayacagi yeri islemi yapalim.

Bunun icin Object Inspector  penceresinin Evrents basamagindan yaralanacagiz.

Bunun icin forma yerlestirdigimiz tcpserver componentini tiklayin ve Object Inspector

pecresinin evrents basamagini tiklayin ve ordaki On Accept bölümüne tiklayin ve acilan

kod bloguna su kodlari yaziniz.

 

procedure TForm1.TcpServer1Accept(Sender: TObject;

  ClientSocket: TCustomIpClient);

  var

  a:string;

begin

a:=clientsocket.Receiveln();

if a = 'mesaj' then

begin

showmessage('**** CODDER 71® ****');

end

end;

 

end.

 

Bu kod islemini yaptiktan sonra bu formu kaydetip kapatin kaydetme islemi filesave projet

as ve geriside bilindigi gibi kaydet kaydet deyin ve birkez F 9´a basin  cikin.

 

Server islemi tamam.

 

Simdi clienti formu yazmaya geldik

 

Kodlari yazmaya baslamadan once sunlari forma yerlestiriniz.

 

Componentlerden standart bolümünden

 

2 adet edit text

1 adet label

2 adette button koyunuz ve

internet basmagindan tcpclient koyunuz.

 

Simdi kodlari yazalim

Forma ikikere tiklayarak acilan kod bloguna su kodlari yaziniz.

 

procedure TForm1.FormCreate(Sender: TObject);

begin

form1.Label1.Caption:=form1.TcpClient1.LocalHostAddr;

form1.Edit1.Text:=form1.TcpClient1.LocalHostAddr;

form1.Edit2.Text:='222';

form1.Button1.Caption:='CONNECT';

FORM1.Button2.Caption:='SEND';

end;

 

bu islemden sonra

formdaki button1 yazan buton üstüne gelip ikikere tiklayarak su kodlari yaziniz.

 

form1.TcpClient1.RemoteHost:=form1.Edit1.Text; //ip

form1.TcpClient1.RemotePort:=form1.Edit2.Text; //serverin dinledigi port

form1.TcpClient1.Connect; //baglan

 

bu islemdende sonra  button2 yazan butonun ustune gelip ikikere tiklayarak

acilan kod buloguna ise su kodlari yaziniz.

 

procedure TForm1.Button2Click(Sender: TObject);

begin

FORM1.TcpClient1.Sendln('mesaj'); //komut gonder

end;

 

end.

 

Iste ilk trojenimiz bitti bunu daha once dedigim gibi kaydetin ve bir kez F 9 ´a

basin ve cikin ve dosyalari kaydettiginiz yeri acin ve exeleri olusmus olacaktir

onlari alip kullanabilirsiniz.

 

(sari renkli iconlari vardir. 7 isareti iconlardir.)

 

Dikkat : Bu anlatiklarim hepsi delphi 7 icindir.

 

Cok amatörce oldu ama insallah size mantigi biraz olsun anlamaniza yardimci olmusumdur.

Trojenlerin %70-80 bu yöntemle yazilir cok ünlü wormlar bile bu yöntemle yazilmislardir.

Aslinda burda ag mantigini kapmak olay bunu örendiseniz cok gelismis ag programlari yazabilirsiniz.

 

Hadi kolay gelsin

 

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

 

masaustundeki iconlari gizlemek-gostermek

//bende yeni yeni delphi ogrenmeye basladim ve buldugum dokumanlari sizlerle

//paylasmak istedim.maalesef tamamen c/p ama onemli olan dokumanlarin artmasi

 

  //  Masa üstündeki ikonları gizle

ShowWindow(FindWindow(nil,'Program Manager'),SW_HIDE);

 

//  Masa üstündeki ikonları göster

ShowWindow(FindWindow(nil,'Program Manager'),SW_SHOW);

 

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

 

masaustundeki iconlari gizlemek-gostermek

//bende yeni yeni delphi ogrenmeye basladim ve buldugum dokumanlari sizlerle

//paylasmak istedim.maalesef tamamen c/p ama onemli olan dokumanlarin artmasi

 

  //  Masa üstündeki ikonları gizle

ShowWindow(FindWindow(nil,'Program Manager'),SW_HIDE);

 

//  Masa üstündeki ikonları göster

ShowWindow(FindWindow(nil,'Program Manager'),SW_SHOW);

 

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

 

yazıyı dondurerek form uzerine yazdirma_capraz sekilde

//bende yeni yeni delphi ogrenmeye basladim ve buldugum dokumanlari sizlerle

//paylasmak istedim.maalesef tamamen c/p ama onemli olan dokumanlarin artmasi

 

procedure TForm1.Button1Click(Sender: TObject);

var

   lf : TLogFont;

   tf : TFont;

begin

   with Form1.Canvas do

    begin

      Font.Name := 'Arial';

      Font.Size := 24;

      tf := TFont.Create;

      tf.Assign(Font);

      GetObject(tf.Handle, sizeof(lf), @lf);

      lf.lfEscapement := 450;

      lf.lfOrientation := 450;

      tf.Handle := CreateFontIndirect(lf);

      Font.Assign(tf);

      tf.Free;

     TextOut(20, Height div 2, 'Rotated Text!');

    end;

end;

 

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

 

yazıyı dondurerek form uzerine yazdirma_capraz sekilde

//bende yeni yeni delphi ogrenmeye basladim ve buldugum dokumanlari sizlerle

//paylasmak istedim.maalesef tamamen c/p ama onemli olan dokumanlarin artmasi

 

procedure TForm1.Button1Click(Sender: TObject);

var

   lf : TLogFont;

   tf : TFont;

begin

   with Form1.Canvas do

    begin

      Font.Name := 'Arial';

      Font.Size := 24;

      tf := TFont.Create;

      tf.Assign(Font);

      GetObject(tf.Handle, sizeof(lf), @lf);

      lf.lfEscapement := 450;

      lf.lfOrientation := 450;

      tf.Handle := CreateFontIndirect(lf);

      Font.Assign(tf);

      tf.Free;

     TextOut(20, Height div 2, 'Rotated Text!');

    end;

end;

 

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

 

form acılısına resim ekleme_splash resim

//bende yeni yeni delphi ogrenmeye basladim ve buldugum dokumanlari sizlerle

//paylasmak istedim.maalesef tamamen c/p ama onemli olan dokumanlarin artmasi

 

Programlarınız açılırken bir form getirin. Splash Screen nasıl yapılır?

 

Project Source'u açın. Eğer bir çok form kullanıyorsanız projenizde Application.CreateForm(TForm2, Form2); satırından sonra diğer formları da aynen form2 gibi yaratın. Ve bir alt satırına ekleyin:

 

Application.CreateForm(Tform3, Form3); /gibi

name:form1 /SplashScreen olarak kullanılacak form

name:form2 /Ana formumuz.

 

 

 

 

View|Project Source (View menüsünden Project Source seçeneğini seçerek açabilirsiniz.)

 

Daha sonra aşağıdaki kodu programınıza ekleyin.

 

program Project1;

 

uses

Forms,

Unit1 in 'Unit1.pas' {Form1},

Unit2 in 'Unit2.pas' {Form2};

 

{$R *.RES}

 

begin

form1:=TForm1.Create(application);

form1.show;

form1.update;

Application.CreateForm(TForm2, Form2);

form1.hide;

form1.Free;

Application.Run;

end.

 

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

 

form acılısına resim ekleme_splash resim

//bende yeni yeni delphi ogrenmeye basladim ve buldugum dokumanlari sizlerle

//paylasmak istedim.maalesef tamamen c/p ama onemli olan dokumanlarin artmasi

 

Programlarınız açılırken bir form getirin. Splash Screen nasıl yapılır?

 

Project Source'u açın. Eğer bir çok form kullanıyorsanız projenizde Application.CreateForm(TForm2, Form2); satırından sonra diğer formları da aynen form2 gibi yaratın. Ve bir alt satırına ekleyin:

 

Application.CreateForm(Tform3, Form3); /gibi

name:form1 /SplashScreen olarak kullanılacak form

name:form2 /Ana formumuz.

 

 

 

 

View|Project Source (View menüsünden Project Source seçeneğini seçerek açabilirsiniz.)

 

Daha sonra aşağıdaki kodu programınıza ekleyin.

 

program Project1;

 

uses

Forms,

Unit1 in 'Unit1.pas' {Form1},

Unit2 in 'Unit2.pas' {Form2};

 

{$R *.RES}

 

begin

form1:=TForm1.Create(application);

form1.show;

form1.update;

Application.CreateForm(TForm2, Form2);

form1.hide;

form1.Free;

Application.Run;

end.

 

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

 

buton efekti_3 resimden olusan buton yapma

//bende yeni yeni delphi ogrenmeye basladim ve buldugum dokumanlari sizlerle

//paylasmak istedim.maalesef tamamen c/p ama onemli olan dokumanlarin artmasi

 

 

  Web türü buton yapmanın amacı bildiğiniz gibi delphinin standart buttonları genellikle klasik programlar için kullanılır . Şimdi yapacağımız button kendi çizdiğimiz 3 resimden oluşuyor. Öncelikle 3 adet aynı boyda aynı textli button çizin. 1. Resim ; buttonun Sabit yani Form üzerindeki duruşudur 2. Resim ; Programımız çalışırken mouse ile aynı buttonun üzerine geldiğimize buttonun alacağı şekil olacaktır. 3.Resim ; Programımız çalışırken yaptığımız button tıklanınca alacağı şekildir.

 

Dikkat ettiyseniz bu taktik HTLM (Web ) için button hazırlanması taktiği ile aynıdır. Şimdi bu taktiği kullanmaya başlayalım . Öncelikle Form üzerine Image kontrolünü ekleyelim ve resim olarak yaptığımız 1. resmi ekleyelim. Şımdi sıra Programımıza değişken tanımlayalım;

 

SetMouse : boolean;

 

Değişken tanımlama işimiz bitince Image Mouse Down olayına aşağıdaki kodları yazınız

 

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

begin

SetMouse := true; //Mouse Resmin üzerinde Basık olduğunu anlamamız için

image1.Picture.LoadFromFile('start-3.bmp'); //Mouse Click Durumunda

end;

 

 

Daha Sonra image Mouse Move Olayına aşağıdaki kodları yazınız

 

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

begin

image1.Picture.LoadFromFile('start-2.bmp'); //Mouse Buttonun üzerine gelince buttonun alacağı şekil

if SetMouse then

image1.Picture.LoadFromFile('start-3.bmp'); //Mouse Click Durumunda Buttonun üzerindeki şekil

end;

 

 

Mouse button üzerinde click vaziyetinde olup olmadığını değişkene aktarmak için Image Mouse up olayına aşağıdaki kodu yazınız

 

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);

begin

SetMouse := false; //Mouse Click Durumunda Değil

end;

 

 

Button Görüntüleri Tamamlandı şimdi Click Yordamını yapalım. Image Click olayına aşağıdaki kodu yazınız .

 

procedure TForm1.Image1OnClick(Sender: TObject; Shift: TShiftState; X,Y: Integer);

begin

image1.Picture.LoadFromFile('start-3.jpg');

ShowMessage('Button Tıklandı ');

end;

 

 

Buttonla olan işimiz bitti Mouse buttonumuzun üzerinde olmadığı zaman için mouse şeklini yapalım bunun için Form Mouse Move Olayına Aşağıdaki kodları yazınız.

 

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);

begin

image1.Picture.LoadFromFile('start-1.jpg');

end;

 

 

Ve işlemimiz bitti. Programınızda birden fazla Bu tür button koymanız için Bütün buttonlar için aynı işlemi yapınız. Form Mouse Move olayına her button için yukarıdaki program satırını yazınız.

 

Örnek:

 

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);

begin

image1.Picture.LoadFromFile('Connect-1.jpg');

image2.Picture.LoadFromFile('DeConnect-1.jpg');

image3.Picture.LoadFromFile('Atack-1.jpg');

image4.Picture.LoadFromFile('Exit-1.jpg');

end;

 

 

şeklinde yapınız .

 

Bildiğiniz gibi Web' de bu taktiği kullanmamız için Button için yaptığımız resimlerin HTLM de belirtilen Dizinde olması gerekir .Yani Bizim yukarıda yaptığımız olayda resim dosyalarının yerini belirtmememizin amacı resim Button Resim Dosyalarının Program ile aynı dizinde olmasıdır. Bu yüzden sorunun ne olduğunu anladınız galiba yani program bu açıktan dolayı kullanıcı tarıfından değiştirilebilir. Winamp MP3 çalıcıyı bilirsiniz . Winamp SKIN'nin ne olduğunu da biliyorsunuz sanırım , Yani demek istediğim Winamp SKIN'de de bu taktik kullanılmıştır .

 

Aslında bu sorun değil , çünkü bu olayı IMAGE LIST Kontrolü de yapar. IMAGE LIST bir Olay için kullanılan birden fazla resim için kullanılan resim dosyaları olmadan programın bağımsız çalışması için kullanılır. IMAGE LIST Delphinin Win32 sekmesinde bulunur . Gif taktiğine benzer bir taktikle çalışır, biraz incelerseniz kolaylıkla kullanabilirsiniz. Bu arada Delphinin Additional sekmesinde bulunan BitBTN kontrolüyle de buna benzer ama kolay Button kullanabilirsiniz.

 

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

 

buton efekti_3 resimden olusan buton yapma

//bende yeni yeni delphi ogrenmeye basladim ve buldugum dokumanlari sizlerle

//paylasmak istedim.maalesef tamamen c/p ama onemli olan dokumanlarin artmasi

 

 

  Web türü buton yapmanın amacı bildiğiniz gibi delphinin standart buttonları genellikle klasik programlar için kullanılır . Şimdi yapacağımız button kendi çizdiğimiz 3 resimden oluşuyor. Öncelikle 3 adet aynı boyda aynı textli button çizin. 1. Resim ; buttonun Sabit yani Form üzerindeki duruşudur 2. Resim ; Programımız çalışırken mouse ile aynı buttonun üzerine geldiğimize buttonun alacağı şekil olacaktır. 3.Resim ; Programımız çalışırken yaptığımız button tıklanınca alacağı şekildir.

 

Dikkat ettiyseniz bu taktik HTLM (Web ) için button hazırlanması taktiği ile aynıdır. Şimdi bu taktiği kullanmaya başlayalım . Öncelikle Form üzerine Image kontrolünü ekleyelim ve resim olarak yaptığımız 1. resmi ekleyelim. Şımdi sıra Programımıza değişken tanımlayalım;

 

SetMouse : boolean;

 

Değişken tanımlama işimiz bitince Image Mouse Down olayına aşağıdaki kodları yazınız

 

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

begin

SetMouse := true; //Mouse Resmin üzerinde Basık olduğunu anlamamız için

image1.Picture.LoadFromFile('start-3.bmp'); //Mouse Click Durumunda

end;

 

 

Daha Sonra image Mouse Move Olayına aşağıdaki kodları yazınız

 

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

begin

image1.Picture.LoadFromFile('start-2.bmp'); //Mouse Buttonun üzerine gelince buttonun alacağı şekil

if SetMouse then

image1.Picture.LoadFromFile('start-3.bmp'); //Mouse Click Durumunda Buttonun üzerindeki şekil

end;

 

 

Mouse button üzerinde click vaziyetinde olup olmadığını değişkene aktarmak için Image Mouse up olayına aşağıdaki kodu yazınız

 

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);

begin

SetMouse := false; //Mouse Click Durumunda Değil

end;

 

 

Button Görüntüleri Tamamlandı şimdi Click Yordamını yapalım. Image Click olayına aşağıdaki kodu yazınız .

 

procedure TForm1.Image1OnClick(Sender: TObject; Shift: TShiftState; X,Y: Integer);

begin

image1.Picture.LoadFromFile('start-3.jpg');

ShowMessage('Button Tıklandı ');

end;

 

 

Buttonla olan işimiz bitti Mouse buttonumuzun üzerinde olmadığı zaman için mouse şeklini yapalım bunun için Form Mouse Move Olayına Aşağıdaki kodları yazınız.

 

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);

begin

image1.Picture.LoadFromFile('start-1.jpg');

end;

 

 

Ve işlemimiz bitti. Programınızda birden fazla Bu tür button koymanız için Bütün buttonlar için aynı işlemi yapınız. Form Mouse Move olayına her button için yukarıdaki program satırını yazınız.

 

Örnek:

 

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);

begin

image1.Picture.LoadFromFile('Connect-1.jpg');

image2.Picture.LoadFromFile('DeConnect-1.jpg');

image3.Picture.LoadFromFile('Atack-1.jpg');

image4.Picture.LoadFromFile('Exit-1.jpg');

end;

 

 

şeklinde yapınız .

 

Bildiğiniz gibi Web' de bu taktiği kullanmamız için Button için yaptığımız resimlerin HTLM de belirtilen Dizinde olması gerekir .Yani Bizim yukarıda yaptığımız olayda resim dosyalarının yerini belirtmememizin amacı resim Button Resim Dosyalarının Program ile aynı dizinde olmasıdır. Bu yüzden sorunun ne olduğunu anladınız galiba yani program bu açıktan dolayı kullanıcı tarıfından değiştirilebilir. Winamp MP3 çalıcıyı bilirsiniz . Winamp SKIN'nin ne olduğunu da biliyorsunuz sanırım , Yani demek istediğim Winamp SKIN'de de bu taktik kullanılmıştır .

 

Aslında bu sorun değil , çünkü bu olayı IMAGE LIST Kontrolü de yapar. IMAGE LIST bir Olay için kullanılan birden fazla resim için kullanılan resim dosyaları olmadan programın bağımsız çalışması için kullanılır. IMAGE LIST Delphinin Win32 sekmesinde bulunur . Gif taktiğine benzer bir taktikle çalışır, biraz incelerseniz kolaylıkla kullanabilirsiniz. Bu arada Delphinin Additional sekmesinde bulunan BitBTN kontrolüyle de buna benzer ama kolay Button kullanabilirsiniz.

 

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

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