View Full Version : مشکل در لود کردن عکس در image
vb.net2008
دوشنبه 27 تیر 1390, 11:36 صبح
سلام
من عکسام تو بانک قرار داره. برای لود کسام از دستور image استفاده می کنم. اما خطا می ده . اینم دستورم
frmMain.Image.Picture:=DM.Q1['CategoryPic'];
BORHAN TEC
دوشنبه 27 تیر 1390, 12:04 عصر
از چه بانکی استفاده کرده اید؟
از چه تکنولوژی ای استفاده کرده اید؟
vb.net2008
دوشنبه 27 تیر 1390, 12:17 عصر
از access . دستوری که بالا نوشتم فراموش کنین. یه دستور دیگه پیدا کردم اما با jpg مشکل داره
Mahdi_S_T
دوشنبه 27 تیر 1390, 13:52 عصر
اگه خطای پست اولی را بگذاری ، بهتر میشه کمک کرد ولی احتمالا یا آدرس مسیر به صورت کامل نیست و یا نوع PChar
vb.net2008
سه شنبه 28 تیر 1390, 10:07 صبح
کد بالا رو فراموش کنید. بگید مشکل این کد چیه که خطای abstract میده
S := TMemoryStream.Create;
Try
Graphic := TGraphic.Create; {The magic class!}
TBlobField(Dm.Q1.FieldByName('CategoryPic')).SaveT oStream(S);
//fs := TFileStream.Create(DM.Q1.FieldByName('CategoryPic' ), fmOpenRead Or fmSharedenyNone);
Graphic.LoadFromStream(s);
Source := Timage.Create(Nil);
Source.Picture.Assign(Graphic);
BMP := TBitmap.Create; {Converting to Bitmap}
bmp.Width := Source.Picture.Width;
bmp.Height := source.Picture.Height;
bmp.Canvas.Draw(0, 0, source.Picture.Graphic);
frmMain.Image.Picture.Bitmap := bmp; {Show the bitmap on form}
Finally
fs.Free;
Graphic.Free;
Source.Free;
bmp.Free;
End;
vb.net2008
سه شنبه 28 تیر 1390, 19:29 عصر
کسی نمی خواد جواب بده
vb.net2008
سه شنبه 28 تیر 1390, 19:42 عصر
یکی از مشکلام حل شد دیگه خطا نمی ده اما نمی دونم چرا عکسامو نشون نمیده. حداقل اینو جواب بدین. (محض رضای خدا)
یوسف زالی
سه شنبه 28 تیر 1390, 21:26 عصر
VB جان در این باره بحث شده:
http://barnamenevis.org/showthread.php?294680-ذخیره-عکس-در-بانک-sql
در خصوص اکسس هم احتمالا همین جواب بده.
اگر نداد بگید درست کنم.
vb.net2008
چهارشنبه 29 تیر 1390, 00:07 صبح
کد شما رو یکسری تغییرات دادم اما بازم خط میده
Stream := TStream.Create;
JPG := TJPEGImage.Create;
Stream := ADOContainer.CreateBlobStream(TBlobField(DM.Q1.Fie ldByName('CategoryPic')),bmRead);
if Stream.Size = 0 then
begin
frmMain.Image.Picture.Assign(nil);
exit;
end;
JPG_Error := false;
try
JPG.LoadFromStream(Stream);
except
JPG_Error := true;
end;
if not JPG_Error then
begin
Stream.Destroy;
frmMain.Image.Picture.Assign(JPG);
JPG.Destroy;
end
else
begin
Stream.Destroy;
JPG.Destroy;
frmMain.Image.Picture.Assign(TBlobField(DM.Q1.Fiel dByName('CategoryPic'))); // when old type exists in DB started by 0x424D
end;
vb.net2008
پنج شنبه 30 تیر 1390, 19:20 عصر
مشکل من تو خوندن عکس از بانک حل شد. اما هنوز یه مشکل دیگه باقی مونده. من می خوام لیستی از عکسامو ازتوی بانک نشون بدم. بخاطر همین از کنترل bdgridctrl استفاده می کنم. اما مشکلی که هست اینکه مثلا اگه چهار عکس قرار باشه لیست بشه چهار بار یه عکس رو تکرار می کنه. شما چی پیشنهاد می کنید. فقط خوهش می کنم اگه ایده ای دارید سریع بگین. چون من باید برنامه رو شنبه تحویل بدم.
vb.net2008
پنج شنبه 30 تیر 1390, 19:23 عصر
راستس اینم کدم
Param:=DM.Q1['PageParam'];
DM.Q3.Close ;
DM.Q3.SQL.Clear ;
DM.Q3.SQL.Add('Select * from tbl_jobCategory where CategoryParent=:ID') ;
DM.Q3.Parameters.ParamByName('ID').Value:=Param;
DM.Q3.Open ;
// frmMain.Label7.Caption:=inttostr(DM.Q3.RecordCount );
frmMain.Panel:=TPanel.Create(self);
frmMain.Panel.Parent:=frmMain;
frmMain.Panel.Left:=180;
frmMain.Panel.Top:=240;
frmMain.Panel.Width:=650;
frmMain.Panel.Height:=430;
frmMain.Panel.BevelOuter:=bvNone;
frmMain.Panel.Color:=clWhite;
frmMain.DBGridCtrl1:=TDBCtrlGrid.Create(self);
frmMain.DBGridCtrl1.Parent:=frmMain.Panel;
frmMain.DBGridCtrl1.Left:=1;
frmMain.DBGridCtrl1.Top:=10;
frmMain.DBGridCtrl1.Width:=780;
frmMain.DBGridCtrl1.DataSource:=DM.Q3DS ;
frmMain.DBGridCtrl1.PanelBorder:=gbNone;
frmMain.DBGridCtrl1.RowCount:=3;
frmMain.DBGridCtrl1.ColCount:=5;
frmMain.DBGridCtrl1.PanelHeight:=120;
frmMain.DBGridCtrl1.PanelWidth:=120;
frmMain.DBGridCtrl1.Align:=alRight;
frmMain.Panel4:=TPanel.Create(self);
frmMain.Panel4:=TPanel(frmMain.DBGridCtrl1.Control s[0]);
frmMain.Image:=TImage.Create(self);
frmMain.Image.Parent :=frmMain.Panel4;
frmMain.Image.Left:=10;
frmMain.Image.Top:=10;
frmMain.Image.Width:=100;
frmMain.Image.Height:=100;
frmMain.Image.Stretch:=true;
//frmMain.Image.Hint:=DM.Q3['CategoryName'];
frmMain.Vis:=1;
if Dm.Q3ImageType.AsString <> '' then begin
BlobStream := DM.Q3.CreateBlobStream(Dm.Q3CategoryPic, bmRead);
try
Ext := UpperCase(Dm.Q3ImageType.AsString);
if Ext = '.BMP' then
frmMain.Image.Picture.Bitmap.LoadFromStream(BlobSt ream)
else if Ext = '.JPG' then begin
JPEGImage := TJPEGImage.Create;
try
JPEGImage.LoadFromStream(BlobStream);
frmMain.Image.Picture.Assign(JPEGImage);
finally
JPEGImage.Free;
end;
end;
finally
BlobStream.Free;
end;
end
else
frmMain.Image.Picture := nil;
end;
یوسف زالی
جمعه 31 تیر 1390, 00:18 صبح
فکر کنم اگر اینجا رو مطالعه کنید ایده بگیرید:
http://barnamenevis.org/showthread.php?52234-نکات-برنامه-نویسی-در-دلفی/page31
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.