دلفي تعليم
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

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

2 مشترك

اذهب الى الأسفل

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

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


medreg
مبرمج ممتاز جدا
مبرمج ممتاز جدا

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

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

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

مُساهمة  ali 4/5/2017, 1:08 pm

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

ali
مبرمج مجتهد

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

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

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

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

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

medreg
مبرمج ممتاز جدا
مبرمج ممتاز جدا

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

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

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

مُساهمة  ali 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;

ali
مبرمج مجتهد

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

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

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

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

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

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

medreg
مبرمج ممتاز جدا
مبرمج ممتاز جدا

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

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

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

مُساهمة  ali 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;




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

.

ali
مبرمج مجتهد

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

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

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

مُساهمة  ali 10/5/2017, 11:37 am

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

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

وهو سؤال غريب

ملاحظة

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

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




ali
مبرمج مجتهد

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

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

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

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

يجب ان يكون على هذا الشكل
اين الخطأ في هذا الكود 607170931


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

medreg
مبرمج ممتاز جدا
مبرمج ممتاز جدا

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

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

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

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

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

medreg
مبرمج ممتاز جدا
مبرمج ممتاز جدا

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

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

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

مُساهمة  ali 10/5/2017, 7:03 pm


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

ali
مبرمج مجتهد

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

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

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

مُساهمة  ali 11/5/2017, 12:30 am

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

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

وتغير كذلك  Active

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

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

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


الكود:

b

if Image >= 5 then
  Yes
else
  No;

d.

ali
مبرمج مجتهد

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

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

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

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

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

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

medreg
مبرمج ممتاز جدا
مبرمج ممتاز جدا

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

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

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

مُساهمة  علي 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;

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

علي
زائر


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

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

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

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

medreg
مبرمج ممتاز جدا
مبرمج ممتاز جدا

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

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

الرجوع الى أعلى الصفحة

- مواضيع مماثلة

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