دلفي تعليم
مرحبا بكم ايها الزئر أو الزائرة الكريمين

اين الخطأ في هذا الكود

إرسال موضوع جديد   إرسال مساهمة في موضوع

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

اين الخطأ في هذا الكود

مُساهمة  medreg في 3/5/2017, 11:39 pm


medreg
مبرمج

عدد المساهمات : 68
تاريخ التسجيل : 29/01/2015

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: اين الخطأ في هذا الكود

مُساهمة  alla في 4/5/2017, 1:08 pm

من أنا حتي اجيب على سؤال وضعته
في منتدى أنا مزلت أتتلمذ عندهم

_________________

alla
مبرمج مجتهد

عدد المساهمات : 745
تاريخ التسجيل : 29/07/2013

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: اين الخطأ في هذا الكود

مُساهمة  medreg في 4/5/2017, 3:54 pm

هل هذا هو الجواب
يقول المثل العربي تجد في النهر ما لا تجده في البحر
لاغنى عن اي احد وحتى من وضع البرمجة في الاصل ممكن يصيب وممكن يخطأ
لهذا اعتبرك استاذي
مع العلم ان بعض المداخلات قد طرحت اشكالها في ذاك المنتدى ولم اجد مبتغاي الا بعد ما وضعتها في هذا المنتدى وكان الحل من عندك
وعندما اقول هذا.
لانا لا اقلل من خبرة الكفاءات الموجودة بمنتديات الدلفي للعرب حاشا انا ايضا تعلمت منه واستفدت منه الكثير

medreg
مبرمج

عدد المساهمات : 68
تاريخ التسجيل : 29/01/2015

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: اين الخطأ في هذا الكود

مُساهمة  alla في 7/5/2017, 11:14 am



يتم أخذ القرار حسب القيم الموجوده في المتغيرات الثلاث
xCda,xCdb,xCdd
مع سابقهم من القيم الموجودة في الحقول والتي أسندت اليهة فيما سبق

بمعنى أننا نقارن القيمة الاولى مع الثانية في نفس الحقل وهكذا مع القيم الباقية

وهذا حسب الكود الذي وضعته


===================================================

procedure TFrmCalc.Button1Click(Sender: TObject);
Var
xCda,xCdb,xCdd:string;
Blq:Boolean;
tot:Double;

begin
with DM do
begin
Table1.first;
xCda:=Table1Cda.asstring;
xCdb:=Table1Cdb.Asstring;
xCdd:=Table1Cdd.Asstring;
http://Table1.next; // ليس له أهية

http://Table1.First; // ليس له أهية
while not (Table1.eof) do
begin
// If Table1.Active=False then // غير ممكن
// begin
{

هذا الشرط لن يتحقق
واذا تحقق سيحدث خطأ من البداية
أعتقد أن هذا خطأ برمجي وغير جائز بتاتا
هذا حسب علمي

وظهور هذه الرسالة
Table1 : Imossible d' effectuer cette opération sur un ensembe de données fermé.
من المستحل اسناد هذه العملية الأن المعطيات في حالة اغلاق

وهذا اذا كان تابل غير نشط أي مغلق
واذا كان غير مقلغ لن يحدث شيء

}
If(Table1Cda.asstring=xCda)and(Table1Cdb.Asstring=xCdb)and
(Table1Cdd.Asstring=xCdd)then
begin
// اذا تساو ى القيم الثلاث مع سابقهم من القيم وهم
http://Table1Cda.Asstring=xCda و Table1Cdb.Asstring=xCdb و Table1Cdd.Asstring=xCdd
// قم بعملية الجمع
tot:=Table1MT.value+tot;
end
else If((Table1Cda.asstring=xCda)and(Table1Cdb.Asstring=xCdb))or
(Table1Cdd.Asstring<>xCdd)then
begin
// اذا تساوت القيمتان مع سابقهما وهما
// Table1Cda.Asstring=xCda و Table1Cdb.Asstring=xCdb
// اسند القيمة الحالية للحقل ام تي الى المتغير توت
tot:=Table1MT.value;
Table1.Next;
end
else
begin
// Table1.Prior; // ليس له أهية
Table1.edit;
Table1MTot.VALUE:=tot;
tot:=Table1MT.value;
Table1.Next;
end;
//end;
xCda:=Table1Cda.asstring;
xCdb:=Table1Cdb.Asstring;
xCdd:=Table1Cdd.Asstring;
Table1.Next;
end;
end;
end;

_________________

alla
مبرمج مجتهد

عدد المساهمات : 745
تاريخ التسجيل : 29/07/2013

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: اين الخطأ في هذا الكود

مُساهمة  medreg في 8/5/2017, 10:01 pm

اعتذر عن الخطأ ما كنت اقصد بـ
// If Table1.Active=False then // غير ممكن
// begin

بل كنت اقصد بإذا كان الحقل المسمى active يساوي False
If Table1Active.value=False then
begin

medreg
مبرمج

عدد المساهمات : 68
تاريخ التسجيل : 29/01/2015

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: اين الخطأ في هذا الكود

مُساهمة  alla في 10/5/2017, 11:04 am




أعتقد لأن مطابقت الصورة مع نتيجة تنفيذ الكود قد تمت فعلا
ودليل هناك صورة مرفقة تثبت ذلك


الكود:

procedure TFrmCalc.Button1Click(Sender: TObject);
Var
    xCda,xCdb,xCdd:string;
    Blq:Boolean;
    tot:Double;

begin
  with DM do
  begin
    Table1.first;
    xCda:=Table1Cda.asstring;
    xCdb:=Table1Cdb.Asstring;
    xCdd:=Table1Cdd.Asstring;
    while not (Table1.eof) do
    begin
      If Table1Active.value=False then
      begin
      If(Table1Cda.asstring=xCda)and(Table1Cdb.Asstring=xCdb) and
        (Table1Cdd.Asstring=xCdd)then
        begin
          tot:=Table1MT.value+tot;
        end
        else
        begin
          Table1.edit;
          Table1MTot.VALUE:=tot;
          Table1.Next;
          tot:=Table1MT.value;
        end;
      xCda:=Table1Cda.asstring;
      xCdb:=Table1Cdb.Asstring;
      xCdd:=Table1Cdd.Asstring;
      end
        else tot:=Table1MT.value;
      Table1.Next;
  end;
 end;
end;






.

_________________

alla
مبرمج مجتهد

عدد المساهمات : 745
تاريخ التسجيل : 29/07/2013

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: اين الخطأ في هذا الكود

مُساهمة  alla في 10/5/2017, 11:37 am

انا منيش فاهم وشنه

ولكن الكود عمل كما في صورة
ذلك بتغير الكود فليلا ووضع القيم في الجدول لتحقيق النتيجة
التي طلبتها أنت وهي أن يحقق الكود البرمجي ما هو ظاهر في الصورة

وهو سؤال غريب

ملاحظة

يجب عليك أي كود برمجي تريد
أن تكتبه أن تفهم مليح

وتحاول ان تفهم الكود خطوة خطوة وماذا تريد ان يعمل




_________________

alla
مبرمج مجتهد

عدد المساهمات : 745
تاريخ التسجيل : 29/07/2013

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: اين الخطأ في هذا الكود

مُساهمة  medreg في 10/5/2017, 3:55 pm

يجب ان يكون على هذا الشكل


عدل سابقا من قبل medreg في 10/5/2017, 3:58 pm عدل 1 مرات

medreg
مبرمج

عدد المساهمات : 68
تاريخ التسجيل : 29/01/2015

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: اين الخطأ في هذا الكود

مُساهمة  medreg في 10/5/2017, 3:58 pm

يجب ان تكون النتيجة في اخر صف للفرقة وليس في اول صف للغرقة الموالية
انظر الى الصورة وستفهم ما اقصده

medreg
مبرمج

عدد المساهمات : 68
تاريخ التسجيل : 29/01/2015

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: اين الخطأ في هذا الكود

مُساهمة  alla في 10/5/2017, 7:03 pm


يجب ان تصع صور أو شرح
مفصل تبين في كل الاحتمالات الممكنة التي يعالجها
برنامجك حتي اتمكن من مساعدتك ان امكن ذلك

_________________

alla
مبرمج مجتهد

عدد المساهمات : 745
تاريخ التسجيل : 29/07/2013

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: اين الخطأ في هذا الكود

مُساهمة  alla في 11/5/2017, 12:30 am

لا أستطيع مساعدتك حتى تضع
5 صور مختلفة أو أكثر حتى تتضح الفكرة و الفكرة هي في رأسك أنت
اذا استطعت أن تجسدها في الواقع سافهمها انا وغيري كذلك

واتغير فيها قيم المتعيرات  
Cda
و
Cdb
و
Cdd

وتغير كذلك  Active

اذا استطعت ان تفهم قصدي ساجيب على سؤالك

أنا لم أستطع أن أفهم فكرتك هذه
مانيش فاهم واش راك الددور

حتى أن فكرة الصورة الاولى تختلف عن فكرة الصورة الثانية


الكود:

b

if Image >= 5 then
  Yes
else
  No;

d.

_________________

alla
مبرمج مجتهد

عدد المساهمات : 745
تاريخ التسجيل : 29/07/2013

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: اين الخطأ في هذا الكود

مُساهمة  medreg في 11/5/2017, 1:02 am

ربما هذه الصورة توضح لك اكثر واذا كان لديك حساب على السكايب يكون افضل للنقاش وللتوضيح اكثر هذا اسم حسابي على السكايب
MEDBBM2014


medreg
مبرمج

عدد المساهمات : 68
تاريخ التسجيل : 29/01/2015

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: اين الخطأ في هذا الكود

مُساهمة  علي في 12/5/2017, 8:21 pm

انظر الى هذا الموضوع




الكود:

i: integer;
procedure TFrmCalc.btnCalcClick(Sender: TObject);
type
  TMto = array of Double;
  Tcd = array of String;
var
  Mtot, MT: TMto;
  cdd, cdb, cda: Tcd;
  j: integer; tot: Double;
  Cont: integer;
begin
 i := 0;
  with DM do
  begin
  Cont := Table1.RecordCount;
  SetLength(Mtot, Cont);
  SetLength(MT, Cont);
  SetLength(cdd, Cont);
  SetLength(cdb, Cont);
  SetLength(cda, Cont);
  Table1.DisableControls;
  try
  Table1.First;
  while not table1.Eof do
  begin
    if not Table1Active.value then
        MT[i] := Table1mt.Value;
    cdd[i] := Table1cdd.AsString;
    cdb[i] := Table1cdb.AsString;
    cda[i] := Table1cda.AsString;
    i := i + 1;
    Table1.Next;
  end;
    finally
      Table1.EnableControls;
    end;
  end;
  tot := Mt[0];
  for j := 1 to Cont-1 do
  begin
  if(cdd[j-1]=cdd[j])and(cdb[j-1]=cdb[j])and(cda[j-1]=cda[j])then
      tot := tot + MT[j]
    else
    begin
      Mtot[j-1] := tot;
      tot := Mt[j];
    end;
  end;
  Mtot[j-1] := tot;
  with DM do
  begin
  Table1.DisableControls;
  try
  Table1.First;
  for j := 0 to Cont-1 do
  begin
    Table1.Edit;
    if Mtot[j] = 0 then Table1Mtot.Text := ''
    else Table1Mtot.Value := Mtot[j];
    Table1.Next;
  end;
    finally
      Table1.EnableControls;
    end;
  end;
end;

هل حل المشكل وشكرا
.

علي
زائر


الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: اين الخطأ في هذا الكود

مُساهمة  medreg في 13/5/2017, 4:17 am

بارك الله فيك اخي وفيكم جميعا
وجمعة مباركة بحول الله وقوته

medreg
مبرمج

عدد المساهمات : 68
تاريخ التسجيل : 29/01/2015

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
تستطيع الرد على المواضيع في هذا المنتدى