PDA

View Full Version : نشناختن jpeg در قسمت var



parniant
شنبه 16 آذر 1387, 11:12 صبح
با سلام تو برنامم از دستوراتی برای بازیابی عکس استفاده می کنم و در قسمت varاز jpeg استفاده می کنم اما jpeg رو نمی شناسه و می گه jpeg تعریف نشده است بنابراین jpeg رو برمی دارم و تو اجرا می رم اما بعد از اینکه عمل بازیابی عکس رو توسط دستورات زیر انجام می دم پیغام خطا می ده چطور مشکل رو حل کنم delphi6 استفاده می کنم
دستورات برنامم هم اینه


var
pic:TJPEGImage;
stream:TStream;
begin
//sodor_kart.Image1.Stretch:=true;
with ADOQuery2 do
begin
sql.Text:='select * from tteacher where ido= :p1';
Parameters.ParamByName('p1').Value:=sodor_kart.Com boBox5.Text;
Open;
end;
// begin
// sql.Text:='select * from personel where f_name = :p1 and l_name = :p2';
// Parameters.ParamByName('p1').Value:=edit1.Text;
// Parameters.ParamByName('p2').Value:=edit2.Text;
// Open;
// end;
pic:=TJPEGImage.Create;
stream:=ADOQuery2.CreateBlobStream(ADOQuery2.Field ByName('pic'),bmRead);
if stream.Size<>0 then
begin
if copy(ADOQuery2.FieldByName('pic').AsString,1,1)='B ' then
QRDBImage1.Picture.Bitmap.LoadFromStream(stream)
else
begin
pic.LoadFromStream(stream);
QRDBImage1.Picture.Assign(pic);
end;
end
else
QRDBImage1.Picture.Graphic:=nil;
stream.Free;
pic.Free;
ADOQuery3.Close;
ADOQuery3.Open;
adoQuery3.SQL.Clear;
ADOQuery3.Close;
adoquery3.SQL.Add('select post from tteacher');
ADOQuery3.SQL.Add('WHERE (familly LIKE''' + sodor_kart.combobox3.TEXT+'%'')and(name LIKE''' + sodor_kart.ComboBox2.TEXT+'%'')and(ido LIKE''' + sodor_kart.ComboBox5.TEXT+'%'')');
adoQuery3.Open;
adoQuery3.First;
while not adoQuery3.Eof do
begin
QRDBText5.Caption:=(ADOQuery3.FieldValues['post']);
adoQuery3.Next;
end;
report_one.QuickRep1.Preview;
end;

پیغام خطاش اینه


project project1.exe raised exception class EInvalid Graphic with message "Bitmap is not valid".process stopped.use step or Run to countinue

Felony
شنبه 16 آذر 1387, 19:40 عصر
شما باید فایل Bitmap پتون رو به Jpeg تبدیل کنین و باهاش کار کنید برای حل مشکل نشناخته شدن Jpeg هم در uses برنامه jpeg رو اضافه کنید .

parniant
شنبه 16 آذر 1387, 21:25 عصر
ببخشید چطور می تونم این عمل تبدیل رو انجام بدم
ضمنا پس چرا اگه عکس نوعش bmp باشه رو بازیابی می کنه اما اگه نوعش jpg باشه پیغام بالا رو می ده

mrm0101
شنبه 16 آذر 1387, 22:11 عصر
uses jpeg

ابتدای یونینت اضافه کن

Felony
یک شنبه 17 آذر 1387, 17:43 عصر
ببخشید چطور می تونم این عمل تبدیل رو انجام بدم

تو سایت نمونه کد زیاد هست ، جست و جو کنید به نتیجه میرسید .


ضمنا پس چرا اگه عکس نوعش bmp باشه رو بازیابی می کنه اما اگه نوعش jpg باشه پیغام بالا رو می ده

ای بابا دوست عزیز ما 2 ساعت پس چی میگیم ؟ میگیم Jpg فرمت فشرده شده هست و دلفی مستقیما نمیتونه روش عملی انجام بده ، برای همین اگر متن اون پیغام خطا رو بخونید میبینید که میگه :

فایل انتخابی یک Bitmap تایید شده نیست .

parniant
دوشنبه 18 آذر 1387, 16:01 عصر
uses jpeg

ابتدای یونینت اضافه کن
دقیقا همین رو می نویسم اما رو jpeg پیغام خطا می ده

Pr0grammer
دوشنبه 18 آذر 1387, 16:29 عصر
دقیقا همین رو می نویسم اما رو jpeg پیغام خطا می ده

uses jpeg نیست! uses رو بردارید؛ فقط jpeg رو بنویسید.

shervin farzin
دوشنبه 18 آذر 1387, 23:31 عصر
سلام
حالا كه همه اين راهها رو امتحان كردي و نتيجه نداد اين يكي رو هم امتحان كن .
يه فرم خالي باز كن و فقط يه كامپوننت Image روي فرم بذار ، بعد نگاه كن ببين كه دلفي چه
كلاسهايي رو در بخش Uses نوشته . حالا از طريق رابط خود دلفي ( احتمالا خصوصيتي به نام
Picture كه مربوط به خود كامپوننت Image ميشه ) يه عكس با پسوند Jpg رو داخل كامپوننت
Load كن . دوباره برو به بخش Uses همون فرم نگاه ببين با Load كردن اين عكس Jpg چه كلاسي
جديدا به ليست كلاسهاي Uses اضافه شده .
به احتمال زياد نوع داده TJpegImage دورن همين كلاس جديد بايد باشه .
موفق باشيد .