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

خیلی جالبه - می شه یکم فاصله ها کم بشه ؟

آقا دستت درد نکنه - کولاک کردی
من برای همین گیر کرده بودم - کلی زحمت کشیدم با html و جاوا اسکریپت یه چیزی پیاده کرده بودم ولی هنوز گیر داشت.
من با اجازت می خوام از این تو یه برنامه استفاده کنم و یه قسمتی از اون برنامه هم به عنوان مثال آموزشی قرار می دم تا شاید شما هم راضی باشی.
ولی میشه یه لطفی بکنی اگه می تونی یکم این treeview رو جمو جور تر کنی
فکر کنم حداکثر عرض منطقی برای کادر کلیش 200 پیکسل باشه ولی اگه متن گره هاش 4 5 کلمه ای بشه اسکرول می خوره - اگه عرض ایکون ها را بشه تا 12 پیکسل کنی و اون جا ها که آیکون نداره به جا فاصله 16 پیکسلی 2 3 پیکسل فاصه بخوره خیلی خوب می شه.

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

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

جدا از این حرف لطف می کنی چند دقیقه وقت بزاری این treeview رو یه جوری کنی یکم از فضاش بهتر استفاده بشه.
البته می دونم که الان فاصله هاش منطقی هست - من خودم تو وب استفاده می کنم ولی :-?

فکر نکنم کسی به اندازه من از دیدن این خوشحال شده باشه - تشکر
:rose::lol::D:):oops::rose:
 

silvercover

کاربر متخصص
آقا دستت درد نکنه - کولاک کردی
من برای همین گیر کرده بودم - کلی زحمت کشیدم با html و جاوا اسکریپت یه چیزی پیاده کرده بودم ولی هنوز گیر داشت.
من با اجازت می خوام از این تو یه برنامه استفاده کنم و یه قسمتی از اون برنامه هم به عنوان مثال آموزشی قرار می دم تا شاید شما هم راضی باشی.
ولی میشه یه لطفی بکنی اگه می تونی یکم این treeview رو جمو جور تر کنی
فکر کنم حداکثر عرض منطقی برای کادر کلیش 200 پیکسل باشه ولی اگه متن گره هاش 4 5 کلمه ای بشه اسکرول می خوره - اگه عرض ایکون ها را بشه تا 12 پیکسل کنی و اون جا ها که آیکون نداره به جا فاصله 16 پیکسلی 2 3 پیکسل فاصه بخوره خیلی خوب می شه.

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

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

جدا از این حرف لطف می کنی چند دقیقه وقت بزاری این treeview رو یه جوری کنی یکم از فضاش بهتر استفاده بشه.
البته می دونم که الان فاصله هاش منطقی هست - من خودم تو وب استفاده می کنم ولی

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

خب شما میتونی عرضش رو زیاد کنی که اسکرول نخوره. ضمن اینکه خیر نمیشه کاریش کرد که آیکن ها کوچیکتر بشن. این استاندارد خود ویندوز هست. برای این منظوری که شما میخاین باید یک کنترل ویندوزی از نو ساخته بشه.

شما می تونین اندازه فونت نوشته ها رو کوچیکتر هم بکنین. تست کنید شاید برای کار شما جوابگو بود.
ضمنا بهینه نوشتن این ها که شما میفرمایین ربطی به شی گرایی نداره لزوما. :rose:
 
تشکر
اینطور که متوجه شدم از treeview خود ویندوز استفاده کردید. فکر می کردم کلشو خودتون نوشتید. آخه همونطور که گفتم مثلا با جاوا اسکریپت و html می شه درست کرد. (البته عالیه - جسارت نشه )
من یه نمونه که خودم فاصله خطوط و اندازه آیکون ها را تغییر دادم تو شکل زیر گذاشتم
14a0fac6141188.gif

هرچند که اینجا این فضای جدید (قرمز رنگ) ناچیز به نظر می رسه ولی بعضی موقع ها شاید چند پیکسل برای یکی یه کوچولو مهم باشه.

همینی که شما دادید عالیه

من با استفاده از آرایه و حلقه یه درخت و ایجاد کردم. انشاء ا... گیرش برطرف شد در آینده نزدیک نمونه برنامه رو قرار می دم
:wink:
 
تعریف پارامتر سوم مشکل داره - درستش اینه

کد:
param$ = '1|16|0|Iran'
  PluginSet("PlugIn","param$")
  PluginRun("PlugIn","AddTreeItem")
  param$ = '1|17|16|Population: 65,875,223'
  PluginSet("PlugIn","param$")
  PluginRun("PlugIn","AddTreeItem")

- سومی: برای سر شاخه ها و اونهایی که فرزند عنصر دیگه نیستند این عنصر باید صفر باشه. در غیر این صورت این عدد باید شناسه عنصر والدش باشه. مثلا برای جمعیت ایران از همین شناسه عنصر ایران که 16 هست در بخش پارامتر سوم بهره برده شده.


به نظر من پارامتر سومی بهتر میشه تعریف بشه.
اگه اشتباه گفتم بگید اشتباه می گم:D
شناسه عنصر والدش را نباید بگیم مثلا اگه شاخه 22 ام بود با پارمتر 0 و شاخه 23 رو بخواهیم زیر شاخه کنیم نباید بزینم پارامتر سوم رو 22 یعنی والد بذاریم بلکه باید 1 بذاریم یعنی یک سطح بره جلو

پس
پارامتر سوم شناسه والد نیست شناسه سطح جلورفتگی است
یعنی اگه بخواهیم برای شاخه 22 - چند تا زیرشاخه زیر هم بزنیم باید پارامتر 1 را بذاریم اگه یه سطح دیگه بخواهیم بریم جلو باید 2 رو بذاریم
:wink:
 

silvercover

کاربر متخصص
پس
پارامتر سوم شناسه والد نیست شناسه سطح جلورفتگی است
یعنی اگه بخواهیم برای شاخه 22 - چند تا زیرشاخه زیر هم بزنیم باید پارامتر 1 را بذاریم اگه یه سطح دیگه بخواهیم بریم جلو باید 2 رو بذاریم

در عمل چه فرقی داره؟
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
به نظر من پارامتر سومی بهتر میشه تعریف بشه.
اگه اشتباه گفتم بگید اشتباه می گم:d
شناسه عنصر والدش را نباید بگیم مثلا اگه شاخه 22 ام بود با پارمتر 0 و شاخه 23 رو بخواهیم زیر شاخه کنیم نباید بزینم پارامتر سوم رو 22 یعنی والد بذاریم بلکه باید 1 بذاریم یعنی یک سطح بره جلو

پس
پارامتر سوم شناسه والد نیست شناسه سطح جلورفتگی است
یعنی اگه بخواهیم برای شاخه 22 - چند تا زیرشاخه زیر هم بزنیم باید پارامتر 1 را بذاریم اگه یه سطح دیگه بخواهیم بریم جلو باید 2 رو بذاریم
:wink:

ولی بنظر من روشی که الان حامد استفاده کرده بهتره، این روشی که شما میفرمایین وقتی میتونه خوب باشه که ما مرحله به مرحله نادها رو به لیست درختی اضافه کنیم، ولی مثلاً فرض بفرمایید که در جایی نیاز داشتیم تا یک آیتم رو پس از ساخته شدن درخت بهش اضافه کنیم، از این روش نمیشه استفاده کرد، چون اینجوری آیتم جدید به آخرین گره اضافه میشه و نه مثلاً به گره ی پنجم.
 
در عمل چه فرقی داره؟

فرقش در اینه که شما برای هر شاخه تنها یک زیر شاخه تعریف کردید
اگه میشه لطف کنید با همین روشی که گفتید همین درخت خودتون رو تغییر بدید و به علاوه زیرشاخه جمعیت فکر کنم دو زیر شاخه دیگه مثلا مساحت و ثروت هم اضافه کنید.

با روش شما من برای هر شاخه فقط یک زیر شاخه می تونم بسازم وبقیه هی یه سطح میره جلو

وقتی ازتون نمی گیره چک کنید و جواب رو بگید لطفا - من نمونه خودم رو الان می زارم
 
ولی بنظر من روشی که الان حامد استفاده کرده بهتره، این روشی که شما میفرمایین وقتی میتونه خوب باشه که ما مرحله به مرحله نادها رو به لیست درختی اضافه کنیم، ولی مثلاً فرض بفرمایید که در جایی نیاز داشتیم تا یک آیتم رو پس از ساخته شدن درخت بهش اضافه کنیم، از این روش نمیشه استفاده کرد، چون اینجوری آیتم جدید به آخرین گره اضافه میشه و نه مثلاً به گره ی پنجم.


این درخت یه نظر من در پویایی مشکل داره
فکر کنم باید یه جوری اصلاح بشه مثلا شاید پارامتری اضافه بشه ولی نمی دونم
 

silvercover

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

با روش شما من برای هر شاخه فقط یک زیر شاخه می تونم بسازم وبقیه هی یه سطح میره جلو

وقتی ازتون نمی گیره چک کنید و جواب رو بگید لطفا - من نمونه خودم رو الان می زارم

این جا رو ببینید:
http://forum.majidonline.com/showpost.php?p=804556&postcount=9
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
اتفاقاً با این روشی که حامد استفاده کرده براحتی میشه تعداد زیادی زیر شاخه برای هر عنصر تعریف کرد برای اینکار ما فقط با آیدی ها سر و کار داریم، حالا تا هر چند مرحله که بخایم میتونیم بریم جلو،هر عنصر میتونه یک یا چند زیر شاخه داشته باشه، پس فکر نکنم از نظر پویایی مشکلی وجود داشته باشه، تو مثالی که محسن گذاشته هم مشخص هست
 
راستش هنوز برنامه splinter cell رو ندیدم - من اینو نوشته بودم که اینو گفتید - حالا چون زحمت کشیدم تایپ کردم و برنامه خودم رو دادم ببیند . اونو ببینم نظر می دم

من با یک سیستم کددهی شناسه زیرشاخه ه چیزی ساختم
توضیحات کامل تر رو بعدا می دم ولی داخل کدهاش یکم توضیح داره
سیستم کددهی اینجوری که من بیشتر به شاخه اول اهمیت دادم و جوری نوشتم اگه خواستیم به اون بعدا آیتم جدید اضافه کنیم جای درج در انتها داشته باشیم
آخه - شناسه کوچکتر بالاتر قرار می گیره - مثلا ما در سرشاخه اول 10 آیتم داریم پس سرشاخه دوم دوازده میشه و وقتی بخواهیم به شاخه اول 5 تا دیگه اضافه کنیم باید همه اعداد رو شیفت بدیم به جلو
ولی من یک کاری کردم
گفتم هر شاخه می تونه صد تا زیرشاخه داشته باشه (به نظر من کافیه) پس سرشاخه اول شناسه 100 می گیره و زیر شاخه هاش 101 تا 199 و سرشاخه دوم 200 و بعدش 201 تا 299
حالا ما وقتی به سرشاخه یک 20 تا زیرشاخه بدیم و بریم سراغ بعدی ها و در آینده برگردیم تا به شاخه اول 30 تا آیتم دیگه اضافه کنیم در عمل نزدیک 80 شناسه رزرو شده برای اونا داریم و تازه بعدش هم 50 تا دیگه می مونه

پس چند دقیقه با دقت تابع های من رو که این سیستم کددهی و نمایش رو پیاده کرده ببیند بعد نظر بدید
در ضمن سعی کردم درون حلقه شاخه ها مقداردهی بشه و برای اینکه درست به اندازه شاخه ها حلقه تکرار بشه از چند متغیر کمکی استفاده کردم

حالا شما ببیند تا بیشتر بحث کنیم
ولی آقا حامد شما با یه دقت بیشتری نگاه کن تا انشاءا... این درختت رو کامل تر و کاربرپسند تر کنیم

اینم برنامه من
http://files.upload2world.com/get-5-2009-upload2world_com_mx7befz8.rar
 


خوب منم همینو میگم
درست منظور منو متوجه نشدید
مگه آقا محسن پارامتر سوم رو 0 و 1 و2 نذاشته - این همون سطح بندی که من می گم

لینک چک کردم دیدم فایلم خراب
من نمی دونم شما چه جوری فایل تو خود سایت آپیود می کنید :sad: اینو بگید تو دوباره فایلم رو بذارم
 
اتفاقاً با این روشی که حامد استفاده کرده براحتی میشه تعداد زیادی زیر شاخه برای هر عنصر تعریف کرد برای اینکار ما فقط با آیدی ها سر و کار داریم، حالا تا هر چند مرحله که بخایم میتونیم بریم جلو،هر عنصر میتونه یک یا چند زیر شاخه داشته باشه، پس فکر نکنم از نظر پویایی مشکلی وجود داشته باشه، تو مثالی که محسن گذاشته هم مشخص هست

تو مثال آقا محسن
شاخه C15 رو چه جوری می خواهید به بعد از شاخه C14 اضافه کنید
شناسه که می تونه بگیره 19 باید باشه در حالی که برای این درج به بعد از c14 باید شناسه 10 (پارامتر دوم رو می گم) بگیره
پس اگه بخواهیم اضافه کنیم باید 10 تا شناسه رو یکی شیفت بدیم جلو تا شناسه 10 برای اون خالی بشه

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

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
فایلتون آسیب دیده هست و باز نمیشه، ضمناً خیلی بد دانلود شد، اصلاً با فایرفاکس دانلود نشد !! بهتره تو خود انجمن پیوستش کنید تا همیشه در دسترس باشه و این مشکل ها پیش نیاد

من فایلتون رو به دلایلی که عرض کردم ندیدم، ولی بنظر من نیاز نیست که برای آیتم ها جا رزرو کنین، شما برای اضافه کردن آیتم جدید تنها لازم هست که شناسه ی عنصر والدش رو بدونید و اگر هم که عنصر والدی نداره صفر، و برای اینکه شناسه ها با هم قاتی نشن بهتره تو اسکریپت یه متغیر باشه مثل ID که هر بار یک عنصر به درخت اضافه میشه یکی بهش اضافه بشه و اون عدد همیشه به عنوان شناسه استفاده بشه
کد:
[FONT=Courier New][SIZE=2]ID = ID + [COLOR=#ff0000]1[/COLOR] 
ID$ = [COLOR=#000090][B]CHAR[/B][/COLOR](ID) 
param$ = [COLOR=#800000]'1|'[/COLOR] + ID$ + [COLOR=#800000]'|'[/COLOR] + ParentID$ + [COLOR=#800000]'|'[/COLOR] + Item Name$ + [COLOR=#800000]'|'[/COLOR] + ItemIconPath$ 
[COLOR=#000090][B]PluginSet[/B][/COLOR]("TreeObject","param$") 
[COLOR=#000090][B]PluginRun[/B][/COLOR]("TreeObject","AddTreeItem")[/SIZE][/FONT]

من نمی دونم شما چه جوری فایل تو خود سایت آپیود می کنید :sad: اینو بگید تو دوباره فایلم رو بذارم
تو قسمت پست مطلب پایین یه دکمه هست بنام مدیریت پیوست ها، اون رو بزنید فایلتون رو انتخاب کنید و...بوووم !!! :wink:
 
آخرین ویرایش:
TreeView.rar
شرمنده من که گفتم نمی دونم چه جوری تو انجمن آپلود کنم - اینو می ذارم و شما برای آپلود یه راهنمایی کوچولو هم بکن

من هم دقیقا امثل شما استفاده کردم - پارامتر ها رو همین طوری جمع کردم
راستش تا چند دقیقه دیگه باید برم اینو ببنید
حالا فردا صحبت می کنیم
 

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

بالا