السلام عليكم ورحمة الله تعالى وبركته
عندى كود سورس محرر 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;
وجدت انه لم يضهر لي وقمت بتعديله و ضهرات نتيجة بركة الله فيك