PDA

View Full Version : مشکل با Pointer ها و ساختار درختی آیتم ها



Delphi-Man
جمعه 12 آذر 1389, 22:42 عصر
سلام دوستان عزیز
من دارم یه کامپوننت لیست باکس میسازم که توش ساختار درختی هست یعنی ایتم ها باز میشن.
اطلاعات آیتم ها توی یه آرایه از رکورد ها ذخیره میشه که توی هر رکورد دو تا اشاره گر Parent و Item داره که Item ارایه ای از اشاره گرهاست.
برنامه خوب جواب میده واسه تستش هم یه دکمه گذاشتم رو خود فرم که با هر بار کلیک 5 تا آیتم که دو تاشون Sub دارن. به هر حال اگه ما هر چند تا که اضافه کنیم درست جواب میده. ولی وقتی همون دکمه رو Focus میکنم و دستم رو میذارم رو کلید Enter و تا حدود 500، 600 تا آبجکت ایجاد میشه؛ دو تا آیتم های اصلی (که زیرشاخه دارند) که توی محدوده ی قابل رویت در عرض کنونی کامپوننت هستند و در نتیجه در هر بار اضافه کردن Paint میشن وقتی بازشون میکنیم و روی یکی از Sub ها کلیک میکنیم ارور Access Violation میده.
به نظرتون مشکل از کجاست؟

vcldeveloper
شنبه 13 آذر 1389, 02:06 صبح
ما نمیدونیم شما چه کدی برای اون دکمه نوشتید.
ما نمیدونیم که شما اضافه کردن آیتم به لیست باکس را چطور پیاده سازی کردید.
مانمدونیم که شما چه کدی برای رسم نوشتید.
ما نمیدونیم که شما چه کدی برای انتخاب هر آیتم توسط کاربر، یا باز کردن فرزندان آن شاخه نوشتید.

با وجود این مطالبی که توضیح ندادید، و صرفا گفتید که یک ساختار رکورد حاوی دو عضو که یکی از آنها یک آرایه هست، دارید؛ انتظار دارید که چطور حدس بزنیم چرا AV می گیرید؟!

با این اطلاعات، بهترین کاری که شما می تونید بکنید این هست که برید در تنظیمات پروژه، صفحه مربوط به کامپایلر، و گزینه use debug .ducs را فعال کنید، سپس برنامه را اجرا کنید، تا زمانی که AV رخ بده. بعد از رخ دادن AV، اجرا را Break کنید، ببینید در کدوم خط از کد متوقف میشه. اگر خطی که درش متوقف شده، گویای مشکل نیست، رجوع کنید به پنجره Call Stack، ببینید چه تابع یا متدی کد فعلی را فراخوانی کرده. شاید از طریق بتونید ریشه مشکل را پیدا کنید.