עץ וירטואלי

שליטה זו משתמשת פרדיגמה אחרת לניהול עץ מאשר פקדים אחרים מסוג זה
הורד עכשיו

עץ וירטואלי דירוג וסיכום

פרסומת

  • Rating:
  • רישיון:
  • LGPL
  • שם המפרסם:
  • Mike Lischke
  • מערכות הפעלה:
  • Windows All
  • גודל הקובץ:
  • 707 KB

עץ וירטואלי תגים


עץ וירטואלי תיאור

העץ הווירטואלי נועד להיות בקרת עצים שנבנתה מקרקעית. יותר מ 5 שנים של פיתוח עשה את זה אחד הגמיש ביותר ואת הבקרות עץ מתקדם זמין היום. עץ וירטואלי מתחיל עם התביעה כדי לשפר את ההיבטים הרבים של פתרונות קיימים ומציג כמה טכנולוגיות ועקרונות חדשים שלא היו זמינים לפני כן. כפי שהשם כבר מציין, שליטה זו משתמשת פרדיגמה אחרת לניהול עץ מאשר פקדים אחרים מסוג זה. זה לא יודע שום דבר על הנתונים שהוא מצליח (למעט גודלו), אפילו לא כיתובים של הצומת. הכל מאוחזר מהיישום באמצעות אירועים (או צאצאים באמצעות שיטות overridden). עץ וירטואלי תוכנן בקפידה נבדק היטב. השליטה הוכיחה את הרעיון שלה, כמו גם כושר כל יום כבר במוצרים מסחריים רבים פרויקטים freeware. תכונות עיקריות: כללי: Virtual TreeView כמו מסמך נכס Editorvirtual TreeView הוא מאוד מהר. הוספת מיליון צמתים לוקח רק 700 milliseconds *! זה עושה את זה כיום TreeView המהיר ביותר זמין בשוק דלפי / BCB. Virtual TreeView יש הדפס זיכרון קטן מאוד. על ידי הקצאת רק על 60 בתים לכל צומת (בעץ המחרוזת, עץ הבסיס משתמש רק 56 בתים) הוא מוכן היטב להחזיק מיליון מהם. TreeView Virtual מותאם לגישה במהירות גבוהה. זה לוקח כמה דקות 0.5 שניות כדי לחצות מיליון צמתים * בהתאם לאימות הצורך ואת הצומת אימות מדינות. MultisElction נתמך, כולל בחירה מוגבלת, כך ניתן לבחור רק צמתים של רמה ראשונית מסוימת. הרבה מאמץ כבר לשים לתוך פיתוח של אלגוריתמים אפקטיביים למשל. כדי לאפשר לשנות את הגדרת הבחירה הגדולה כבר באופן אינטראקטיבי. ציור העץ כולו לסיביות מפת סיביות או שהמדפסת נתמכת על-ידי שיטת TBASEVIVITURETREE.PAINTREE המרכזית. ההודעות WM_Print ו- WM_PrintClient מטופלים כראוי המאפשרים לדברים כמו ציור עץ לתוך מפת סיביות (למשל עבור חלונות שכבתיים או ליישם ירידה של פקדים המשתמשים ב- VT). יש אירוע tbasevirturetree.onhint כדי להציג רמזים ספציפיים הצומת. יש אירוע tbasevirturetree.ongethelpcontext כדי לאחזר צומת ספציפי עזרה מזהי הקשר. זה כולל עץ אוטומטי וחלון הורים חולצת כפי שהוא מופעל כאשר המשתמש לחוץ F1 יש אירוע tbasevirturetree.ongetpoppopmenu כדי לאחזר תפריטים קופצים ספציפיים הצומת, כולל טרוולרסל עץ אוטומטי. לחצני העכבר האמצעיים והימין יכולים לשמש בנוסף ללחצן השמאלי ולתמוך בכל מה שאפשר עם הלחצן השמאלי (גרירה, בחירה וכו '). לחצנים חלופיים אלה יכולים להיות עבר, כמובן. תמונת רקע קבועה יכולה לשמש בעץ וניתן לתת לקיזוז מסוים, למשל. כדי לדמות רקעים משותפים. סגנון חם עבור צמתים נתמך (בדיוק כמו קישורים בחלון דפדפן). סמן מיוחד ניתן להקצות למשימה זו. מחרוזת עצים תומכים טקסט סטטי socalled אשר מופיע לאחר כיתוב של הצומת (בכל עמודה) ואשר יכול להיות מעוצב אחרת לכיתוב אבל לא ניתן לערוך, נבחר וכו '. מצב עמודה של טווח אוטומטי נתמך המאפשר עמודה שתופיע מקום נוסף לכיתוב שלה אם יש עמודות ריקות ימינה. זה נמנע מסגרות של כיתובים ארוכים אבל עדיין מאפשר שימוש בעמודות מרובות. צומת ניתן לבחור בכל עמודה (זה switchable), כמו גם לערוך, ביצוע Virtual Treeview איזה סוג של רשת מדי. ניתן להשתמש במפתח Tabulator כדי לעבור את המיקוד בין התאים. אפשרות מיוחדת (toggidextensions) קיימים כדי לתמוך במשימות ספציפיות של רשת. צמתים יכולים להיות גבהים בודדים ואת היישור האנכי של תמונות של הצומת וקווים ניתן להתאים בנפרד. Treeview וירטואלי חושף את מדינותיה הפנימיות כמו גרור או ערוך אירועים, מבחר רב או הרחבת התקדמות. שימוש במידע זה יישום יכול לייעל את ביצוע הקוד שלה (עדכוני המדינה וכו '). מיון צומת נתמך באמצעות יישום שהוגדר השווה שיחה בחזרה. בנוסף, עץ יכול להיות מוגדר מיון אוטומטי. רמזים יכולים להכיל שורות מרובות של טקסט ומראה את היישור ואת כיווניות של הצומת או העמודה שהם מוצגים עבור. עבור האנימציה שלהם הזזה ו Alpha מיזוג זמין. מצטבר לחפש עם אפשרויות שונות וכיוונים נגיש מדי. Auto גלילה של אזור לקוח קורה כאשר סמן העכבר נמצא ליד הגבולות בעת הגרירה ולהסיק בחירה (בחירה מרובה). TBaseVirtualTree.DefaultNodeHeight ו TVirtualStringTree.DefaultText יכול לשמש כדי למנוע קביעת צמתים רבים במפורש לאותו ערך ההתחלה. יישום הטור של TreeView וירטואלית מאפשרת גם עמודות קבוע, מה שהופך אותו תחליף לרשת טוב מדי. חדש טכנולוגיים: עבור אנימציות חלקות (לדוגמה רמז דהייה) TreeView וירטואלית משתמשת שגרות מאסף MMX מותאם היד. קוד זה משמש גם לצייר מלבן הבחירה השקופה במצב בחירה מרובה. זה דומה מאוד למה Windows 2000 ו- Windows XP תמיכה אבל עובד גם על Windows 95/98 / Me. תמונה מעורבבת אלפא של חלון העץ מוצגת בזמן ביצוע פעולת גרירה ושחרור. ב- Windows 2000 ו- Windows XP IDropTargetHelper וממשקי IDragSourceHelper נתמכים המאפשר כמה תופעות מאוד מסודרות (כפי שמוצג Explorer). על גרסות Windows צרכן מבוגרות התמונה גרור מדומה על ידי העץ אבל עומד בבסיס יש כמה הגבלות קטנות. TreeView וירטואלי תומך נושאים של Windows XP. היא פועלת כראוי על השינויים בעיצוב ושימושים עבור כל הרכיבים החזותיים אשר נושאים את התמונה הנכונה באמצעות ממשקי API הילידים. תחת מערכות Windows אחרות סגנונות אלה נתמכים על ידי קוד מורשת נפרד. ניתן להעביר את המודעות Theme. Unicode: TVirtualStringTree מיושם באמצעות Unicode / מחרוזות רחבות בלעדיים. העץ חוסך וקורא את כול מאפייני Unicode (כיתובים לדוגמה, טור, טקסט צומת מחדל וכדומה) בצורה נכונה מ / DFM. Unicode כל ציור תומך באופן מלא bidirectionality (למשל הנכתבות מימין לשמאל ציור), יישור עמודה (שמאל, מרכז, ימין) ובצורה נכונה מיושר רמזים. כמובן גם תכונה זו זמינה ב- Windows 95/98 / Me. תמיכה ושחרור לוח Drag'n: OLE גרור ושחרר ו הלוח OLE העברות נתמכים עם עץ כמו המקור ושפת היעד. לחלופין, ירידה drag'n VCL יכול עדיין לשמש תאימות. פורמטים אלו הם תמיכה על ידי יישום התקן: Native בהמשכים בפורמט (CF_VIRTUALTREE ו CF_VTREFERENCE), שהיא צורה קומפקטית נתוני החליפין בין התצוגות וירטואלי (גם בין יישומים). שני פורמטי אחסון זמינים: HGlobal ו IStream . בפורמט טקסט מחרוזת מישור ANSI. בפורמט טקסט מחרוזת מישור Unicode. טקסט עשיר (RTF) בפורמט מחרוזת (עם טקסט Unicode). בפורמט מחרוזת טקסט HTML (UTF-8). זוהי תבנית ללוח המועדפת עבור Word 2000 וכו 'ומאפשרת תוכן עץ להעתיק ולהדביק למסמך מילה עם כמעט שום קוד יישום. , קיים תכנית רישום (RegisterVTClipboardFormat) המאפשר צאצאים לציין וליישם פורמטי הלוח שלהם. באמצעות המטפל ירידה היישום יכול לקבל בכל פורמט OLE ללא הנובע מחלקה עץ משלו. כדי עיבוד סיוע של נתוני עצים המקומיים שיטות מתמחות מיושמות. ראו גם:. TBaseVirtualTree.ProcessOLEData ו TBaseVirtualTree.ProcessDrop Dropmarks להראות במהלך drag'n טיפה שבו נתונים יוכנסו. זה עובד גם עם ירידת drag'n VCL. מודל יעד הירידה הוארך כדי לאפשר פעולות טיפה מעל, מתחת או על צומת. בינתיים ספקי בקרות TreeView אחרים התחילו להשתמש הקטן הזה אבל רעיון עוצמה מדי. Auto להרחיב צומת שהם יעד הירידה במשך יותר מרווח זמן מתכוונן מבוצע אם הוא מופעל. כותרת ועמודות: עמודות מרובות נתמכות על ידי יישום כותרת עוצמה. כותרת זו תופסת מקום באזור הלקוח אי שליטת העץ תומך סגנונות כפתורים שונים (כפתורים עבים הסטנדרטי ListView, כפתורים שטוח, צלחות, בסגנון Windows XP ו תיקו בעלים). עמודות יכולים להופיע בכל סדר בחלון עץ. כל עמודה ניתן להסתיר כולל הטור המרכזי המחזיקה העץ בפועל. כל עמודה יכולה להיות בעמודה הראשית. עמודות ניתן לראות גם בלי הכותרת. שלעמודות יש אפשרויות שונות (גלוי, לחיץ, resizable, הניתן לגרירה וכו.). ניתן להגדיר מערכים נפרדים עבור כל עמודה וכן הנכתבות מימין לשמאל או משמאל לימין כיווניות (שוב: זמין גם על אי-המזרח התיכון ומעלה מערכות הצרכן Windows) . כל עמודה יכולה להיות צבע משלו. הכותרת, כמו גם את מעמד אוסף טורים ואת כיתות טור בפועל שתומכים בזרימה. זהו עצמאי מן הזרמת TreeView. תמיכה בדוק: כל צומת בעץ יכול להיות סוג המחאה משלו. גם התיבה יכולה להיות (גם במרחק של שעה), כפתור רדיו או כפתור צומת. סוגים אלו יכולים להיות מעורבים באופן חופשי, כך שתוכל למשל יש צומת עם 10 צומת מתוכם 5 מהווים קבוצת רדיו (שבו רק אחד 5 צומת אלה ניתן לבדוק) ואת הבלוטות 5 אחרים יכול להיות בעל תיבת סימון (או ללא בדיקה הקלד בכלל). מעורבות (Tri-state) תיבות סימון עם טיפול נכון לבדיקה חלקית של בלוטות ילד נתמכים (לעתים קרובות נעשה שימוש להתקין תוכנות גיבוי). התפשטות מדינת שינוי אוטומטית עבור סוג כפתור שק מעורב אפשרי (אם מופעל). בדוק את אירועי OnChecking ואירועים OnCheck מסופקים מדי. למטרות מיוחדות כפתור שטוח קטן יכול לשמש, אשר נקרא על כפתור צומת. 7 סוגים שונים של תמונות צ'ק אפשריים. סימני Dark ובדיקת אור, חשוך השנתות אור, תמונות הצ'ק שטוח, תמונות הצ'ק בסגנון XP Windows ותמונות הצ'ק מוגדר ליישום. לקבלת TBaseVirtualTree.CheckImageKind רכוש ראה סקירה. זמן עיצוב: התכונות והשיטות של TreeView וירטואליים רשום קטגוריות דלפי (Delphi 5 ו BCB 5 ומעלה). עורך רכוש מיוחד עבור פורמטי הלוח כלול המאפשר בחירה בפורמט פשוט. הדבר חשוב במיוחד שכן פורמטי הלוח הזמינים חייבים להינתן כמו מחרוזות וזה גם די שימושי יש רשימה של פורמטים קיימים, גם אם הם עדיין לא הופעלו (לדעת מה יכול להיות מופעלים). התאמה אישית: Custom לצייר ולצבוע מחזורים נתמכים באמצעות אירועים צבע (עבור העץ כולו ועבור כל צומת). מלבד סוגים מובנה הצ'ק תמונת המחאה המוגדרים על ידי המשתמש יכול לשמש אשר נתמך על ידי רשימה תמונה נפרדת (TBaseVirtualTree.CustomCheckImages). כל כפתור בכותרת ניתן להסיק באופן אינדיבידואלי. סגנונות קווים שונים שלושה זמינים: קווים מקווקווים, קווי מוצק קווים מוגדרים יישום . יישומי צאצאים יכולים לספק עורך הצומת שלהם (שבה יש לא בהכרח להיות בקרה יחידה) על ידי טיפול באירוע TBaseVirtualTree.OnCreateEditor או דריסת TBaseVirtualTree.DoCreateEditor. זה מאפשר להחליף עריכת צומת לחלוטין על ידי עצמו כללים (עסקים). יישומי צאצאים יכולים לספק ממשק מנהל גרירה שלהם על ידי טיפול באירוע TBaseVirtualTree.OnCreateDragManager או דריסת TBaseVirtualTree.DoCreateDragManager. זה מאפשר להתאים את הטיפול גרור OLE כולו של העץ. הערה:. VCL ירידה drag'n מנוהלת על ידי VCL כך זה לא יכול להיות מותאם אישית יישומי צאצאים יכולים לספק ממשק אובייקט נתונים משלהם על ידי טיפול באירוע TBaseVirtualTree.OnCreateDataObject או דריסת TBaseVirtualTree.DoCreateDataObject. זה מאפשר לספק פורמטי לוח עצמו. יש פונקצית רישום (RegisterVTClipboardFormat), אשר מאפשרת לרשום צאצאי עץ עם לוח עצמו ו / או פורמטי אחסון. יישומים יכולים לספק פורמטים הלוח עצמו (ללא הנובע כיתות עץ חדש) על ידי טיפול באירוע TBaseVirtualTree.GetUserClipboardFormats. יישומי צאצאים יכולים לגמרי לשנות את טיפול המפתח של העץ על ידי טיפול באירוע TBaseVirtualTree.OnKeyAction או דריסת TBaseVirtualTree.DoKeyAction. זה עובד גם עבור חיפוש מצטבר. יישומי צאצאים יכולים להתאים אישית את הרקע של העץ אשר אינו מכוסה על ידי בלוטות, על ידי טיפול באירוע TBaseVirtualTree.OnPaintbackground או דריסת TBaseVirtualTree.DoPaintbackground. עבור צמתים יש אירועים נוספים עבור התאמה אישית. יישומי צאצאים יכולים להתאים אישית כיצד מקצר עץ המחרוזת מדי כיתובים ארוכים על ידי טיפול באירוע TCustomVirtualStringTree.OnShortenString או דריסת TCustomVirtualStringTree.DoShortenString. גלילה: פסי גלילה שטוח נתמכים. אבל מאז הם מתנגשים עם Windows XP תמיכה זו כבויה על ידי סמל מהדר (UseFlatScrollbars). אפשר הסמל הזה אם אתה באמת רוצה להשתמש פסי גלילה שטוח לפני קומפילציה יחידת עץ. טריגרים מבצע מגילה בכל אירוע TBaseVirtualTree.OnScroll. זה מאפשר לעצים לסנכרן עם פקדים אחרים. ישנם נכסים (למשל tbasevirtualtree.offsetxy) המאפשרים לגלול את תוכן העץ לכל פיסה בקוד מבלי לשלוח הודעות מסביב. גלגל פנורינג וגלילה נתמכת. כלומר, כאשר לחיצה על גלגל העכבר או לחיצה על החזקתו תוך הזזת העכבר סביב חלון העץ הוא גלול בצורה חלקה. הזרמת: תוכן עץ מתוחכם Serialization יושמה כדי לאפשר לחסוך ולחזור עץ ל / מן הזרמים. זה כולל גם נתוני משתמש כל עוד ניתן לכתוב לזרם. Virtual TreeView מאפשר גם להוסיף נתונים מזרם במקום להחליף את התוכן כולו. הפורמט הפנימי של הנחל הוא נתח מבוסס מה שהופך אותו מאוד גמיש לשיפורים עתידיים, אך עדיין שומר תאימות עם יישומים מבוגרים. יש נתח משתמש אשר לוקח נתונים שנכתבו לזרם באירוע tbasevirturetree.onsavende. הנתונים של נתח משתמש זה ניתן לקרוא ב Tbasevirturetree.onloadnode. מפתח תמיכה: טיפול מיוחד נלקח כדי לעצב את קוד המקור של עץ וירטואלי בעקביות. חלק גדול מכלל היישום הם הערות המתארות את הפעולות הפנימיות. שיטות ומאפיינים הוזמנו באופן אלפביתי במסגרת ההיקף שלהם (פרטיים, מוגנים, ציבוריים, שפורסמו). היוצא מן הכלל היחיד הוא הבנאים וההרס, שתמיד מופיעים בחלק העליון של הקטע הציבורי בהצהרה בכיתה והם תמיד השיטות הראשונות ביישום הכיתה. עבור כל אירוע יש שיטה וירטואלית אשר קורא את המטפל האירוע. זה מאפשר צאצאים לקבל הודעה על כל אירוע מבלי להקצות מטפל. שמות השיטות האלה מתאימות ישירות לאירועים באמצעות דפוס: DoeventName. צעדים רבים נלקחו כדי להבטיח בורלנד C + + תאימות בונה. זה קשה במיוחד כי התרגום האוטומטי מדלפי ל- C + + קוד BCB הוא באגי. יש מנגנון קל וחזק של סופרים צאצאים להקצות נתונים משלהם על בסיס צומת לכל. כל שעליך לעשות הוא להתקשר tbasevirturetree.AllocateInternalda כדי לרשום את הצרכים שלך. זה לא ישפיע על קוד היישום הקיים או העתידי אם היא משתמשת בעצם tbasevirturetree.getnodededa עבור גישה לנתוני משתמש. עריכה: יישום מוגדרים עורכים נתמכים באמצעות ממשק קישור ערוך. יישום עורך גנרי (לא Unicode) זמין מדי. כל עמודה בעץ ניתנת לעריכה אם מופעלת (ראה TcustomVirtualTualTeoptions.SelectionOptions.Toextendendfocus). כלי עזר: לנוחיותך חלק מהתפקידים המשמשים הפנימיים של ריבית כללית נחשפים. אלפבלנד: הליך מטרה כללית כדי למזג מקור על מפת סיביות יעד באמצעות מספר מצבים שונים. DrawStextW: יישום חלקי של API Drawstext התומך Unicode. שיטה זו יש רק בדל על Windows 95/98 / Me. Shortenstring: תפקיד כללי פונקציה אשר עושה רחב שלך מתאים לתוך שטח נתון. זה מיושם חלקית על ידי API של Windows Drawtext, אבל לוקח גם טיפול ליישור שמאלי לשמאל ועובד עם Unicode גם ב- Windows 95/98 / Me.


עץ וירטואלי תוכנה קשורה

sqlitespl.

למד כיצד ליצור יישומי מסד נתונים של SQL Embedded באמצעות Visual C + + ...

185 40 KB

הורד