پلاگین ساخت شی درخت - Tree Object

فهمیدم اون مشکلی که من بهش میگم عدم پویایی از کجا آب می خوره

مشکل اینجاست که مرتب سازی فقط بر روی یک فیلد قرار می گیره یعنی شناسه دوم

به نظر من یه پارامتر کم داریم - پارامتر سوم رو آقا حامد میگه شناسه والد است ولی من میگم شناسه سطح جلورفتگی است. (به مثال آقا محسن توجه کنید متوجه میشید)
ما باید پارامتر والد هم داشته باشیم

بعد درخت رو کل شاخه هاش رو که گرفتیم اینجوری مرتب کنیم که :
اول بر اساس شناسه سطح - اونایی که 0 هست و زیر شاخه نیست و به صورت آرایه در نظر بگیریم
عنصر اول آرایه بالا یعنی اولین سرشاخه باید شناسه خودش رو بگیریم که احتمالا 1 است
بعد تمام اونایی که فرزند شاخه 1 رو براساس شماره سطح یعنی 1 که یه دونه جلو رفتگی است را در آرایه بر اساس شناسه مرتب می کنیم
با تقریبا یه همچین کارهایی درخت رو دوباره خودمون مرتب کردیم و بعد از پلاگین استفاده می کنیم

مزیت اگه 100 تا شاخه داشته باشیم و شاخه 101 باید در وسط درخت مثلا 50 اینا زیر سرخاشه سوم قرار بگیره
تو مرتب سازی و آرایه بندی میره سرجای خودش.

آقا حامد امکان داره یه پارامتر به درخت اضافه کنی؟
بعد من این مثال رو حل می کنم
البته به وسیله یک متغیر کمکی میشه این کار رو کرد

برنامه من رو هم که هنوز ندید:wink:
 
روشی که تو برنامه قبلی استفاده کرده بودم رو تا حدی تغییر دادم
به این نتیجه رسیدم که خود برنامه نویس تو موقع مقداردهی شاخه ها دقت کنه و اگه خواست بعدا به وسط درخت شاخه ای رو اضافه کنه خودش شماره شاخه ها رو دستی شیفت بده
چون اگه بخواد توسط سیستم شیفت بدیم درگیر مرتب سازی میشیم و وقت رو تلف میکنه و یکم رو سرعت تاثیر میرازه
روش قبلی هم جواب می ده ولی درکش فکر کنم یکم سخت بود که اساتید هم جواب رو ندادن برا همین روش رو ساده و کاربرپسندتر کردم
آقا حامد این خوبه دیگه؟
آخرین نظر من درباره parent و level -خط کامنت ها را تغییر بدیم معلوم میشه
روش جدیدم رو اینجا می زارم
get-5-2009-upload2world_com_hsrec.gif

:rose::sad:
 

پیوست ها

  • TreeView2.rar
    30.4 کیلوبایت · بازدیدها: 102

splinter cell

Well-Known Member
بنظرم بهتره موقعی که داریم به شناسه ها شماره میدیم بهتره بجای اینکه یک واحد یک واحد بریم بالا 10 تایی یا 20 تایی اضافه کنیم که چنانچه بعداً احتیاج بود اون وسطها مقداری اضافه بشه با کمبود شمارنده مواجه نشیم.و احتیاج نباشه دوباره همه رو عوض کنیم.
 
من یه روشی تو مثال اولم گفتم که انتهای هر سرشاخه درج رو جواب می ده

اون وقت اگه 100 تا آیتم داشته باشیم - با این روش تا شناسه 1000 داریم که 900 خالی داره بعد می خواهیم مثلا با روش حلقه نمایش بدیم حلقه 1000 بار باید تکرار بشه و تک چک کنه مثلا فیلد 17 یا 23 و ... مقدار دارن یا نه؟
حلقه for مثل basic گام یا step نداره که 10 تا 10 تا بپره؟

من نظر بچه ها رو درباره 2 برنامه قبلی نمی بینم؟

گفتم که با مرتب سازی رو چند آیتم میشه کاملا پویا بشه.

آقا حامد امکان داره سورس این dl رو برا من میل کنی ؟تا ساختارش رو بررسی کنم
yahooID من همینه
 
این بحث تموم شد؟
به نظر من نمای درختی خیلی پر کاربرده ها
گفتم شاید می شد یکم بهترش کرد در حالی که در حال حاضر همینطوره عالیه

بررسی آقا حامد هم علی الظاهر همین بوده که دیگه جواب ندادن
:sad:

نظری هم راجع به شیوه کار من ندادید. ولی بهتر از اون هم می تونم بنویسمش مثلا این تو حلقه باید یکی بشه eventhandeler بهتر و راحت نوشته میشه و ...
 

K@M@L

Well-Known Member
سلام

من در هنگام استفاده از پلاگن به یک مشکل بر خوردم ، البته نمی تونم بگم مشکل بلکه بیشتر شبیه به یک کمبود هست...

من در هنگام کار با برنامه قصد دارم که یک شاخه رو select کنم مثلا شاخه ی 1|3|1 ، ولی این کار مقدور نیست. تقریبا مثل کد زیر ...
کد:
ListBoxSelectItem("ListBo","5")

آقا حامد ، آیا امکان داره چنین ویژگی رو به پلاگین اضافه کنید ؟
 

silvercover

کاربر متخصص
آقا حامد ، آیا امکان داره چنین ویژگی رو به پلاگین اضافه کنید ؟

در حال حاضر این ویژگی رو در پلاگین تعبیه نکردم. در کنار این Nevercom هم چند پیشنهاد و مشکل رو مطرح کردن که به همراه سایر موارد مد نظر خودم نسخه جدید این پلاگین رو شکل خواهند داد. زمان عرضه نسخه جدید رو نمی تونم از الان اعلام کنم.
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
پلاگین ساخت شی درخت - Tree Object نسخه ی 1.1

سلام​
این پست رو من از جانب حامد (Silvercover) مینویسم، ایشون چون خودشون مشغله ی کاری داشتن من بجاشون مینویسم.
در راستای پویایی بیشتر پلاگین شئ درختی و درک راحت تر روش ساختن درخت یکسری تغییراتی در پارامترهای پلاگین بوجود اومده.​
برای اضافه کردن هر آیتم به درخت 5 پارامتر موجود هست:​

  1. پارامتر اول مشخص کننده شناسه و شماره ی درختی هست که قراره آیتم بهش اضافه بشه
  2. پارامتر دوم شناسه ای هست که ما به هر آیتم اختصاص میدیم
  3. پارامتر سوم مشخص کننده ی میزان تورفتگی هست
  4. پارامتر چهارم متن و نام خود آیتم هست
  5. و پارامتر پنجم هم آیکنی هست که برای آیتم مشخص میکنیم و در صورت عدم وجود بجاش از صفر (0) استفاده میکنیم
تغییراتی که صورت گرفته در پارامتر سوم هست، قبلاً این پارامتر، شناسه آیتم والد بود، یعنی شناسه آیتمی که قرار هست این آیتم جدید زیر مجموعه ی اون آیتم باشه، ولی در روش جدید این پارامتر نشان دهنده ی میزان تورفتگی هست، یعنی اگر آیتمی، آیتم اصلی باشه و تورفتگی نداشته باشه، شناسه اون صفر خواهد بود​
اگر قرار هست آیتم جدید زیر مجموعه ی آیتم قبلی باشه، باید میزان تورفتگی یکی بیشتر از میزان تورفتگی قبلی باشه​

Structure.png


البته اگر بخواهیم آیتم ها را در یک حلقه به درخت اضافه کنیم موضوع کمی متفاوت خواهد بود​
به دلیل شرایط خاص اضافه کردن آیتم به درخت توسط حلقه، پارامتر دوم نیز دستخوش تغییراتی خواهد شد​
در این شرایط، بجای قرار دادن یک شناسه برای آیتم در کد، از عدد ثابت 1- استفاده میکنیم، این پارامتر به پلاگین میگوید که هر آیتم را به آخر لیست اضافه کند و نه به اول آن که این امر اهمیت بسزایی در اضافه کردن آیتم ها به درخت توسط حلقه دارد.

پس در صورتی که کد ما بصورت حلقه باشد (برای کدنویسی کمتر) علاوه بر تغییراتی که در مورد پارامتر سوم ذکر شد، پارامتر دوم را نیز به این شکل (1-) تغییر میدهیم.​
علاوه بر این تغییرات، یک دستور جدید نیز به پلاگین اضافه شده که این امکان را به ما میدهد که نام عنصر والد هر آیتم را نیز تشخیص دهیم (علاوه بر شناسه و نام خود آیتم).

برای توضیحات بیشتر به مثالی که در بسته ی پلاگین موجود هست توجه کنید.

نسخه ی جدید پلاگین رو میتونید از پست اول یا لینک زیر دریافت کتید:
دانلود نسخه ی 1.1

 

hrs192

Member
سلام
من خیلی دوست دارم ازین پلاگین استفاده کنم .. ولی با دیدن مثال ها تفهیم نشدم !!! (بسوزه پدر بی سوادی)
مثلا میخواستم همچین چیزی با حالت درختی درست کنم
نویسنده>کتاب>جلد کتاب>موضوعات(لینک به صفحه html)
اگر میشد یه حالت ویزارد داشته باشه خیلی خوب بود...:)
یا حداقل یکی از اساتید آموزش قدم به قدم بزارن
 

MahmoodM30

مدیر <A href="http://forum.majidonline.com/forums/
بهتره به نمونه کنار پلاگین نگاه کنید و بیشتر با هاش ور برید واقعا کار باهاش راحته به این سختی که فکر مکنید نیست

برای اینجور پلاگین ها دیگه نیازی واسه اموزش نیست که
 
سلام دوستان من، بنده هم حسین هستم طراح گرافیک . و عاشق mmb ، من هم همه صفحات رو مطالعه کردم اما واقعا نفهمیدم بعد از رسم این پلاگین در صفحه پروژه چطور بایستی منو و زیر منو ساخت!!!
ممنون میشم یکی از دوستان اینجا قدم به قدم توضیح بدن ...
اصلا نحوه استفاده از پلاگین به چه شکل هستش ؟
راستی دوستان عزیز هرکسی که در زمینه طراحی گرافیک کمکی نیاز داشت ( طراحی قالب ، بنر ، لوگو ، تصاویر متحرک و ..... ) بنده در خدمت هستم.
 

hrs192

Member
بهتره به نمونه کنار پلاگین نگاه کنید و بیشتر با هاش ور برید واقعا کار باهاش راحته به این سختی که فکر مکنید نیست

برای اینجور پلاگین ها دیگه نیازی واسه اموزش نیست که


چرا حاجی اینقدر برا من سخت امد که mmb را ولش کردم تقریبا.
دارم رو پروژم تو C# فکر میکنم..
 
یعنی کسی نیست که با این پلاگین کار کرده باشه و زحمت آموزشش رو بکشه ؟
اصلا وقتی تو بیلدر یک پلاگین رو با ابزار مخصوصش میکشی بعد باید چیکار کرد ؟؟؟
 

MahmoodM30

مدیر <A href="http://forum.majidonline.com/forums/
چرا حاجی اینقدر برا من سخت امد که mmb را ولش کردم تقریبا.
دارم رو پروژم تو C# فکر میکنم..

برا من که سخت نبوده و نیست فکر کنم چون به یه مشکلش بر خوردید و نتونستید حل کنید فکر کردید باید بیخیالش بشید و برید سی شارپ کار کنید
 

MahmoodM30

مدیر <A href="http://forum.majidonline.com/forums/
یعنی کسی نیست که با این پلاگین کار کرده باشه و زحمت آموزشش رو بکشه ؟
اصلا وقتی تو بیلدر یک پلاگین رو با ابزار مخصوصش میکشی بعد باید چیکار کرد ؟؟؟

من از این پلاگین استفاده کردم ولی دیگه واسش آموزش نمیخواد که کافیه به نمونه کنارش دقت کنید دیگه

مشکل شما این هست که تازه کارید و اصلا آشنایی با بیلدر ندارید بهتره کتاب جامع بیلدر رو مطالعه کنید تا به اینجور مشکلات کوچیک مواجه نشید
 

محمدمهدی

Well-Known Member
:shock: خواهشا یه نگاهی به مثال های خود ام ام بی بندازید. (به نظرم اینجا هم جای مناسبی برای سوال و پاسخ نیست)

پلاگین یه شی یا قابلیت برای توسعه ی ام ام بی در زمینه هایی هست که به صورت پیش فرض این قابلیت رو نداره.
حالا شما یا به صورت یه آبجکت ازش استفاده می کنی. یا اینکه یه دستوری بهش میدی و یه پاسخی بهت میده. و یا هر دو.
پلاگین Tree هم همینطوره. یعنی شما با دادن دستور ها ازش می خواهی که در آبجکت خودش اون محتوایی که شما می خواهی رو نمایش بده.
مثلا دستور میدی که لطفا یه گزینه ی درختی بساز و سه تا زیر مجموعه برای اون گزینه بساز. و بعد درخواست می کنی که اگر روی هر گزینه ای کلیک شد، یک دستور رو اجرا کن و...
شما قبل از اینها باید ساختار برنامه نویسی و زبان کامپیتور رو بشناسی و بفهمی.
مثال های خود ام ام بی رو ببین. راهنمای ام ام بی رو بخون. کتاب مرجع فارسی ام ام بی رو بخون. توی همین انجمن جستجو کن. انشاءا... به مرور زمان یاد میگیری.

فقط لطفا توی موضوع های نا مرتبط (مثل این مبحث) سوال نپرس و قبل از سوال پرسیدن هم یه جستجو بکن.:wink: (البته صرفا نظرم رو گفتم)
موفق باشی.
 
من از این پلاگین استفاده کردم ولی دیگه واسش آموزش نمیخواد که کافیه به نمونه کنارش دقت کنید دیگه

مشکل شما این هست که تازه کارید و اصلا آشنایی با بیلدر ندارید بهتره کتاب جامع بیلدر رو مطالعه کنید تا به اینجور مشکلات کوچیک مواجه نشید

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

جدیدترین ارسال ها

بالا