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

StringGrid 'de renklendirme işlemi

bu kodu genelde cari hareketlerinde kullanıyorum ama başka menülerde

 de kullana bilirsizin

 

 iyi çalışmalar delphici arkadaşlara

 fuatkilinc41@hotmail.com

 

  procedure TCariHareketForm.StringGrid1DrawCell(Sender: TObject; ACol,

  ARow: Integer; Rect: TRect; State: TGridDrawState);

 

  StringGrid1.Canvas.Brush.BeforeDestruction;

  If StringGrid1.Cells[7,ARow] = 'A' Then

  StringGrid1.Canvas.Brush.Color := clmoneygreen;

 StringGrid1.Canvas.Font.Color  := clBlack;

 

  If StringGrid1.Cells[7,ARow] = 'B' Then

  StringGrid1.Canvas.Brush.Color := claqua ;

StringGrid1.Canvas.Font.Color  := clBlack;

 

  If StringGrid1.Cells[7,ARow] = '' Then

  StringGrid1.Canvas.Brush.Color := clsilver ;

 

   end;

 

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

 

StringGrid 'de renklendirme işlemi

bu kodu genelde cari hareketlerinde kullanıyorum ama başka menülerde

 de kullana bilirsizin

 

 iyi çalışmalar delphici arkadaşlara

 fuatkilinc41@hotmail.com

 

  procedure TCariHareketForm.StringGrid1DrawCell(Sender: TObject; ACol,

  ARow: Integer; Rect: TRect; State: TGridDrawState);

 

  StringGrid1.Canvas.Brush.BeforeDestruction;

  If StringGrid1.Cells[7,ARow] = 'A' Then

  StringGrid1.Canvas.Brush.Color := clmoneygreen;

 StringGrid1.Canvas.Font.Color  := clBlack;

 

  If StringGrid1.Cells[7,ARow] = 'B' Then

  StringGrid1.Canvas.Brush.Color := claqua ;

StringGrid1.Canvas.Font.Color  := clBlack;

 

  If StringGrid1.Cells[7,ARow] = '' Then

  StringGrid1.Canvas.Brush.Color := clsilver ;

 

   end;

 

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

 

İnternet Bileşenleriyle Chat Programı

İnternet bileşenleri TSERVERSOCKET VE TCLİENTSOCKET

bu bileşenler internet tabında yer almaktadır

Ama direk kurulu olarak gelmez kurmak için component intsall packages tıklayın gelen menude add  diyin  bin dosyasına gelin ve dclsockets70.bpl  paketini secin bukadar

Bileşenler internet tabına yerleşmiş olacaktır

Bu bileşenleri  daha iyi anlamanız için bir örnek yaptım hem server hem client daha doğrusu çok önçe yapmıştım ama size örnek olsun

Not : programı çalıştırdıktan sonra  bir port kaydetmiyi untmayın size bağlanmak istiyen  portu bilmeli artık geliştirmek size kalmış internet üzerinden denedim çalışıyor

 

Kod:

procedure TForm1.Image4Click(Sender: TObject);

begin

form2.Show;

end;

 

procedure TForm1.YARDIM1Click(Sender: TObject);

begin

form3.show;

end;

 

procedure TForm1.Image6Click(Sender: TObject);

begin

if fontdialog1.Execute then

mesaj.Font:=fontdialog1.Font;

memo1.Font:=fontdialog1.Font;

end;

 

procedure TForm1.KAPAT1Click(Sender: TObject);

begin

form1.Close;

end;

 

procedure TForm1.BitBtn1Click(Sender: TObject);

var

  Address: string;

begin

 

  if not ClientSocket1.Active then

  begin

    ClientSocket1.Host := '';

    ClientSocket1.Address := '';

    Address := edit1.Text;

    if inet_addr(PChar(Address)) = INADDR_NONE then

      ClientSocket1.Host := Address

    else

      ClientSocket1.Address := Address;

    ClientSocket1.Port := spiPort.Value;

  end;

  ClientSocket1.Active := not ClientSocket1.Active;

end;

 

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

if clientsocket1.Active then

clientsocket1.Socket.SendText('kulanıcı1::'+ mesaj.Text);

 memo1.Lines.Add(mesaj.Text);

mesaj.Clear;

 

end;

 

procedure TForm1.ClientSocket1Disconnect(Sender: TObject;

  Socket: TCustomWinSocket);

begin

memo1.Lines.Text:='bağlantı koptu';

end;

 

procedure TForm1.ClientSocket1Connect(Sender: TObject;

  Socket: TCustomWinSocket);

begin

memo1.Lines.Text:='bağlantı saglandı';

end;

 

procedure TForm1.ClientSocket1Connecting(Sender: TObject;

  Socket: TCustomWinSocket);

begin

memo1.Lines.Text:='bağlanıyor';

end;

 

procedure TForm1.ClientSocket1Error(Sender: TObject;

  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;

  var ErrorCode: Integer);

begin

memo1.Lines.Text:='bir hata oluştu';

end;

 

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;

  Socket: TCustomWinSocket);

begin

memo1.Lines.Add(socket.ReceiveText);

end;

 

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

serversocket1.Active:=false;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

button2.Show;

  button1.Enabled:=false;

  if ServerSocket1.Active then

  begin

    ServerSocket1.Close;

    memo1.Lines.Text:='baglantı koptu';

 

    Exit;

  end;

  ServerSocket1.Port := spinedit2.Value;

  ServerSocket1.Open;

end;

 

procedure TForm1.FormCreate(Sender: TObject);

begin

button2.Hide;

timer1.Interval:=100;

timer1.Enabled:=true;

end;

 

procedure TForm1.Timer1Timer(Sender: TObject);

var

x:integer;

begin

x:=form1.Height;

form1.Height:=x+13;

 if x>550 then

 timer1.Enabled:=false;

end;

 

procedure TForm1.Button2Click(Sender: TObject);

begin

button1.Enabled:=true;

button2.Hide;

serversocket1.Active:=false;

end;

 

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

begin

if Key=#13 then

  bitbtn2Click(Sender);

end;

 

procedure TForm1.ServerSocket1Accept(Sender: TObject;

  Socket: TCustomWinSocket);

begin

memo1.Lines.Add(socket.RemoteAddress+'bağlandı');

 

end;

 

end.

 

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

 

İnternet Bileşenleriyle Chat Programı

İnternet bileşenleri TSERVERSOCKET VE TCLİENTSOCKET

bu bileşenler internet tabında yer almaktadır

Ama direk kurulu olarak gelmez kurmak için component intsall packages tıklayın gelen menude add  diyin  bin dosyasına gelin ve dclsockets70.bpl  paketini secin bukadar

Bileşenler internet tabına yerleşmiş olacaktır

Bu bileşenleri  daha iyi anlamanız için bir örnek yaptım hem server hem client daha doğrusu çok önçe yapmıştım ama size örnek olsun

Not : programı çalıştırdıktan sonra  bir port kaydetmiyi untmayın size bağlanmak istiyen  portu bilmeli artık geliştirmek size kalmış internet üzerinden denedim çalışıyor

 

Kod:

procedure TForm1.Image4Click(Sender: TObject);

begin

form2.Show;

end;

 

procedure TForm1.YARDIM1Click(Sender: TObject);

begin

form3.show;

end;

 

procedure TForm1.Image6Click(Sender: TObject);

begin

if fontdialog1.Execute then

mesaj.Font:=fontdialog1.Font;

memo1.Font:=fontdialog1.Font;

end;

 

procedure TForm1.KAPAT1Click(Sender: TObject);

begin

form1.Close;

end;

 

procedure TForm1.BitBtn1Click(Sender: TObject);

var

  Address: string;

begin

 

  if not ClientSocket1.Active then

  begin

    ClientSocket1.Host := '';

    ClientSocket1.Address := '';

    Address := edit1.Text;

    if inet_addr(PChar(Address)) = INADDR_NONE then

      ClientSocket1.Host := Address

    else

      ClientSocket1.Address := Address;

    ClientSocket1.Port := spiPort.Value;

  end;

  ClientSocket1.Active := not ClientSocket1.Active;

end;

 

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

if clientsocket1.Active then

clientsocket1.Socket.SendText('kulanıcı1::'+ mesaj.Text);

 memo1.Lines.Add(mesaj.Text);

mesaj.Clear;

 

end;

 

procedure TForm1.ClientSocket1Disconnect(Sender: TObject;

  Socket: TCustomWinSocket);

begin

memo1.Lines.Text:='bağlantı koptu';

end;

 

procedure TForm1.ClientSocket1Connect(Sender: TObject;

  Socket: TCustomWinSocket);

begin

memo1.Lines.Text:='bağlantı saglandı';

end;

 

procedure TForm1.ClientSocket1Connecting(Sender: TObject;

  Socket: TCustomWinSocket);

begin

memo1.Lines.Text:='bağlanıyor';

end;

 

procedure TForm1.ClientSocket1Error(Sender: TObject;

  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;

  var ErrorCode: Integer);

begin

memo1.Lines.Text:='bir hata oluştu';

end;

 

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;

  Socket: TCustomWinSocket);

begin

memo1.Lines.Add(socket.ReceiveText);

end;

 

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

serversocket1.Active:=false;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

button2.Show;

  button1.Enabled:=false;

  if ServerSocket1.Active then

  begin

    ServerSocket1.Close;

    memo1.Lines.Text:='baglantı koptu';

 

    Exit;

  end;

  ServerSocket1.Port := spinedit2.Value;

  ServerSocket1.Open;

end;

 

procedure TForm1.FormCreate(Sender: TObject);

begin

button2.Hide;

timer1.Interval:=100;

timer1.Enabled:=true;

end;

 

procedure TForm1.Timer1Timer(Sender: TObject);

var

x:integer;

begin

x:=form1.Height;

form1.Height:=x+13;

 if x>550 then

 timer1.Enabled:=false;

end;

 

procedure TForm1.Button2Click(Sender: TObject);

begin

button1.Enabled:=true;

button2.Hide;

serversocket1.Active:=false;

end;

 

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

begin

if Key=#13 then

  bitbtn2Click(Sender);

end;

 

procedure TForm1.ServerSocket1Accept(Sender: TObject;

  Socket: TCustomWinSocket);

begin

memo1.Lines.Add(socket.RemoteAddress+'bağlandı');

 

end;

 

end.

 

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

 

Indy İle Dosya Gönderme

DOSYA GÖNDERME

İndy tcp bileşenlerini kullanarak chat programı yapmıştık birde bu uygulamaya dosya gönderme foksiyonu ekliyelim

 

                                                                CLİENT

 

 

 

BEN tasarımı bu şekilde yaptım dosyanın gönerim durumunu izlemek için bir tane pogressbar atın  kod aynen şöyle

 

 

Kod:

procedure TForm1.FormCreate(Sender: TObject);

begin

bitbtn3.Enabled:=false;

bitbtn2.Enabled:=false;

    animate1.hide;

 

 

end;

 

procedure TForm1.BitBtn1Click(Sender: TObject);

 var

 port:integer;

 

begin

port:=strtoint(edit2.Text);

client1.Port:=port; //unutulmaması gereken serverdeki portla aynı olması gerekir

client1.Host:=(edit1.Text);

client1.Connect;

    if client1.Connected=true then

    begin

    bitbtn1.Enabled:=false;

     bitbtn2.Enabled:=true;

          bitbtn3.Enabled:=true;

    bar1.Panels[0].Text:='baglantı sağlandı';

         end;

 

end;

 

procedure TForm1.Client1Disconnected(Sender: TObject);

begin

    bar1.Panels[0].Text:='bağlantı koptu ';

             bitbtn3.Enabled:=false;

             bitbtn1.Enabled:=true;

             bitbtn2.Enabled:=false;

end;

 

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

client1.Disconnect;

 

end;

 

procedure TForm1.BitBtn3Click(Sender: TObject);

var

boyut:single;

dosya:tfilestream;

dyol:ansistring;

begin

if opendialog1.Execute then

begin

dyol:=opendialog1.FileName;

 label5.Caption:=dyol;

end;

dosya:=tfilestream.Create(dyol,fmopenread);

 boyut:=dosya.Size;

 label6.Caption:=floattostr(boyut);

 client1.WriteStream(dosya);

 

end;

      // işlem durumunu görmek için

procedure TForm1.Client1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;

  const AWorkCountMax: Integer);

begin

  bar1.Panels[0].Text:='dosya gönderiliyor  ';

  progressbar1.Visible:=true;

   progressbar1.Position:=0;

    progressbar1.Max:=AWorkCountMax;

    animate1.Active:=true;

    animate1.Show;

     if AWorkCountMax >0 then

      label7.Caption:=inttostr(AWorkCountMax);

      application.ProcessMessages;

 

 

end;

 

procedure TForm1.Client1WorkEnd(Sender: TObject; AWorkMode: TWorkMode);

begin

   bar1.Panels[0].Text:='dosya gönderildi ';

    animate1.Active:=false;

    animate1.Hide;

   progressbar1.Visible:=false;

   application.ProcessMessages;

 

end;

 

procedure TForm1.Client1Work(Sender: TObject; AWorkMode: TWorkMode;

  const AWorkCount: Integer);

begin

if progressbar1.Max > 0 then

begin

label7.Caption:='durum:'+inttostr(AWorkCount)+'/'+inttostr(progressbar1.Max)+'byte';

progressbar1.Position:=(AWorkCount);

end

else

label7.Caption:=inttostr(AWorkCount)+'byte';

application.ProcessMessages;

 

end;

 

end.

 

 

                                                  SERVER KISMI

 

 

Kod:

procedure TForm1.FormCreate(Sender: TObject);

begin

server1.DefaultPort:=1111; //dinlemeye aldımız port

server1.Active:=true;

 

end;

 

procedure TForm1.Server1Connect(AThread: TIdPeerThread);

begin

statusbar1.Panels[0].Text:=(athread.Connection.Socket.Binding.PeerIP+'numaralı kişi baglandı ');

 statusbar1.Panels[1].Text:='bilgisayrın adı '+ athread.Connection.Socket.Name;

 

 

end;

 

procedure TForm1.Server1Execute(AThread: TIdPeerThread);

var

kod:string;

dosya:tfilestream;

dyol:ansistring;

boyut:single;

begin

    kod:=athread.Connection.ReadLn;

  if (kod='dosya') then

    begin

 if   (save.Execute) then

  begin

dyol:=save.FileName;

 

end;

dosya:=tfilestream.Create(dyol,fmcreate);

  boyut:=dosya.Size;

  statusbar1.Panels[0].Text:=':'+floattostr(boyut)+'boyutunda dosya alınıyor';

  athread.Connection.ReadStream(dosya);

  statusbar1.Panels[0].Text:='dosya gönderimi tamam';

end;

    end;

end.

 

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

 

Indy İle Dosya Gönderme

DOSYA GÖNDERME

İndy tcp bileşenlerini kullanarak chat programı yapmıştık birde bu uygulamaya dosya gönderme foksiyonu ekliyelim

 

                                                                CLİENT

 

 

 

BEN tasarımı bu şekilde yaptım dosyanın gönerim durumunu izlemek için bir tane pogressbar atın  kod aynen şöyle

 

 

Kod:

procedure TForm1.FormCreate(Sender: TObject);

begin

bitbtn3.Enabled:=false;

bitbtn2.Enabled:=false;

    animate1.hide;

 

 

end;

 

procedure TForm1.BitBtn1Click(Sender: TObject);

 var

 port:integer;

 

begin

port:=strtoint(edit2.Text);

client1.Port:=port; //unutulmaması gereken serverdeki portla aynı olması gerekir

client1.Host:=(edit1.Text);

client1.Connect;

    if client1.Connected=true then

    begin

    bitbtn1.Enabled:=false;

     bitbtn2.Enabled:=true;

          bitbtn3.Enabled:=true;

    bar1.Panels[0].Text:='baglantı sağlandı';

         end;

 

end;

 

procedure TForm1.Client1Disconnected(Sender: TObject);

begin

    bar1.Panels[0].Text:='bağlantı koptu ';

             bitbtn3.Enabled:=false;

             bitbtn1.Enabled:=true;

             bitbtn2.Enabled:=false;

end;

 

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

client1.Disconnect;

 

end;

 

procedure TForm1.BitBtn3Click(Sender: TObject);

var

boyut:single;

dosya:tfilestream;

dyol:ansistring;

begin

if opendialog1.Execute then

begin

dyol:=opendialog1.FileName;

 label5.Caption:=dyol;

end;

dosya:=tfilestream.Create(dyol,fmopenread);

 boyut:=dosya.Size;

 label6.Caption:=floattostr(boyut);

 client1.WriteStream(dosya);

 

end;

      // işlem durumunu görmek için

procedure TForm1.Client1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;

  const AWorkCountMax: Integer);

begin

  bar1.Panels[0].Text:='dosya gönderiliyor  ';

  progressbar1.Visible:=true;

   progressbar1.Position:=0;

    progressbar1.Max:=AWorkCountMax;

    animate1.Active:=true;

    animate1.Show;

     if AWorkCountMax >0 then

      label7.Caption:=inttostr(AWorkCountMax);

      application.ProcessMessages;

 

 

end;

 

procedure TForm1.Client1WorkEnd(Sender: TObject; AWorkMode: TWorkMode);

begin

   bar1.Panels[0].Text:='dosya gönderildi ';

    animate1.Active:=false;

    animate1.Hide;

   progressbar1.Visible:=false;

   application.ProcessMessages;

 

end;

 

procedure TForm1.Client1Work(Sender: TObject; AWorkMode: TWorkMode;

  const AWorkCount: Integer);

begin

if progressbar1.Max > 0 then

begin

label7.Caption:='durum:'+inttostr(AWorkCount)+'/'+inttostr(progressbar1.Max)+'byte';

progressbar1.Position:=(AWorkCount);

end

else

label7.Caption:=inttostr(AWorkCount)+'byte';

application.ProcessMessages;

 

end;

 

end.

 

 

                                                  SERVER KISMI

 

 

Kod:

procedure TForm1.FormCreate(Sender: TObject);

begin

server1.DefaultPort:=1111; //dinlemeye aldımız port

server1.Active:=true;

 

end;

 

procedure TForm1.Server1Connect(AThread: TIdPeerThread);

begin

statusbar1.Panels[0].Text:=(athread.Connection.Socket.Binding.PeerIP+'numaralı kişi baglandı ');

 statusbar1.Panels[1].Text:='bilgisayrın adı '+ athread.Connection.Socket.Name;

 

 

end;

 

procedure TForm1.Server1Execute(AThread: TIdPeerThread);

var

kod:string;

dosya:tfilestream;

dyol:ansistring;

boyut:single;

begin

    kod:=athread.Connection.ReadLn;

  if (kod='dosya') then

    begin

 if   (save.Execute) then

  begin

dyol:=save.FileName;

 

end;

dosya:=tfilestream.Create(dyol,fmcreate);

  boyut:=dosya.Size;

  statusbar1.Panels[0].Text:=':'+floattostr(boyut)+'boyutunda dosya alınıyor';

  athread.Connection.ReadStream(dosya);

  statusbar1.Panels[0].Text:='dosya gönderimi tamam';

end;

    end;

end.

 

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

 

Tabloyu Word Ve Excel'e Gönderme

Öncelikle http://sourceforge.net/projects/tpofficepartner/  adresinden Office Partner

Componentini indirip Kurun.Kullanımı Ücretsiz Bir Component. Kurduuktan Sonra

Component Palette OfficePartner sekmesiyle yerini alacaktır. Bu bileşenleri

kullanartak kolaylıkla Word ve Excel'e veri aktarabiliriz.

 

Tabloyu Word'e Gönderme

Bildiğiniz Şekilde Veritabanı Bağlantınızı Yapın. Component Palette OfficePartner

sekmesinde bir Opword birde OpDataSetModel Bileşeni Varsayılan adlarıyla bırakıyorum.

 

Tablomu Worde aktaracak bileşenimin adı ibquery1. sizinki table1,query1,adoquery1

vb. olabilir.

 

Opword ve OpdatasetModel bileşenlerinin özellikleriyle  oynamanıza gerek yok Herşeyi

Kodla Halledeceğiz. Öncelikle Aşağıdaki Değişkeni Tanımlayın.

 

Kod:

var

Form1: TForm1;

MergeDoc: TOpWordDocument; //Değişkenimiz. Daha Sonra Uygulamamız Kapatıldığında

Wordle Bağlantımızı Kesildiğini Garantilemek için Formun OnClose Olayına Aşağıdaki

Kodu Yazın

 

Kod:

if Assigned(MergeDoc) then //Word Daha Önce Açılmışsa

MergeDoc.Free; //Word'ü Kapat

if OpWord1.Connected=true then //Word'e Bağlıysa

OpWord1.Connected:=false; //Bağlantıyı Kes

 Aşağıdaki Kodda Verileri Word'e gödermemizi sağlıyor. Ben Buttonun OnClick Olayına

 Yazdım.

 

Kod:

procedure TForm1.Button1Click(Sender: TObject);

begin

//Worde Aktaracağımız Tabloyu OpDataSetModel Bileşeninin

//Dataset özelliğine Aktarıyoruz

OpDataSetModel1.Dataset:=IBQuery1;

if Assigned(MergeDoc) then //Word Daha Önce Açılmışsa

MergeDoc.Free; //Word'ü Kapat

if OpWord1.Connected=true then //Word'e Bağlıysa

OpWord1.Connected:=false; //Bağlantıyı Kes

ibquery1.Active:=true; //Tabloyu Aç

OpWord1.Connected := True; //Word'e Bağlan

OpWord1.DisplayScrollBars:=true; //Word'de Kaydırma Çubukları Görünsün

OpWord1.Visible := False; //Word'ü Gizle

MergeDoc := OpWord1.NewDocument; //Yeni Word Belgesi Aç

OpWord1.Visible := True; //Word'ü Göster

Opword1.WindowState:=wdwsMaximized; //Word'ü Tam Ekran Olarak Göster

//Tabloyu Word'e Aktar

with OpWord1.Documents[0].Tables.Add do

begin

OfficeModel :=OpDatasetModel1;

PopulateDocTable;

end;

ibquery1.Active:=false; //Tabloyu Aç

end;

Tabloyu  Excel'e Gönderme

Bildiğiniz Şekilde Veritabanı Bağlantınızı Yapın. Component Palette OfficePartner

sekmesinde bir OpExcel birde OpDataSetModel Bileşeni Varsayılan adlarıyla bırakıyorum.

Tablomu Excel'e aktaracak bileşenimin adı ibquery1. sizinki table1,query1,adoquery1

 vb. olabilir.

OpExcel ve OpdatasetModel bileşenlerinin özellikleriyle  oynamanıza gerek yok Herşeyi

 Kodla Halledeceğiz. Öncelikle Aşağıdaki Değişkeni Tanımlayın.

 

Kod:

var

Form1: TForm1;

NewBook:TopExcelWorkBook;Aşağıdaki Kodu OpExcel Bileşeninin BeforeWorkBookClose

Olayınada yazın.

 

Kod:

if Assigned(NewBook:) then //Excel Daha Önce Açılmışsa

NewBook:.Free; ///Excel'i Kapat

if OpExcel1.Connected=true then //Excel 'e Bağlıysa

OpExcel1.Connected:=false; //Bağlantıyı Kes

 Daha Sonra Uygulamamız Kapatıldığında Excelle Bağlantımızı Kesildiğini Garantilemek

 için Formun OnClose Olayına Aşağıdaki Kodu Yazın.

 

Kod:

if OpExcel1.Connected=true then //Excel 'e Bağlıysa

OpExcel1.Connected:=false; //Bağlantıyı Kes

 Aşağıdaki Kodda Verileri Excel 'e gödermemizi sağlıyor. Ben Buttonun OnClick Olayına

 Yazdım.

 

Kod:

procedure TForm1.Button1Click(Sender: TObject);

var

Rng : TOpExcelRange;

begin

OpExcel1.Connected := True; //Excel'e Bağlan

OpExcel1.Visible := True; //Excel'i Göster

OpExcel1.WindowState:=xlwsMaximized; //Excel'i Tam Ekran Olarak Göster

IBQuery1.Active:=true; //Tabloyu Aç

NewBook:=OpExcel1.Workbooks.Add; //Yeni Excel Belgesi Aç ü

//Ayarları Yap

Rng := OpExcel1.Workbooks[0].Worksheets[0].Ranges.Add;

Rng.Name := 'www.delphidunyasi.com'; //Keyfinize Göre Bir isim Verin

Rng.Address := 'A1';

Rng.OfficeModel :=OpDataSetModel1; //Kaynak OpDataSetModel Bileşeni

//Excele Aktaracağımız Tabloyu OpDataSetModel Bileşeninin

//Dataset özelliğine Aktarıyoruz

OpDataSetModel1.Dataset :=IBQuery1;

OpExcel1.RangeByName['www.delphidunyasi.com'].Populate; //Tabloyu Aktar

OpExcel1.Workbooks[0].Worksheets[0].Activate; //Exceli Aktif Pencere yap

Rng.AsRange.Columns.AutoFit; //Kolon Genişlikleri Otomatik

IBQuery1.Active:=false; //Tabloyu Kapat

end;

 

Not : Alan Adlarını Field Editorden DisplayFormat  Özelliği ile istediğiniz gibi

değiştirebilirsiniz. örneğin alan adı DOGUM_TARIHI ise  alanın DisPlayFormat

özelliğine Doğum Tarihi Yazarsanız alan adı DisPlayFormat özelliğinde olduğu gibi

 görünür

 

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

 

Tabloyu Word Ve Excel'e Gönderme

Öncelikle http://sourceforge.net/projects/tpofficepartner/  adresinden Office Partner

Componentini indirip Kurun.Kullanımı Ücretsiz Bir Component. Kurduuktan Sonra

Component Palette OfficePartner sekmesiyle yerini alacaktır. Bu bileşenleri

kullanartak kolaylıkla Word ve Excel'e veri aktarabiliriz.

 

Tabloyu Word'e Gönderme

Bildiğiniz Şekilde Veritabanı Bağlantınızı Yapın. Component Palette OfficePartner

sekmesinde bir Opword birde OpDataSetModel Bileşeni Varsayılan adlarıyla bırakıyorum.

 

Tablomu Worde aktaracak bileşenimin adı ibquery1. sizinki table1,query1,adoquery1

vb. olabilir.

 

Opword ve OpdatasetModel bileşenlerinin özellikleriyle  oynamanıza gerek yok Herşeyi

Kodla Halledeceğiz. Öncelikle Aşağıdaki Değişkeni Tanımlayın.

 

Kod:

var

Form1: TForm1;

MergeDoc: TOpWordDocument; //Değişkenimiz. Daha Sonra Uygulamamız Kapatıldığında

Wordle Bağlantımızı Kesildiğini Garantilemek için Formun OnClose Olayına Aşağıdaki

Kodu Yazın

 

Kod:

if Assigned(MergeDoc) then //Word Daha Önce Açılmışsa

MergeDoc.Free; //Word'ü Kapat

if OpWord1.Connected=true then //Word'e Bağlıysa

OpWord1.Connected:=false; //Bağlantıyı Kes

 Aşağıdaki Kodda Verileri Word'e gödermemizi sağlıyor. Ben Buttonun OnClick Olayına

 Yazdım.

 

Kod:

procedure TForm1.Button1Click(Sender: TObject);

begin

//Worde Aktaracağımız Tabloyu OpDataSetModel Bileşeninin

//Dataset özelliğine Aktarıyoruz

OpDataSetModel1.Dataset:=IBQuery1;

if Assigned(MergeDoc) then //Word Daha Önce Açılmışsa

MergeDoc.Free; //Word'ü Kapat

if OpWord1.Connected=true then //Word'e Bağlıysa

OpWord1.Connected:=false; //Bağlantıyı Kes

ibquery1.Active:=true; //Tabloyu Aç

OpWord1.Connected := True; //Word'e Bağlan

OpWord1.DisplayScrollBars:=true; //Word'de Kaydırma Çubukları Görünsün

OpWord1.Visible := False; //Word'ü Gizle

MergeDoc := OpWord1.NewDocument; //Yeni Word Belgesi Aç

OpWord1.Visible := True; //Word'ü Göster

Opword1.WindowState:=wdwsMaximized; //Word'ü Tam Ekran Olarak Göster

//Tabloyu Word'e Aktar

with OpWord1.Documents[0].Tables.Add do

begin

OfficeModel :=OpDatasetModel1;

PopulateDocTable;

end;

ibquery1.Active:=false; //Tabloyu Aç

end;

Tabloyu  Excel'e Gönderme

Bildiğiniz Şekilde Veritabanı Bağlantınızı Yapın. Component Palette OfficePartner

sekmesinde bir OpExcel birde OpDataSetModel Bileşeni Varsayılan adlarıyla bırakıyorum.

Tablomu Excel'e aktaracak bileşenimin adı ibquery1. sizinki table1,query1,adoquery1

 vb. olabilir.

OpExcel ve OpdatasetModel bileşenlerinin özellikleriyle  oynamanıza gerek yok Herşeyi

 Kodla Halledeceğiz. Öncelikle Aşağıdaki Değişkeni Tanımlayın.

 

Kod:

var

Form1: TForm1;

NewBook:TopExcelWorkBook;Aşağıdaki Kodu OpExcel Bileşeninin BeforeWorkBookClose

Olayınada yazın.

 

Kod:

if Assigned(NewBook:) then //Excel Daha Önce Açılmışsa

NewBook:.Free; ///Excel'i Kapat

if OpExcel1.Connected=true then //Excel 'e Bağlıysa

OpExcel1.Connected:=false; //Bağlantıyı Kes

 Daha Sonra Uygulamamız Kapatıldığında Excelle Bağlantımızı Kesildiğini Garantilemek

 için Formun OnClose Olayına Aşağıdaki Kodu Yazın.

 

Kod:

if OpExcel1.Connected=true then //Excel 'e Bağlıysa

OpExcel1.Connected:=false; //Bağlantıyı Kes

 Aşağıdaki Kodda Verileri Excel 'e gödermemizi sağlıyor. Ben Buttonun OnClick Olayına

 Yazdım.

 

Kod:

procedure TForm1.Button1Click(Sender: TObject);

var

Rng : TOpExcelRange;

begin

OpExcel1.Connected := True; //Excel'e Bağlan

OpExcel1.Visible := True; //Excel'i Göster

OpExcel1.WindowState:=xlwsMaximized; //Excel'i Tam Ekran Olarak Göster

IBQuery1.Active:=true; //Tabloyu Aç

NewBook:=OpExcel1.Workbooks.Add; //Yeni Excel Belgesi Aç ü

//Ayarları Yap

Rng := OpExcel1.Workbooks[0].Worksheets[0].Ranges.Add;

Rng.Name := 'www.delphidunyasi.com'; //Keyfinize Göre Bir isim Verin

Rng.Address := 'A1';

Rng.OfficeModel :=OpDataSetModel1; //Kaynak OpDataSetModel Bileşeni

//Excele Aktaracağımız Tabloyu OpDataSetModel Bileşeninin

//Dataset özelliğine Aktarıyoruz

OpDataSetModel1.Dataset :=IBQuery1;

OpExcel1.RangeByName['www.delphidunyasi.com'].Populate; //Tabloyu Aktar

OpExcel1.Workbooks[0].Worksheets[0].Activate; //Exceli Aktif Pencere yap

Rng.AsRange.Columns.AutoFit; //Kolon Genişlikleri Otomatik

IBQuery1.Active:=false; //Tabloyu Kapat

end;

 

Not : Alan Adlarını Field Editorden DisplayFormat  Özelliği ile istediğiniz gibi

değiştirebilirsiniz. örneğin alan adı DOGUM_TARIHI ise  alanın DisPlayFormat

özelliğine Doğum Tarihi Yazarsanız alan adı DisPlayFormat özelliğinde olduğu gibi

 görünür

 

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

 

Sitedeki Buttona Delphiden Tıklatmak

Arkadaşlar yapı şu şekilde;

 

 

Kod:

procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;

  const pDisp: IDispatch; var URL: OleVariant);

var iDoc: IHtmlDocument2;

  i: integer;

  ov: OleVariant;

  iDisp: IDispatch;

  iColl: IHTMLElementCollection;

  iInputElement: IHTMLInputElement;

  iTextElement:IHTMLTextAreaElement;

 formelement:IHtmlFormElement;

 

begin

ov := 'INPUT';

  IDisp := iDoc.all.tags(ov);

  if assigned(IDisp) then begin

    IDisp.QueryInterface(IHTMLElementCollection, iColl);

    if assigned(iColl) then begin

      for i := 1 to iColl.Get_length do begin

        iDisp := iColl.item(pred(i), 0);

        iDisp.QueryInterface(IHTMLInputElement, iInputElement);

        if assigned(iInputElement) then

 

f iInputElement.Get_type_ = 'submit'

            then iInputElement.Get_form.submit;

 

Burda sonda yazmış olduğum ifade tipi submit olan bir buton bularak clickleme işlemini gerçekleştiriyor arkadaşlar.

Aynı şekilde eğer herhangi bir boşluk doldurucaksanız bu ifade yerine şöyle bir ifade kullanıcaksınız;

 

 

Kod:

if iInputElement.Get_name = 'subject'

 

          then iInputElement.Set_value('Selam');Buda anlaşılacağı gibi adı subject olan boşluğa "Selam"  stringini atamak içindir.

 

Son olarakta işinize yarayabiliceğini düşündüğüm text alanlarını doldurmak için

kullanabilceğiniz bir kod daha ekliyorum.

 

Yukarda vermiş olduğum ifade de

 

 

Kod:

ov:='TEXTAREA';

IDisp:=iDoc.all.tags(ov);

if assigned(IDisp) then

  begin

  IDisp.QueryInterface(IHTMLElementCollection,iColl);

  if assigned(iColl) then

      begin

  for i := 1 to iColl.Get_length do begin

        iDisp := iColl.item(pred(i), 0);

      iDisp.QueryInterface(IHTMLTextAreaElement,iTextElement);

      if assigned(iTextElement) then

        begin

        iTextElement.Set_value('Delphi Güzel Bir Programlama Dilidir.');

 

           iInputElement.Get_form.submit;

gibi bir değişiklik yaparsanız textarea denilen bölümleride doldurma şansınız

olucaktır.Böyle bir uygulama nerde işinize yarıyabilir sorusunun cevabına gelince

ise eğer sizde benim gibi formları doldurmaktan sıkıldı iseniz  kendinize böyle bir

 program yazarak bu çileden kurtulma yolunu seçebilirsiniz.

Hepinize bol kodlu ve mutlu günler dilerim.

 

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

 

Sitedeki Buttona Delphiden Tıklatmak

Arkadaşlar yapı şu şekilde;

 

 

Kod:

procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;

  const pDisp: IDispatch; var URL: OleVariant);

var iDoc: IHtmlDocument2;

  i: integer;

  ov: OleVariant;

  iDisp: IDispatch;

  iColl: IHTMLElementCollection;

  iInputElement: IHTMLInputElement;

  iTextElement:IHTMLTextAreaElement;

 formelement:IHtmlFormElement;

 

begin

ov := 'INPUT';

  IDisp := iDoc.all.tags(ov);

  if assigned(IDisp) then begin

    IDisp.QueryInterface(IHTMLElementCollection, iColl);

    if assigned(iColl) then begin

      for i := 1 to iColl.Get_length do begin

        iDisp := iColl.item(pred(i), 0);

        iDisp.QueryInterface(IHTMLInputElement, iInputElement);

        if assigned(iInputElement) then

 

f iInputElement.Get_type_ = 'submit'

            then iInputElement.Get_form.submit;

 

Burda sonda yazmış olduğum ifade tipi submit olan bir buton bularak clickleme işlemini gerçekleştiriyor arkadaşlar.

Aynı şekilde eğer herhangi bir boşluk doldurucaksanız bu ifade yerine şöyle bir ifade kullanıcaksınız;

 

 

Kod:

if iInputElement.Get_name = 'subject'

 

          then iInputElement.Set_value('Selam');Buda anlaşılacağı gibi adı subject olan boşluğa "Selam"  stringini atamak içindir.

 

Son olarakta işinize yarayabiliceğini düşündüğüm text alanlarını doldurmak için

kullanabilceğiniz bir kod daha ekliyorum.

 

Yukarda vermiş olduğum ifade de

 

 

Kod:

ov:='TEXTAREA';

IDisp:=iDoc.all.tags(ov);

if assigned(IDisp) then

  begin

  IDisp.QueryInterface(IHTMLElementCollection,iColl);

  if assigned(iColl) then

      begin

  for i := 1 to iColl.Get_length do begin

        iDisp := iColl.item(pred(i), 0);

      iDisp.QueryInterface(IHTMLTextAreaElement,iTextElement);

      if assigned(iTextElement) then

        begin

        iTextElement.Set_value('Delphi Güzel Bir Programlama Dilidir.');

 

           iInputElement.Get_form.submit;

gibi bir değişiklik yaparsanız textarea denilen bölümleride doldurma şansınız

olucaktır.Böyle bir uygulama nerde işinize yarıyabilir sorusunun cevabına gelince

ise eğer sizde benim gibi formları doldurmaktan sıkıldı iseniz  kendinize böyle bir

 program yazarak bu çileden kurtulma yolunu seçebilirsiniz.

Hepinize bol kodlu ve mutlu günler dilerim.

 

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

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