Clipboarddan Resim Aktarma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Yavuz
Üye
Mesajlar: 115
Kayıt: 09 Haz 2005 03:10

Clipboarddan Resim Aktarma

Mesaj gönderen Yavuz »

Selam,

Veritabanına bazı resim dosyalarını aktarırken şöyle bir metod kullanıyorum
önce resim bi editörden hafızaya (genelde PDF dokumanlardan) alıyorum
sonra uygulama içindeki bir image nesnesina aktarıyorum

Kod: Tümünü seç

if Clipboard.HasFormat(CF_PICTURE)=false then exit;
if Clipboard.HasFormat(CF_BITMAP)=false then exit; image3.Picture.LoadFromClipboardFormat(cf_BitMap,ClipBoard.GetAsHandle(cf_Bitmap),0);
sonrasında

Kod: Tümünü seç

var JPG:tjpegimage;

jpg.Assign(Image3.Picture.Bitmap);
satırında "...access violation ad adress ..." şeklinde hata mesajı veriyor

hata nerdedir acaba ? bu işlemi nasıl yapmalıyım?

Bu arada ,

Aynı işlemleri normalda image nesnesine openpicturedialog ile resim yükleyip fare ile belli bir bölümü seçip image nesnesine aşağıdaki gibi aktardığımda ise bir problem yaşamıyorum

Kod: Tümünü seç

Image3.Canvas.CopyRect(rect(0,0,abs(secilialan.Right-secilialan.Left),abs(secilialan.Bottom-secilialan.Top-1)),Image1.Canvas,rect(secilialan.Left+1,secilialan.Top+1,secilialan.Right-1,secilialan.Bottom-1));
teşekkürler ...
ibrahimcoban
Üye
Mesajlar: 163
Kayıt: 11 Eki 2005 10:44
İletişim:

Re: Clipboarddan Resim Aktarma

Mesaj gönderen ibrahimcoban »

Sanırım hata jp nesnesini create etmemiş olmanız.

Kod: Tümünü seç

var
jp :TJPEGImage;
begin
jp:=TJPEGImage.Create; //create et
jp.Assign(Image3.Picture.Bitmap);
http://ibrahimcoban.com/
Lazarus, Kol-Ce,Delphi ve C#
Kullanıcı avatarı
Yavuz
Üye
Mesajlar: 115
Kayıt: 09 Haz 2005 03:10

Re: Clipboarddan Resim Aktarma

Mesaj gönderen Yavuz »

Sorumda kodun o kısımlarını yazmadım normalde var.

assign işlemi sorumdaki gibi 2. yöntemde problem çıkarmıyor.


assign işlemini

Kod: Tümünü seç

image3.Picture.LoadFromClipboardFormat(cf_BitMap,ClipBoard.GetAsHandle(cf_Bitmap),0);
den sonra yaparsam hata veriyor

Kod: Tümünü seç

Image3.Canvas.CopyRect(...)
den sonra yaparsam hata vermiyor
Cevapla