سلام
من عکسام تو بانک قرار داره. برای لود کسام از دستور image استفاده می کنم. اما خطا می ده . اینم دستورم
frmMain.Image.Picture:=DM.Q1['CategoryPic'];
سلام
من عکسام تو بانک قرار داره. برای لود کسام از دستور image استفاده می کنم. اما خطا می ده . اینم دستورم
frmMain.Image.Picture:=DM.Q1['CategoryPic'];
از چه بانکی استفاده کرده اید؟
از چه تکنولوژی ای استفاده کرده اید؟
از access . دستوری که بالا نوشتم فراموش کنین. یه دستور دیگه پیدا کردم اما با jpg مشکل داره
اگه خطای پست اولی را بگذاری ، بهتر میشه کمک کرد ولی احتمالا یا آدرس مسیر به صورت کامل نیست و یا نوع PChar
کد بالا رو فراموش کنید. بگید مشکل این کد چیه که خطای 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 جان در این باره بحث شده:
https://barnamenevis.org/showthread.p...-بانک-sql
در خصوص اکسس هم احتمالا همین جواب بده.
اگر نداد بگید درست کنم.
توابع تبدیل تاریخ با دقت 5000 سال
پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840
دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/
نرم افزار پخش مویرگی
کد شما رو یکسری تغییرات دادم اما بازم خط میده
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;
مشکل من تو خوندن عکس از بانک حل شد. اما هنوز یه مشکل دیگه باقی مونده. من می خوام لیستی از عکسامو ازتوی بانک نشون بدم. بخاطر همین از کنترل bdgridctrl استفاده می کنم. اما مشکلی که هست اینکه مثلا اگه چهار عکس قرار باشه لیست بشه چهار بار یه عکس رو تکرار می کنه. شما چی پیشنهاد می کنید. فقط خوهش می کنم اگه ایده ای دارید سریع بگین. چون من باید برنامه رو شنبه تحویل بدم.
راستس اینم کدم
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;
فکر کنم اگر اینجا رو مطالعه کنید ایده بگیرید:
https://barnamenevis.org/showthread.p...لفی/page31
توابع تبدیل تاریخ با دقت 5000 سال
پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840
دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/
نرم افزار پخش مویرگی