delphi4arab منتديات دلفي للعرب

نسخة كاملة : تعديل جدول dbgrid 1
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله تعالى وبركته 

عندى كود سورس محرر  hex  

بوضع  

8bit

اريد تعديل الجدول   dbgrid  ليضهر  القيم  ب بوضع  16bit  swap  

كما في الصورة  المرفقه  

وشكرا لكم
يمكنك قلب كل  خانتين متجاورتين  وبذلك تحصل على قيم 16 bit  ,,,

 قم باضافة مكون CheckBox الى التطبيق و غير اسمه الى  Cint16Bit وبعد ذلك اضف التعديل الى الدالة  GetCellText 
كود :
  if (Pz >= 0) and(Pz < MStream.Size) then   begin     if Cint16Bit.Checked then         if Odd(pz) then           dec(Pz)         else if (Pz+1 < MStream.Size) then           Inc(Pz);     B:=MStream.Bytes[Pz];

و في الدالة DrawGrid1SetEditText   قم بنفس  الكود

كود :
  if (Pz >= 0) and(Pz < MStream.Size) then   begin     if TryStrToInt('$'+Value,B) then // convertir du hex vers bin     if Cint16Bit.Checked then         if Odd(pz) then           dec(Pz)         else if (Pz+1 < MStream.Size) then           Inc(Pz);     MStream.Bytes[Pz] := byte(B);// enregistrement

بالتوفيق
تمام الف شكرا لك اخى الكريم
نسيت ان اقول انه يجب اعادة رسم  DrawGrid من جديد بالكامل ليظهر التغيير,,,لهذا اظف كود التحديث في OnClick  ل CheckBox

كود :
procedure TForm1.Cint16BitClick(Sender: TObject); begin   DrawGrid1.Invalidate; // redraw end;
وجدت انه لم يضهر لي وقمت بتعديله و ضهرات نتيجة بركة الله فيك