نمایش نتایج 1 تا 6 از 6

نام تاپیک: باگ دلفی یا اشکال کد؟

  1. #1

    Question باگ دلفی یا اشکال کد؟

    سلام
    چند ساعته دارم با این کد ور می رم دیگه دیوانه شدم تقاضای عاجزانه دارم کمک کنید!
    کد کلاس:
    type
    MyClass=class
    cur:integer;
    arr:array of char;
    procedure add(c:char);
    constructor Create; overload;
    end;

    constructor MyClass.Create();
    begin
    self.cur:=0;
    SetLength(self.arr,self.cur+1);
    end;

    procedure MyClass.add(c: Char);
    begin
    self.arr[self.cur]:=c;
    self.cur:=self.cur+1;
    SetLength(self.arr,self.cur);
    end;
    کد تست :



    procedure TForm1.test_btnClick(Sender: TObject);
    var
    obj:MyClass;
    begin
    obj.add('a');
    end;
    یه کلید به اسم test دارم که تا روش کلیک می کنی برنامه خطا می ده واین هم تصویر خطا:

    عکس های ضمیمه عکس های ضمیمه
    • نوع فایل: jpg err.jpg‏ (52.3 کیلوبایت, 17 دیدار)
    آخرین ویرایش به وسیله صابر طهماسبی : سه شنبه 07 اردیبهشت 1389 در 21:39 عصر دلیل: اشتباه تایپی

  2. #2

    نقل قول: باگ دلفی یا اشکال کد؟

    کدتون اشکال داره ، من کدتون رو نخوندم فقط بخش تست کلاس رو نگاه کردم ، معلومه که با کلاس ها در دلفی آشنایی ندارید ، برای استفاده از یک کلاس باید قبل از استفاده یک نمونه از اون کلاس رو بسازید ، کد اصلاح شده برای تست :

    var
    obj:MyClass;
    begin
    obj:= MyClass.Create;
    obj.add('a');
    end;

  3. #3

    نقل قول: باگ دلفی یا اشکال کد؟


  4. #4

    نقل قول: باگ دلفی یا اشکال کد؟

    بسیار سپاسگزارم
    من یه پروژه دارم برای 28 اردیبهشت تازه کار با دلفی رو شروع کردم از بس عجله دارم چند باره موارد مشابه این برام پیش میاد!
    آخرین ویرایش به وسیله صابر طهماسبی : چهارشنبه 08 اردیبهشت 1389 در 07:34 صبح

  5. #5
    کاربر دائمی آواتار Delphi Coder
    تاریخ عضویت
    آذر 1386
    محل زندگی
    c:\windows\system32
    پست
    579

    نقل قول: باگ دلفی یا اشکال کد؟

    var
    obj:MyClass;
    begin
    obj:= MyClass.Create;
    obj.add('a');
    end;
    البته خود همین کد هم یه ایراد کوچیک داره چون obj داخل تابع یا پروسیجر local هست اگر قبل از خروج free نشه باعث memoryleak میشه.

  6. #6

    نقل قول: باگ دلفی یا اشکال کد؟

    نقل قول نوشته شده توسط Delphi Coder مشاهده تاپیک
    var
    obj:MyClass;
    begin
    obj:= MyClass.Create;
    obj.add('a');
    end;
    البته خود همین کد هم یه ایراد کوچیک داره چون obj داخل تابع یا پروسیجر local هست اگر قبل از خروج free نشه باعث memoryleak میشه.
    بله درسته من فقط ایراد کد رو گفتم.
    برای آزاد کردن حتما باید از بلوک Try ... Finally استفاده بشه تا آزاد شدن حافظه اختصاص یافته به شئ تضمین بشه .
    آخرین ویرایش به وسیله Felony : جمعه 10 اردیبهشت 1389 در 00:19 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •