Başlangıç > Kodlar > Delphi.Net ile Fotoğraf gösterme programı

Delphi.Net ile Fotoğraf gösterme programı


Diyelimki bir klasörde sakladığınız resimleriniz var. Bu programla o klasöre erişip oradan bir resim seçtiğinizde o klasör altındaki bütün resimler, programınızın formuna 45*45 boyutunda diziliyor. Ve bu resimlerden herhangi birine bir kez tıkladığınızda o resim başka bir form yoluyla orjinal olarak gösteriliyor...

Yapmanız gereken delphide bir form açmak (form1), arkasına yeni bir form daha açmak(form2) dir...

(ben bu programı delphi.net ile yazdım)

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, System.ComponentModel, Borland.Vcl.ExtDlgs;

type
TForm1 = class(TForm)
OpenPictureDialog1: TOpenPictureDialog;
procedure FormPaint(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDblClick(Sender: TObject);
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.nfm}

uses System.Drawing,System.Drawing.Drawing2D,System.IO,Cizim_ResimGoster;
var
secildi:Boolean;
resimler:Array[0..500] of String;

procedure TForm1.FormCreate(Sender: TObject);
begin
OpenPictureDialog1.Title :=
'Gösterilecek resimlerin bulunduğu klasörü seçiniz';
end;

procedure TForm1.FormPaint(Sender: TObject);
var
g:System.Drawing.Graphics;
d:FileInfo;
klasor:DirectoryInfo;
dosyalar:Array of FileInfo;
i, u, k, satir, sutun, max_sutun:Integer;
const
uzantilar:Array[0..3] of string= ('*.jpg', '*.bmp', '*.gif', '*.wmf');
begin
g:=System.Drawing.Graphics.FromHwnd(IntPtr.Create(handle));
if secildi=false then
g.DrawString('Resim seçmek için formu çift tıklayın',
System.Drawing.Font.Create('Tahoma', 16, FontStyle.Regular),
SolidBrush.Create(System.Drawing.Color.Black), 0, 0)
else
Begin
g.Clear(System.Drawing.Color.White);
d := FileInfo.Create(OpenPictureDialog1.FileName);
klasor := DirectoryInfo.Create(d.DirectoryName);
max_sutun := Self.ClientWidth div 50;
for u := 0 to High(uzantilar) do
Begin
dosyalar := klasor.GetFiles(uzantilar[u]);
for i := 0 to High(dosyalar) do
Begin
if sutun = max_sutun then
Begin
sutun := 0;
satir := satir + 1;
end;
resimler[k] := dosyalar[i].FullName;
try
g.DrawImage(Image.FromFile(dosyalar[i].FullName),
Rectangle.Create(sutun * 50, satir * 50, 45, 45));
except
g.DrawString('BOZUK',
System.Drawing.Font.Create('Tahoma', 8, FontStyle.Regular),
SolidBrush.Create(System.Drawing.Color.Red),
sutun * 50, satir * 50);
end;
sutun := sutun + 1;
k := k + 1;
end;
end;
end;
end;

procedure TForm1.FormDblClick(Sender: TObject);
begin
if OpenPictureDialog1.Execute then
Begin
secildi := true;
Self.Repaint; //Paint olayının çalışmasını sağla
end;
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
i, satir, sutun, max_sutun:Integer;
resim:TBitmap;
begin
if secildi then
if Button = mbLeft then
begin
max_sutun := Self.ClientWidth div 50;
satir := y div 50;
sutun := X div 50;
i := satir * max_sutun + sutun;
try
resim:=TBitmap.Create;
resim.LoadFromFile(resimler[i]);
Form2.Show();
Application.ProcessMessages;
Form2.Width := resim.Width + 5;
Form2.Height := resim.Height + 20;
Form2.Canvas.Draw(0,0,resim);
Form2.caption := resimler[i];
except
;
end;
end;
end;

end.


TD Software


Reklamlar
  1. 25/04/2011, 14:51

    System.ComponentMode.dcu dosyası?

    Beğen

  1. No trackbacks yet.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: