تعديل جدول dbgrid 1
#1
السلام عليكم ورحمة الله تعالى وبركته 

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

بوضع  

8bit

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

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

وشكرا لكم


الملفات المرفقة
.png   Capture d’écran 2023-02-07 234522.png (الحجم : 53.65 ك ب / التحميلات : 22)
الرد
#2
يمكنك قلب كل  خانتين متجاورتين  وبذلك تحصل على قيم 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

بالتوفيق
[-] كل من 1 user says قال شكرا ل Ndagor على المشاركة المفيدة
  • Team dz
الرد
#3
تمام الف شكرا لك اخى الكريم
الرد
#4
نسيت ان اقول انه يجب اعادة رسم  DrawGrid من جديد بالكامل ليظهر التغيير,,,لهذا اظف كود التحديث في OnClick  ل CheckBox

كود :
procedure TForm1.Cint16BitClick(Sender: TObject); begin   DrawGrid1.Invalidate; // redraw end;
[-] كل من 1 user says قال شكرا ل Ndagor على المشاركة المفيدة
  • Team dz
الرد
#5
وجدت انه لم يضهر لي وقمت بتعديله و ضهرات نتيجة بركة الله فيك
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم