Yorumları: 26
Konuları: 10
Kayıt Tarihi: 10-06-2020
Aktif Kullandığınız Delphi Sürümü:
- Delphi 10.2
- Delphi 10.1
- Delphi 7
Rep Puanı: 12 Başlangıç
Selam,
Main image üzerine create ederek küçük icon ekleyeceğim. Fakat DrawBitmap(MyBitmap, MyRect, MyRect, 100) kodunda hata alıyorum hata mesajıda gelmiyor.
bu sorunu nasıl çözerim?
procedure TForm1.Button1Click(Sender: TObject);
var
MyBitmap: TBitmap;
MyRect: TRectF;
begin
MyRect.Create(0, 0, 24, 24);
MyBitmap.LoadFromFile('D:\Nese\Icon\90620233817.png');
Image1.Bitmap.Canvas.BeginScene;
Image1.Bitmap.Canvas.DrawBitmap(MyBitmap, MyRect, MyRect, 100);
Image1.Bitmap.Canvas.EndScene;
end;
Yorumları: 1.898
Konuları: 22
Kayıt Tarihi: 05-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 21.184 Üstad
Cevabınız, kendi sorunuzun içinde saklı.
Create etmediğiniz Bitmap için DrawBitmap içinde kullanmaya çalışmışsınız.
Hata mesajı gelmiyor konusunu anlamadım. MyBitmap local bir variable ve bu durumda "Access Violation" alıyor olmalıydınız. Garip...
Aşağıdaki şekilde deneyin...
procedure TForm1.Button1Click(Sender: TObject);
var
MyBitmap: TBitmap;
MyRect: TRectF;
begin
MyBitmap := TBitmap.Create;
try
MyBitmap.LoadFromFile('D:\Nese\Icon\90620233817.png');
MyRect.Create(0, 0, MyBitmap.Width, MyBitmap.Height);
Image1.Bitmap.Canvas.BeginScene;
Image1.Bitmap.Canvas.DrawBitmap(MyBitmap, MyRect, MyRect, 1);
Image1.Bitmap.Canvas.EndScene;
finally
MyBitmap.Free;
end;
end;
Saygılarımla
Muharrem ARMAN
Yorumları: 26
Konuları: 10
Kayıt Tarihi: 10-06-2020
Aktif Kullandığınız Delphi Sürümü:
- Delphi 10.2
- Delphi 10.1
- Delphi 7
Rep Puanı: 12 Başlangıç
19-06-2020, Saat: 22:12
(Son Düzenleme: 19-06-2020, Saat: 22:14, Düzenleyen: Nese.)
(19-06-2020, Saat: 21:40)mrmarman Adlı Kullanıcıdan Alıntı: Cevabınız, kendi sorunuzun içinde saklı.
Create etmediğiniz Bitmap için DrawBitmap içinde kullanmaya çalışmışsınız.
Hata mesajı gelmiyor konusunu anlamadım. MyBitmap local bir variable ve bu durumda "Access Violation" alıyor olmalıydınız. Garip...
Aşağıdaki şekilde deneyin...
procedure TForm1.Button1Click(Sender: TObject);
var
MyBitmap: TBitmap;
MyRect: TRectF;
begin
MyBitmap := TBitmap.Create;
try
MyBitmap.LoadFromFile('D:\Nese\Icon\90620233817.png');
MyRect.Create(0, 0, MyBitmap.Width, MyBitmap.Height);
Image1.Bitmap.Canvas.BeginScene;
Image1.Bitmap.Canvas.DrawBitmap(MyBitmap, MyRect, MyRect, 1);
Image1.Bitmap.Canvas.EndScene;
finally
MyBitmap.Free;
end;
end;
İlk başta hata kodunu göstermedi
Verdiğini kodları ekleyince E2010 Incompatible types: 'FMX.Graphics.TBitmap' and 'Vcl.Graphics.TBitmap' hatasını aldım.
Usesde FMX.Graphics ekli
Yorumları: 1.898
Konuları: 22
Kayıt Tarihi: 05-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 21.184 Üstad
20-06-2020, Saat: 09:48
(Son Düzenleme: 20-06-2020, Saat: 09:51, Düzenleyen: mrmarman.)
Sorunuzu FMX (FireMonkey) altında açtığınız için yazıyorum.
Projeniz Multidevice ise FMX kodlu veya platform bağımsız unitleri kullanmalısınız.
Projeniz VCL ise o zanan VCL kodlu veya platform bağımsız olan unitleri...
Bitmap'i FMX formda kullanmak için VCL kodlu olan uniti kaldırın.
Saygılarımla
Muharrem ARMAN
Yorumları: 26
Konuları: 10
Kayıt Tarihi: 10-06-2020
Aktif Kullandığınız Delphi Sürümü:
- Delphi 10.2
- Delphi 10.1
- Delphi 7
Rep Puanı: 12 Başlangıç
(20-06-2020, Saat: 09:48)mrmarman Adlı Kullanıcıdan Alıntı: Sorunuzu FMX (FireMonkey) altında açtığınız için yazıyorum.
Projeniz Multidevice ise FMX kodlu veya platform bağımsız unitleri kullanmalısınız.
Projeniz VCL ise o zanan VCL kodlu veya platform bağımsız olan unitleri...
Bitmap'i FMX formda kullanmak için VCL kodlu olan uniti kaldırın.
Sorunu çözdüm fakat pozisyon konusunda sıkıntı yaşıyorum. Seçtiğim resmi TImagenin istediğim yerinde çıkmasını nasıl sağlarım?
procedure TMainForm.Button1Click(Sender: TObject);
var
MyBitmap: TBitmap;
MyRect: TRectF;
X, Y: Integer;
begin
X := Integer(Trunc(Image1.Width)) - 150;
Y := Integer(Trunc(Image1.Height)) - 450;
MyBitmap := TBitmap.CreateFromFile('D:\Nese\Icon\90620233817.png');
MyRect := TRectF.Create(X, Y, MyBitmap.Height, MyBitmap.Width);
Image1.Bitmap.Canvas.BeginScene;
try
Image1.Bitmap.Canvas.DrawBitmap(MyBitmap, MyRect, MyRect, 1);
finally
Image1.Bitmap.Canvas.EndScene;
MyBitmap.Free;
end;
end;
Yorumları: 1.898
Konuları: 22
Kayıt Tarihi: 05-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 21.184 Üstad
bir tane
TargetRect: TRectF;
ekleyin ve
TargetRect.Create(X, Y, MyBitmap.Width+X, MyBitmap.Height+Y);
şeklinde yapılandırın.
Image1.Bitmap.Canvas.DrawBitmap(MyBitmap, MyRect, TargetRect, 1);
şeklinde de kullanın.
Image1'in boyutu bitmap boyutuna göre değişken türden yani standart değilse tavsiyem X ve Y değerlerini Image1 Width / Height referansı ile değil, Offset olarak kullanın.
Yani başlama değerleri 0 kabul edin ve görece 0 konumuna göre 0'dan geri veya ileri için + veya - değerler vererek kullanın.
Saygılarımla
Muharrem ARMAN
Yorumları: 26
Konuları: 10
Kayıt Tarihi: 10-06-2020
Aktif Kullandığınız Delphi Sürümü:
- Delphi 10.2
- Delphi 10.1
- Delphi 7
Rep Puanı: 12 Başlangıç
Çok teşekkür ederim. Sayenizde çok şey öğreniyorum.
|