Delphi Can
Fotoğraf Görüntüleyici - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Genel Programlama (https://www.delphican.com/forumdisplay.php?fid=6)
+--- Konu Başlığı: Fotoğraf Görüntüleyici (/showthread.php?tid=583)

Sayfalar: 1 2


Fotoğraf Görüntüleyici - yhackup - 22-01-2017

Merhabalar,
Uygulamamda bir fotoğraf görüntüleyici kullanmam gerekiyor.  Saydam paneller kullanıp fotoğraf değiştirilsin deyim ama evdeki hesap çarşıya uymadı. Öneriniz nedir bu konuda

nj67JR.jpg

vX2EJp.jpg


Cvp: Fotoğraf Görüntüleyici - Fesih ARSLAN - 23-01-2017

Merhaba,
Sanırım 3 adet Image nesnesi yetecektir.

Örnek;

2017-01-23_09-30-17.png
Yer: Erzurum Smile

2017-01-23_09-30-04.png


Fotoğraf Görüntüleyici - yhackup - 23-01-2017

image kullanıldığında, formu genişletip küçülttüğünüzde resimde bozulmalar olmuyor mu ?

ve sağ sol ımage nesnesinin aling sağa ve sola yapıştırdığımda ana ımage nesnesi bunların altında kalması lazım.


Cvp: Fotoğraf Görüntüleyici - Fesih ARSLAN - 23-01-2017

Adım adım yazalım o zaman;
1-Sağ ve sol tarafta yer alan Image nesnelerinin Center özelliğini True yapın.
2-Sol Image, Anchors özelliğinin Left, Top özellikleri True diğerleri False olsun.
3-Sağ Image, Anchors özelliğinin  Top, Right özellikleri True diğerleri False olsun.

4-Formun OnResize olayına aşağıdaki kodu yazın.
procedure TForm1.FormResize(Sender: TObject);
begin
 Image2.Height := Image1.Height;
 Image3.Height := Image1.Height;
end;

Sonuç: 






Fotoğraf Görüntüleyici - yhackup - 23-01-2017

Süper tam istediğim şey,
bunun altına ben bir de ScrollBox koyup içerisine ımage nesneleri create edip işte ilgili iş için bulunan diğer image'ları yüklüyorum bu image'ların onclick olayını yakalayamadım bu mümkün müdür yoksa başka bir şekilde mi halletmeliyim.


Cvp: Fotoğraf Görüntüleyici - Fesih ARSLAN - 23-01-2017

Her Image nesnesinin OnClick olayı vardır. Kodu bu olaya yazmanız yeterli olacaktır. 
Tüm Image'lar için ortak bir metod (Event) düşünüyorsanız;
Image nesnesinin OnClick olayına aşağıdaki kodu yazıp, diğer Image'lerin de OnClick olayında bu Image'in OnClick olayını seçmeniz yeterli olacaktır.

procedure TForm1.Image2Click(Sender: TObject);
begin
 if Sender is TImage then
   ShowMessage(TImage(Sender).Name + ' Tıklandı');
end;

Dinamik oluşturduğunuz Image nesnelerinin OnClick olayını yakalamak için ortak bir metod yazıp, Image'i create ettiğiniz yerde olayını da atamanız gerekiyor.
  private
    procedure ImageOrtakClick(Sender: TObject);
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ImageOrtakClick(Sender: TObject);
begin
 if Sender is TImage then
   ShowMessage(TImage(Sender).Name + ' Tıklandı');
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 yeniImage: TImage;
begin
 yeniImage := TImage.Create(Nil);
 yeniImage.OnClick := ImageOrtakClick;
end;



Cvp: Fotoğraf Görüntüleyici - yhackup - 23-01-2017

Hmm çok teşekkür ederim abi,


procedure TForm1.ImageOrtakClick(Sender: TObject);
begin

end;

buraya kadar yaptım

if Sender is TImage then
ShowMessage(TImage(Sender).Name + ' Tıklandı');

bu kısımda takılmıştım teşekkürler abi


Cvp: Fotoğraf Görüntüleyici - yhackup - 23-01-2017

Güzel oldu,
Atayım buraya örnek teşkil eder.

BvQB7D.jpg




var
  Form1: TForm1;
  GlobalName: String;
  img: TStrings;
  index: integer = 0;
  maxindex: integer;

implementation

{$R *.dfm}

procedure TForm1.FormCanResize(Sender: TObject; var NewWidth,
  NewHeight: Integer; var Resize: Boolean);
begin
  left.Height := Image1.Height;
  right.Height := Image1.Height;
end;

procedure TForm1.FormShow(Sender: TObject);
  procedure DrawImage(AFileName: String; AIndex: Integer);
  begin
    with TImage.Create(ScrollBox1) do
    begin
      Parent := ScrollBox1;
      Width := 50;
      Height := 50;
      Stretch := True;
      OnClick := ImageOnClick;
      Picture.LoadFromFile(AFileName);
      Top := 0;
      Left := 5 + (AIndex * (Width + 5));
      BringToFront();
    end;
  end;
  var
    i: Integer;
  begin
    img := TStringList.Create;
    img.Add('C:\38LP712\1.jpg');
    img.Add('C:\38LP712\2.jpg');
    img.Add('C:\38LP712\3.jpg');
    img.Add('C:\38LP712\4.jpg');
    img.Add('C:\38LP712\5.jpg');
    img.Add('C:\38LP712\6.jpg');
    img.Add('C:\38LP712\7.jpg');
    maxindex := img.Count-1;
    for i := 0 to img.Count - 1 do
      DrawImage(img[i], i);

      Image1.Picture.LoadFromFile(img[0]);
  end;
procedure TForm1.ImageOnClick(Sender: TObject);
begin
  if Sender is TImage then Image1.Picture := TImage(Sender).Picture;
end;

procedure TForm1.leftClick(Sender: TObject);
begin
   if (index > 0) then begin
    index := index - 1;
    Image1.Picture.LoadFromFile(img[index]);
    if (index = 0) then index := maxindex+1;
   end;
  Caption := 'Fotoğraf Görüntüleyici '+inttostr(index);
end;

procedure TForm1.rightClick(Sender: TObject);
begin

   if (index < maxindex) then begin
     index := index + 1;
     Image1.Picture.LoadFromFile(img[index]);
   if (index = maxindex) then index := -1;
   end;
   Caption := 'Fotoğraf Görüntüleyici '+inttostr(index);
end;

end.



Fotoğraf Görüntüleyici - engerex - 23-01-2017

Fare tekerleği ile zoom ve 3. Buton ile pan yapabiliyor muyuz?


Fotoğraf Görüntüleyici - yhackup - 23-01-2017

(23-01-2017, Saat: 22:01)engerex Adlı Kullanıcıdan Alıntı: Fare tekerleği ile zoom ve 3. Buton ile pan yapabiliyor muyuz?

Yok ama haklısın yapmışken onu da ekleyeyim