PDA

View Full Version : سوال: ویرایش عکس در دلفی 2010 ( بانک SQL 2000 )



lolojoon
چهارشنبه 31 فروردین 1390, 09:19 صبح
با سلام
حتما مدیران عزیز بخش دلفی بعد از خواندن سوال من پیغام می زارن که جستجو بیشتر
راستش من در مورد سوالم در سایت جستجو کردم و کدهای فراوانی پیدا کردم ولی یه روش ساده تر می خوام
برای آموزش به گروهی که تازه برنامه نویسی رو شروع کردن

خوب سوال :
یه فیلد از توع image در Sql داریم ، که یه عکس ذخیره شده .
حالا می خوام اون عکس رو بعد از دوبار کلیک کردن روی دیتاگرید در یک عنصر Image نمایش بدم و اگر کاربر خواست بعد از تعویض عکس براحتی بتونه کل سطر مورد نظر رو به همراه عکس مربوطه ویرایش کنه ؟

بهترین و ساده ترین راه حل ؟؟

قسمتی از کدی که نوشتم


var
img :TMemoryStream;
begin
with DataModule4.Tbl_PersonalInfo do
begin
Edit;
Edit1.Text :=FieldValues['P_Code'];
Edit2.Text :=FieldValues['M_Code'];
Edit3.Text :=FieldValues['Name'];
Edit4.Text :=FieldValues['Family'];
Edit5.Text :=FieldValues['Father_Name'];
Edit6.Text :=FieldValues['ID'];
MaskEdit1.Text :=FieldValues['B_Date'];
MaskEdit2.Text :=FieldValues['Date_Emp'];
Edit12.Text :=FieldValues['Address'];
img := TMemoryStream.Create();
try

DataModule4.Tbl_PersonalInfoimg.LoadFromStream(img );
Image1.Picture.Bitmap.LoadFromStream (img);

finally
img.Free ;
end;


این کد وقتی روی Dbgrid دوبار کلیک میکنیم اطلاعات رو روی تمام فیلدهای مربوطه برای ویرایش ارسال میکنه ولی فیلد عکس رو که میخوام در یک Image نمایش بده خالی نشون میده ؟

vcldeveloper
چهارشنبه 31 فروردین 1390, 13:44 عصر
var
Img : TMemoryStream;
begin
Img := TMemoryStream.Create;
try
Tbl_PersonalInfoimg.SaveToStream(Img);
Img.Position := 0;
Image1.Picture.Bitmap.LoadFromStream(Img);
finally
Img.Free;
end;
end;

البته به شرطی که تصویر مربوطه Bitmap باشه، وگرنه، اختصاص یک تصویر با فرمت دیگه به Bitmap باعث ایجاد خطا میشه، و باید با توجه به فرمت تصویر، از یکی از کلاس های مشتق شده از TGraphic استفاده بشه.