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

نام تاپیک: DBTreeView با امکان راست به چپ در Delphi

  1. #1
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379

    DBTreeView با امکان راست به چپ در Delphi

    DBTreeView با امکان راست به چپ در Delphi


    سطح مقاله: حرفه ای.


    مقدمه

    خیلی از ماها در پروژه هامون به یک DBTreeView خوب نیازمندیم و با خودمون آرزو میکردیم کاش این کامپوننت فرضی قابلیت نمایش راست به چپ را هم پشتیبانی میکرد.

    گزینه هایی که اکثرا میشناسید عبارتند:
    • Express DBTree
    • Dream Tree
    • و چند تای دیگه.
    اما هیچ کدوم از اینها راست به چپ را پشتیبانی نمیکنند.

    از طرف دیگر بعضی هاتون با Virtual Treeview آشنا هستید. این یکی راست به چپ رو بطور کامل پشتیبانی میکنه، اما
    1. کار کردن باهاش سخته.
    2. امکان اتصال به دیتابیس رو بطور پیش فرض نداره.
    بخاطر همین جماعت اکثرا بیخیالش میشن.

    نبود اون چیزی که لازم داشتم باعث شد دست به کار بشم تا ترکیبی از Virtual Treeview و اتصال خودکار به دیتابیس رو بعنوان یک کامپوننت بنویسم. کمی هم روش کار کردم، تا جاهای خوبی هم کار رو پیش بردم، اما؛

    بی اطلاع بودن از وجود بعضی چیزها دو دلیل میتونه داشته باشه:
    1. یا ما سعی نکردیم اون چیز رو پیدا کنیم و یا درباره اش اطلاع کسب کنیم، بعبارت دیگه تلاش کافی نکرده ایم (در مورد اکثر کسانی که در اطرافم میشناسم این قضیه صادقه).
    2. ایجاد کننده اون چیز به اندازه کافی برای معرفی کارش تلاش نکرده، بخاطر همین ناشناخته مونده.
    بعد از مدتی کار بر روی موردی که چند خط بالاتر ذکر کردم دریافتم دوست دیگری در گوشه ای دیگر از جهان که احتمالا خلوت هم هست کاری رو که من میخواستم انجام بدم انجام داده، اونم بطور تمام و کمال.


    معرفی ابزار
    من این مخلوق رو بطور خیلی اتفاقی کشف کردم: Dynamic DBTreeView controls v 1.9

    این کامپوننت یک پوسته روی Virtual Treeview محسوب میشه و کار کردن با اون، بخصوص متصل کردنش به دیتابیس رو خیلی راحت میکنه.
    برای استفاده از اون کافیه یک نمونه از این کامپوننت رو بر روی فرم تان بیاندازید، چند تا مشخصه (که تحت یک مشخصه بنام DBTreeFields گروه بندی شده اند) رو مقداردهی کنید، و بروید دنبال کارتان.

    از نکات جالب این ابزار میتوان به همزمان بودن حرکت روی شاخه های درخت و جابجایی رکورد با توجه به رکورد فعال در درخت (و برعکس)، قابل ویرایش عنوان رکورد در درخت، و امکان Drag & Drop شاخه های درخت و عوض شدن ParentID با توجه به پدر جدید شاخه در درخت اشاره کرد.

    دموی هایی که همراه این مجموعه ارائه شده به اندازه کافی گویا و واضح هست.

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

    یک تصویر نیز بعنوان گواه به پایین این مطلب چسبیده است.

    نیمه شب خوبی داشته باشید.
    عکس های ضمیمه عکس های ضمیمه

  2. #2
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    101
    جناب DelphiAssistant خیلی ممنون از مطالبی که فرمودید و من هم واقعاً بهش احتیاج داشتم و دانلودش کردم. ولی از اونجا که من کم تجربه هستم با اینکه راهنمای نصب رو خوندم نتونستم این کامپوننت رو نصب کنم ، خواستم خواهش کنم که در مورد نصب این کامپوننت توضیح بدید. مثل اینکه قبل از نصب DBTREEVIEW باید کامپوننت TREEVIEW نصب بشه و صحبت از کامپوننت Designtime شده که کمی موضوع رو پیچیده کرده. ممنون میشم راهنمایی بفرمائید.

  3. #3
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    101
    خوشبختانه با کمی تلاش بیشتر تونستم کامپوننت ها رو نصب کنم. باز هم ممنون بخاطر معرفی این کامپوننت.

  4. #4
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    101
    جناب DelphiAssistant با سلام مجدد. بعد از نصب کامپوننتها ، خواستم دموی برنامه رو اجرا کنم ولی با این ارور مواجه شدم :
    کد :
    {$I DTDBTree.Inc}
    و خطای کمپایلر
    [Fatal Error] Unit1.pas(5): File not found: 'DTDBTree.Inc'
    میشه بفرمائید مشکل کار من کجاست؟

  5. #5
    با تشکر از آقای اسیستنت بخاطر معرفی این کامپوننته .

    من نصبیدمش ، دموهاش هم تستیدم ! No Problem داشتم !

    واسه همین ، مراحل نصب و ایناش را که آقای اسیستنت وقت نکرده بودند توضیح بدهند ، من مینویسم . تنکس بدید ! من خیلی تنکس دوست دارم .
    --------------------------------------------------------------
    1- مسیر Folan\VirtualTreeView\Source را به مسیر لایبرری های دلفی اضافه کنید ( از منوی تولز .. انوایرومنت آپشنز ، لایبرری و ... )

    2- حالا پکیج VirtualTreesD7D را که در مسیر Folan\VirtualTreeView\Delphi هستش را دبل داخل دلفی باز کنید و دکمه های Compile و سپس Install را بزنید .

    3- حالا پکیج DTTreeviewD7D را از مسیر Folan\DynamicDBTreeView\Delphi باز کنید و آنرا کامپایل و سپس اینستال کنید .

    4- همین دیگه ! نصب شد !

    5- مثلا یکی از دموهاش :


  6. #6
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    101
    خیلی ممنونم Mojgan110 . خدا بهت خیر بده. نصبش کردم و مشکلم حل شد. ولی خواستم با ADOTable باهاش کار کنم بهم ارور داد و گفت دیتا ست باید از نوع TTable باشه در حالیکه دیتاست من از نوع TADOTable هست. میشه راهنمائی کنی که این مشکل رو چطور میشه حل کرد؟

  7. #7
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379
    یک نسخه ویژه استفاده از ADO هم در پکیج نصبش وجود داره.

  8. #8
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    304
    نقل قول نوشته شده توسط kheyri مشاهده تاپیک
    جناب DelphiAssistant خیلی ممنون از مطالبی که فرمودید و من هم واقعاً بهش احتیاج داشتم و دانلودش کردم. ولی از اونجا که من کم تجربه هستم با اینکه راهنمای نصب رو خوندم نتونستم این کامپوننت رو نصب کنم ، خواستم خواهش کنم که در مورد نصب این کامپوننت توضیح بدید. مثل اینکه قبل از نصب DBTREEVIEW باید کامپوننت TREEVIEW نصب بشه و صحبت از کامپوننت Designtime شده که کمی موضوع رو پیچیده کرده. ممنون میشم راهنمایی بفرمائید.
    من اینجا دیدم که همه دوستان از راست به چپ شدن treeview صحبت می کنن ، من تابع دارم که هر کامپوننتی رو بهش بدی راست به چپش می کنه از جمله همین treeview امیدوارم که بدردتون بخوره.
    ببخشید به علت اینکه اینجا مطرخ شده بود من کد رو همینجا می ذارم.

    procedure SetWinControlBiDi(Control: TWinControl);
    var
    ExStyle: Longint;
    begin
    ExStyle := GetWindowLong(Control.Handle, GWL_EXSTYLE);
    SetWindowLong(Control.Handle, GWL_EXSTYLE, ExStyle or WS_EX_RTLREADING or WS_EX_RIGHT
    or WS_EX_LAYOUTRTL or WS_EX_NOINHERITLAYOUT );
    end;

  9. #9
    من اینجا دیدم که همه دوستان از راست به چپ شدن treeview صحبت می کنن ، من تابع دارم که هر کامپوننتی رو بهش بدی راست به چپش می کنه از جمله همین treeview امیدوارم که بدردتون بخوره.
    این کد قبلا توسط خود آقای DelphiAssistant در این فوروم گذاشته شده بود و درباره اش بحث شده. ظاهرا در بعضی شرایط خاص نتایج قابل قبولی ارائه نمیده. فکر کنم یکیش استفاده از Popup Menu برای TreeView بود.


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  10. #10
    کاربر جدید
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    قم
    پست
    17
    سلام من یک مشکل در گرفتن text مجموعه یک شاخه و زیر شاخه هاش دارم اگر کمکم کنید ممنون میشم

  11. #11
    با سلام
    توی برنامه ADOTable دارم که DTADOTree1 را به آن وصل کرده ام و وقتی تنظیماتش رو ست میکنم فقط سطح اول والد را نشان میدهد و هیچ زیر مجموعه ای را نشان نمیدهد و سطح اول را هم درست نشان میدهد.
    توی مجموعه اش دمو برای DTADOTree1 نبود تو سایتش هم ندیدم.
    آیا کسی یه مثال یا دمو برای DTADOTree1 داره؟
    یا اینکه چه تنظیماتی را باید اعمال کنم؟
    با تشکر

  12. #12
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379
    بنظر من اشکال از داده های درون جدول تان است که رابطه ID/ParentID در آنها احتمالا درست نیست.

  13. #13
    با سلام
    رابطه ID/ParentID در آنها درست است و برای اطمینان بیشتر یه جدول جدید با 10 تا رکورد درست کردم ولی باز هم همان سطح اول را نمایش میدهد.
    برای نمایش فرزندان تنظیم خاصی نیاز است؟
    در تنظیمات DTADOTree گزینه HasChildrenFieldName چی هست و برای چی استفاده میشود؟
    لطفا یه مثال برای Adotable کنید.
    با تشکر

  14. #14
    از بابت این کامپوننت ممنون ولی من با ado که کار میکنم ووقتی میخوام یه فرزند ایجاد کنم روی دستور appen خطا میده و متنش اینه که میگه یه خطای ناشناخته رخ داده و برنامه روی یکی از خط های پروسیچر update میمونه ممنون میشم اگر راهنمایی کنید

  15. #15
    با سلام و تشکر آیا این برنامه رو با C#‎ هم دارید؟

  16. #16
    با سلام
    چجوری میشه با انتخاب یکی از رکوردها (فرزندان) در صورت داشتن والدین مسیر کلی را نمایش دهد؟ (یعنی مثلا بگوید علی پسر حسن پسر حسین و... تا روت اصلی)
    با تشکر

  17. #17
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1382
    پست
    49
    سلام آقای کرامتی این کامپونت (Dynamic DBTreeView controls v 1.7) را چجوری به SDAC وصل کنم ممنون

  18. #18
    {$I DTDBTree.Inc}
    و خطای کمپایلر
    [Fatal Error] Unit1.pas(5): File not found: 'DTDBTree.Inc'
    با سلام بنده نیز این مشکل را دارم و با حتی با رعایت روش نصب کامپوننت این مشکل حل نشد لطفا راهنمایی فرمایید

  19. #19
    با سلام
    چجوری میشه با انتخاب یکی از رکوردها (فرزندان) در صورت داشتن والدین مسیر کلی را نمایش دهد؟ (یعنی مثلا بگوید علی پسر حسن پسر حسین و... تا روت اصلی)
    یه کد برای Tree معمولی وجود داره که برای این کامپوننت کار نمیکنه.
    البته اگه امکان این وجود داشته باشه که کل ParentID های هر فرزندی را نشان بده خیلای بهتره.
    لطفا راهنمایی بفرمایید
    با تشکر

  20. #20
    با سلام
    کمک کمک کمک کمک کمک کمک کمک کمک کمک ....
    خیلی واجبه لطفا یه راهنمایی بفرمایید. برناغمه باید تا چهارشنبه آماده بشه......
    با تشکر

  21. #21
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379
    فکر میکنم Virtual Treeview متدهایی برای پیدا کردن Parent یک Node داره، راهنمایش را مطالعه کنید.

  22. #22
    با سلام
    در tree معمولی با کد زیر میشه کل parent ها رو نمایش داد اما من توی رانماش هم گشتم نتونستم این مورد را پیدا کنم.
    لطفا راهنمایی بفرمایید.
    وی اینکه یه کدی که بتوان تمام ارتباطات را در یک جدول جدید اضافه کرد.

     function SrNodeTree(pTreeNode: TTreeNode; var sRuta: string): string;
    begin
    sRuta := pTreeNode.Text + ' > ' + sRuta;
    if pTreeNode.Level = 0 then Result := sRuta
    else
    Result := SrNodeTree(pTreeNode.Parent, sRuta);
    end;


    با تشکر

  23. #23
    با سلام
    من نتونستم چیزی پیدا کنم.
    لطفا راهنمایی کنید.
    اگه یه تابعی باشه که همه ParentID های هر عنوان انتخابی را نشان دهد اون هم کارمو راه میندازه.
    با تشکر

  24. #24
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379
    در این کامپوننت وقتی روی یک Node می روید رکورد مربوطه نیز در دیتابیس فعال میشود و شما میتوانید ParentID رکورد کنونی را از دیتابیس و رکوردی که اکنون فعال است بخوانید. بقیه عملیات نیز از طریق دیتابیس قابل انجام است (بدست آوردن سلسله مراتب).

  25. #25
    کاربر تازه وارد
    تاریخ عضویت
    دی 1384
    محل زندگی
    tehran
    پست
    97

    نقل قول: DBTreeView با امکان راست به چپ در Delphi

    سلام من از bds 2006 استفاده میکنم اما این پکیج در این ورژن نصب نمیشه
    آیا برای نصب این پکیج راهی هم وجود داره ؟

  26. #26

    اشکال: DBTreeView با امکان راست به چپ در Delphi

    این موجود! با اسکرول افقی در حالت راست چین مشکل داره..

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

    حالا راه حلی براش هست؟

  27. #27

    نقل قول: DBTreeView با امکان راست به چپ در Delphi

    از بابت این کامپوننت ممنون.
    یک باگ در این کامپوننت وجود دارد.در صورتی که در رویداد onKeyDown کدی نوشته شود این رویداد عمل نمی کند.

  28. #28

    نقل قول: DBTreeView با امکان راست به چپ در Delphi

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

  29. #29
    کاربر تازه وارد آواتار 0armin0
    تاریخ عضویت
    شهریور 1385
    محل زندگی
    ایران
    پست
    43

    نقل قول: DBTreeView با امکان راست به چپ در Delphi

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

تاپیک های مشابه

  1. dbtreeview ??
    نوشته شده توسط mohamdmahdi در بخش کامپوننت های سایر شرکت ها، و توسعه کامپوننت
    پاسخ: 0
    آخرین پست: چهارشنبه 12 دی 1386, 01:01 صبح
  2. تنظیمات dbtreeview
    نوشته شده توسط jafari1 در بخش برنامه نویسی در Delphi
    پاسخ: 2
    آخرین پست: چهارشنبه 05 بهمن 1384, 19:14 عصر

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

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