TImage nesnesinden mouse ile resim kopyala yapıştır yapma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
samety
Üye
Mesajlar: 9
Kayıt: 29 Kas 2005 03:27

TImage nesnesinden mouse ile resim kopyala yapıştır yapma

Mesaj gönderen samety »

sevgili programcı arkadaşlar windowstaki gibi delphide image nesnesi üzerinde kes kopyala yapıştır işlemlerini nasıl kullanabilirim kod olarak yazarsanız memnun olurum
bilmiyorum formda arattım ancak bulamadım belki dogru anahtar kelimeyi kullanmamıştırım
eğer varsa form kurallarına uymadıgım için özür dilerim
En son samety tarafından 17 Ara 2005 05:27 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Selam...

- Yaklaşımınızdan dolayı tebrik ederim. Önce arama yapma alışkanlığının azaldığı günler yaşıyorduk. Resim

- "windows türü" olarak belirlediğiniz konu başlığınızı da soruya yönelik kısa bir özet şeklinde değiştirirseniz, arama yapan diğer arkadaşların da buldukları sonuçlar arasında kolayca seçebilmesini sağlamış olursunuz. Mesela "TImage nesnesinden mouse ile resim kopyala yapıştır yapma hk." gibi...

- Sorunuzun cevabı gelince... TImage nesnesine koyduğunuz resim türünün TBitmap tipinde olması bu işlem için gerekli diyebilirim. Resim

- Şimdi DivXTurk projesinde kullandığım üçüncü parti bir componente ihtiyaç olmaksızın bir TImage nesnesine TBitmap formatında; BMP, JPG ve GIF yüklemek için hazırladığım fonksiyonu yazıyorum...Resim

- Buradan çıkacak ders, aslında Delphi'de olmadığı söylenen GIF desteğinin dolaylı yollarda native olarak var olduğunu kanıtlanmasıdır.. TOleGraphic tipinde bir değişkene GIF yükleyebilir ve bunu dilediğiniz gibi kullanabilirsiniz.

Kod: Tümünü seç

Procedure ResimYukle(Var Resim:TImage);
Var
  DosyaAc    : TOpenDialog;
  Jpeg       : TJpegImage;  // Uses JPEG
  FileStream : TFileStream;
  Gif        : TOleGraphic; // Uses AxCtrls
  Bitmap     : TBitmap;
begin
  DosyaAc := TOpenDialog.Create(Nil);
  With DosyaAc do
  begin
    Title       := 'Dosya Açma Penceresi';
    Filter      := 'BMP Dosyalar|*.BMP|JPG Dosyalar|*.JPG|GIF Dosyalar|*.GIF';
    FilterIndex := 0;
    if Execute then
    begin
      case FilterIndex of
        1: Resim.Picture.LoadFromFile(FileName);
        2: begin
             JPeg := TJpegImage.Create;
             JPeg.LoadFromFile(FileName);
             Resim.Picture.Bitmap.Assign(JPeg);
             JPeg.Free;
           end;
        3: begin
             FileStream := TFileStream.Create(FileName, fmOpenRead or fmSharedenyNone);
             Gif := TOleGraphic.Create;
             Gif.LoadFromStream(FileStream);
             Resim.Picture.Assign(Gif); // Geçici olarak kullanıyoruz...
             Gif.Free;
             FileStream.Free;

             Bitmap := TBitmap.Create;
             Bitmap.Width  := Resim.Picture.Width;
             Bitmap.Height := Resim.Picture.Height;
             //Transparan bir renk de belirleyebilirsiniz.. :)
             //-----------------------------------------------
             //Bitmap.Transparentcolor:=clBlack;
             //Bitmap.Transparent     :=True;
             Bitmap.Canvas.Draw(0, 0, Resim.Picture.Graphic);
             Resim.Picture.Graphic := Bitmap; // Şimdi Bitmap oldu...
             Bitmap.Free;
           end;
      end; // Case
    end; // if Execute
    free;
  end; // With
end;
- Bu aşamaya kadar neyi sağladık. Bu üç resim formatını ve dilerseniz nicelerini TBitmap formunda TImage nesnesine koyduk.

- Bundan sonra standart TImage.Bitmap.Canvas operasyonları ile dilediğiniz yeri kesip-biçip, dilediğiniz yere yapıştırabilirsiniz...

- Bunu da nasıl yaparım diye sormayınız, forumda Canvas işlemleriniden bir sürü var... Arama yaparken kriter olarak canvas copyrect deyip "Bütün terimler için ara" dialoğunu seçin.Resim

- Hep derim ya, yazılım sanatının püfünde ilüzyonu, en üstte tutarım...Resim Seçim yapılan bölgeyi de belirlemek için boyutu değişen bir nesne üretebilirsiniz. Gerisi hayal gücünüze kalmış...

- Başarılar..
Resim
En son mrmarman tarafından 18 Ara 2005 08:30 tarihinde düzenlendi, toplamda 2 kere düzenlendi.
Resim
Resim ....Resim
Kullanıcı avatarı
samety
Üye
Mesajlar: 9
Kayıt: 29 Kas 2005 03:27

saol

Mesaj gönderen samety »

teşekkürler muharrem abi yardımların için saol her gün bir bilgi ogreniyoruz
hep beraber
Kullanıcı avatarı
samety
Üye
Mesajlar: 9
Kayıt: 29 Kas 2005 03:27

Mesaj gönderen samety »

Gif : TOleGraphic; // Uses AxCtrls
benim program burda hata veriyor yardımcı olabilcenmı
[Hint] Unit1.pas(105): Value assigned to 'Y' never used
[Error] Unit1.pas(141): Undeclared identifier: 'TOleGraphic'
aynı bole bi hata
kusura bakma senide ugrastırıyoz ama
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

:ara "undeclared identifier"

çok konuşuldu.

Kolay gelsin.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@samety

Kod: Tümünü seç

  Gif        : TOleGraphic; // Uses AxCtrls 
derken oraya remark ile Uses'a eklemen gereken unit'i boşuna koymadım.... Sen Uses satırına AxCtrls koyacaksın ki bu TOleGraphic nedir ne değildir Delphi bilebilsin...

- Alınacak ders : Delphi'de her type/function/const vs. ilgili kütüphanede bulunur. Sen ilgilendiğin bir type ile ilgili kütüphaneyi Uses'a eklemezsen, delphi sendeki gibi tanımlayamadığına dair hata mesajı vererek seni uyarır. Sen de ilgili kütüphaneyi -ki örneğimizde AxCTRLS oluyor- Uses satırına eklersen sorun ortadan kalkacaktır...
Resim
Resim ....Resim
Cevapla