look like microsoft
TRANSCRIPT
Look Like Microsoft
Using Code Jock Tools
Visual Basic v 6
Mr.Mohamed Ragab Ali
...............................................................المؤلف • ......................................................عن الكود جوك •• repone Bar ......................................................
• Message Bar ....................................................
• Shortcut Bar .....................................................
• Task panel .......................................................
الخاتمة •
Repone Bar التوبیبات والقوائم وھى عبارة انشاء command Barھى احد خصائص اداة
بالضبط نفس الشكل تماما ومن ثم ٢٠٠٧مثل القوائم الموجودة فى برنامج الورد اجراء العملیات واالحداث على تلك التوبیبات والقوائم كما یتطلب برنامجك ولعل
: مثاال كما بالشكل االتى
٢٠٠٧شاھدت معى كیف تغیر شكل الفورم والقوائم الى شكل االوفیس
:طریقة االعداد command Bars االداة المستخدمة فى البرمجة ھى اداة
القوائم الرئیسیة والتبویبات والقوائم الفرعیة للتبویبات والرئیسیة( البد من تعریف الثوابت : اوال ) قم بأضافة مودیول من ثم قم بتعریف الثوابت ھكذا :رمز
Public Const ID_TAB_HOME = 1 Public Const ID_GROUP_FILE = 2 Public Const ID_FILE_NEW = 3 Public Const ID_FILE_OPEN = 4 Public Const ID_FILE_close = 5
شرح وتوضیح الكود السابق وذلك ھى التوبیب الرئیسى home تعریف الثوابت file تعریف المجموعات الرئیسیة new _ open _ close تعریف المجموعات الفرعیة
: ثانیا فى الحدث فورم لود :رمز
LoadIcons CreateRibbonBar CommandBarsGlobalSettings.Office2007Images = App.Path & "\Styles\Office2007Black.dll" CommandBars.PaintManager.RefreshMetrics CommandBars.RecalcLayout '------------------- RibbonBar.EnableFrameTheme CommandBars.EnableCustomization True
شرح الكود اوال عمل لود لالیكونات التى ستأخدھا الثوابت الریئیسیة والتوبیبات والقوائم الفرعیة ثانیا حدث انشاؤ الریبون بار
وذلك مستخدما ٢٠٠٧ك من االوفیس ودى مش الزم اوى دى عشان اعطى شكل الریبون االصدار البال: ثالثا یعنى لو مكتبتش ھیعطیك االصدار اللبنى office2007black.dll مكتبة
فى الحدث: ثالثا Private Sub CreateRibbonBar() :رمز
Dim TabHome As RibbonTab Dim GroupFile As RibbonGroup Dim RibbonBar As RibbonBar Dim ControlFile As CommandBarPopup Dim Control As CommandBarControl
على انھ تبویب فى الریبون بار home اعالن عن التوبیب واعالن ایضا عن المجموعات الرئیسیة واعالن عن الریبون بار حدث انشاء الریبون والتوبیبات والرئیسیة :رمز
Set RibbonBar = CommandBars.AddRibbonBar("The Ribbon") RibbonBar.EnableDocking xtpFlagStretched Set ControlFile = RibbonBar.AddSystemButton() ControlFile.IconId = ID_SYSTEM_ICON
حدث انشاء القائمة الرئیسیة :رمز
ControlFile.CommandBar.Controls.Add XtremeCommandBars.XTPControlType.xtpControlButton, ID_FILE_NEW, "&New", False, False ControlFile.CommandBar.Controls.Add XtremeCommandBars.XTPControlType.xtpControlButton, ID_FILE_OPEN, "&Open...", False, False
Set Control = ControlFile.CommandBar.Controls.Add(XtremeCommandBars.XTPControlType.xtpControlButton, ID_FILE_close, "& close", False, False)
حدث انشاء التوبیبات الفرعیة :رمز
Set TabHome = RibbonBar.InsertTab(0, "&Home") TabHome.Id = ID_TAB_HOME Set GroupFile = TabHome.Groups.AddGroup("File", ID_GROUP_FILE) GroupFile.Add XtremeCommandBars.XTPControlType.xtpControlButton, ID_FILE_NEW, "&New", False, False GroupFile.Add XtremeCommandBars.XTPControlType.xtpControlButton, ID_FILE_OPEN, "&Open", False, False GroupFile.Add XtremeCommandBars.XTPControlType.xtpControlButton, ID_FILE_close, "&Close", False, False
او بأستخدام المسارات عن طریق االداة نفسھا image list نأتى الى االیكونات وھناك طریقتین اما بأستخدامولكن ھقولھا سھلة جدا انت ھتاخد البرامیتر بتاع الثابت وتكتبھ على انا مبستعملھاش ھناك image listو tag image list للصورة فى الطریقة التانیة ()Private Sub LoadIcons فى الحدث :رمز
CommandBars.Options.UseSharedImageList = False CommandBars.Icons.LoadBitmap App.Path & "\res\LargeIcons.png", Array(ID_FILE_NEW, ID_FILE_OPEN, ID_FILE_SAVE, ID_EDIT_PASTE, ID_EDIT_FIND, ID_FILE_PRINT, ID_FILE_close, ID_VIEW_NORMAL, ID_FILE_PRINT_PREVIEW, ID_VIEW_FULLSCREEN, ID_WINDOW_NEW, ID_WINDOW_ARRANGE, ID_WINDOW_SWITCH), XtremeCommandBars.XTPImageState.xtpImageNormal CommandBars.Icons.LoadBitmap App.Path & "\res\shiny-gear.png", ID_SYSTEM_ICON, XtremeCommandBars.XTPImageState.xtpImageNormal Dim ToolTipContext As ToolTipContext Set ToolTipContext = CommandBars.ToolTipContext ToolTipContext.Style = xtpToolTipOffice2007
مثال new نأتى ال خر حاجة وھى ازاى انفذ الحدث على المجموعات والتبویبات بمعنى لو عایز اما اضغط علىاو یطلع لیا رسالة والطریقة سھلة جدا ٢یفتح لیا فورم
select case باستخدام دالة :رمز
select case control.id
وبعدین اخد من المودیول البارمتر بتاع الحدث ولیكن :رمز
ID_FILE_NEW
ھیكون كدا :رمز
case ID_FILE_NEW : form2.show
:رمز
end select
قم بتحمیل ایضا مثال عملى مفتوح المصدر الستخدام الخاصیھ من الرابط االتى
h p://www.4shared.com/file/12975245...Barsv1310.html
Message Bar ھل رأیت القائمة المنسدلة التى تأتى الیك عند استالم رسالھ عبر برید الھوت میل
التى تظھر من جانب الساعة فى السیستم تراى یمكنك ایضا ان تجعل برنامجك messageboxیظھر مثل ھذه الرسالھ فى شكل تنبیھات للمستخدم او بدال من دالھ
: كل االتى او بالشكل واالستخدام الذى تریده كما بالش
: طریقة االعداد
PopupControl بعد استدعاء االداة للمشروع قم باختیار اداة حیث ان ھذه االداة تحمل ادوات كثیرة بعد ذلك قم بكتابة الكود التالى وھو صب انشاء االداة :رمزSub SetMSNTheme(Popup As XtremeSuiteControls.PopupControl) Dim Item As PopupControlItem Popup.RemoveAllItems Popup.Icons.RemoveAll Set Item = Popup.AddItem(5, 50, 160, 100, "welcome to egypt soft team system") Item.TextAlignment = DT_CENTER Or DT_WORDBREAK
Item.CalculateHeight Item.Id = 1 Popup.VisualTheme = xtpPopupThemeOffice2007 End Sub
الكود السابق للتوضیح یحمل االتى
تعریف لقائمة االداة الرئیسیة واالیكون ومحتوى الرسالة وكذلك نوع الثیم وشكل الرسالة وضبط حجم الكالم فى الرسالة
الخطوة التالیة نأتى الى صب الحدث على الرسالة یعنى لو عایز لما تضغط على الرسالة یظھر لیك شئ او تفتح موقع مثال :رمزPrivate Sub PopupControl1_ItemClick(ByVal Item As XtremeSuiteControls.IPopupControlItem) If Item.Id = 1 Then PopupControl1.Close ShellExecute Me.hWnd, vbNullString, "http://WwW.EG-PRO.CoM", vbNullString, vbNullString, 1 End If If Item.Id = 3 Then End End Sub
عد ذلك نقوم بوضع كوماند على الفورم اوزى ما انت عایز االداة تظھر امتى ممكن عن طریق الكود التالى الظھار الرسالة تایمر او انت وطلبك وضغط
:رمز PopupControl1.Animation = xtpPopupAnimationSlide PopupControl1.AnimateDelay = 256 PopupControl1.ShowDelay = 2000 PopupControl1.Transparency = 200 Call SetMSNTheme(PopupControl1) PopupControl1.Show
:تحمیل مثال عملى مفتوح المصدر للمبتدئین
h p://www.4shared.com/file/13320849...45/exmple.html
:تحمیل مثال اخر للمحترفین
h p://www.4shared.com/file/145987005/ef2e4331/PopupControl.html
Shortcut Bar بمختلف windowsالموجودة داخل اى نظام من انظمة تشغیل startافتح قائمة
اصدارتھا ستجد قائمة على یسار القائمة االساسیھ تحمل اختصارات اجعل برنامجك یحتوى على ھذه القائمة مما یزید الشكل جماال واكثر فعالیھ فى
كما بالصورة الموضحة للقائمة . االستخدمات المختلفة
ویكون تطبیقھا داخل المشروع ھكذا
:طریقة االعداد
المستخدمة وكالعادة طبعا اداة من ادوات اوال االداة code jock Codejock.ShortcutBar.v13.1.0.ocx الشرح سأقوم بعمل شرح الیكم ابسط ما یكون اراعى فى ذلك ان فیكم مبتدئین یریدون ایضا تعلم اعداد تلك االدوات وھذا من حقھم المنتدى ھنا مفتوح للمبتدئین . والمحترفین والخبراء الشرح combonent راجع الدورس السابقة من كیفیة ادارج االداة من واعتقد اننا ندرك كل ذلك ثم قم بأدراج االداة على الفورم فى منطقة التصریحات العامة او داخل مودیول قم بكتابة الثوابت :رمزOption Explicit Const SHORTCUT_INBOX = 1 Const SHORTCUT_CALENDAR = 2 Const SHORTCUT_CONTACTS = 3 Const SHORTCUT_TASKS = 4 Const SHORTCUT_NOTES = 5 Const SHORTCUT_FOLDER_LIST = 6 Const SHORTCUT_SHORTCUTS = 7 Const SHORTCUT_JOURNAL = 8 Const SHORTCUT_Mybook = 9 Const SHORTCUT_MYTEAM = 10 Const SHORTCUT_MYID = 11 Const SHORTCUT_EBOKS = 12 Const SHORTCUT_IDEA = 13
اعتقد ان الموضوع ما فیھ شئ صعب فقط كتابة الثوابت لالختصارات التى سنقوم بأدراجھا فى short cut bar قائمة formload الخطوة التالیة ستكون فى الحدث
حجز متغیر لیكون: اوال ShortcutBarItem ھنا حدث االختصار itemو :رمز Dim Item As ShortcutBarItem
بعد ذلك حدث انشاء االختصارات وستكون حدث كل اختصار على حدا Set Item = wndShortcutBar.AddItem(SHORTCUT_INBOX, "Messge", 0) :رمز Set Item = wndShortcutBar.AddItem(SHORTCUT_CALENDAR, "natiga", 0) Set Item = wndShortcutBar.AddItem(SHORTCUT_CONTACTS, "contact", 0) Set Item = wndShortcutBar.AddItem(SHORTCUT_TASKS, "tsk", 0) Set Item = wndShortcutBar.AddItem(SHORTCUT_NOTES, "rrd", 0) Set Item = wndShortcutBar.AddItem(SHORTCUT_FOLDER_LIST, "mmm", 0) Set Item = wndShortcutBar.AddItem(SHORTCUT_SHORTCUTS, "nnn", 0) Set Item = wndShortcutBar.AddItem(SHORTCUT_JOURNAL, "wwww", 0) Set Item = wndShortcutBar.AddItem(SHORTCUT_Mybook, "kkk", 0) Set Item = wndShortcutBar.AddItem(SHORTCUT_MYTEAM, "ffff", 0) Set Item = wndShortcutBar.AddItem(SHORTCUT_MYID, "qqqq", 0) Set Item = wndShortcutBar.AddItem(SHORTCUT_EBOKS, "llll", 0) Set Item = wndShortcutBar.AddItem(SHORTCUT_IDEA, "bbb", 0) Set Item = wndShortcutBar.AddItem(SHORTCUT_PRODUCT, "www", 0
نوضح الكود السابق ربما احد ما لم یفھم Set Item
اى اختصار او حدث item انشئ----------------------------------
wndShortcutBar.AddItem wndShortcutBar
سمتھا من الخصائصدى اسم االداة زى ما انا من احداث االداة item ھنا اخبره فى حدث اضافة
-------------------------------------- (SHORTCUT_CONTACTS, "contact", 0)
كما صرحنا عنھ item ثابت
SHORTCUT_CONTACTS
االسم المشار الیھ والذى ستشاھده بالفورم contact
٠مضافا الیھ البارمتر
الى االختصارات والطریقة مفیش اسھل من كدا icons ذلك نأتى الضافةبعد ستجدھا فى image list قم بأدراج اداة
microsoft windows common control 6 الیھ مع مراعاة اختبار صور خفیفة وقلیلة المساحة image قم باضافة
load حتى ال یصبح البرنامج ثقیال فى عملیة نكتب رقم الثابت حتى یأخد الصورة التى وضعنھا لھ index ىنضعط الصورة وف
اخر مرحلة وھى تطبیق الحدث على االختصارات اى عندما اضغط على اختصار او كما ترید form2.show معین ینفذ شئ معین ك لالداة نفسھا اضغط دبل كلیك على االداة لتفتح لك select وھى كاالتى فى حدث
لكود التالى وھو سھل جدا سیكون بأستخدام الدالة المعروفة صفحة الكود واكتب ا select case P :كود :رمزrivate Sub wndShortcutBar_SelectedChanged(ByVal Item As XtremeShortcutBar.IShortcutBarItem) Select Case Item.Id Case SHORTCUT_CALENDAR: MsgBox "Data" End Select End Sub
كما شرحت فى االدوات select الجملة ما فیش ابسط من كدا ھنا بأستخدام جملة للثابت المعین وھو على سبیل المثال item.id السابقة وعن طریقSHORTCUT_CALENDAR اخرج لى رسالة ستجدھا ضمن image list وكذلك بأستخدام اداة icons اما عن ادراجmicrosoft windows common control 6 formload وفى الحدث :كود :رمز wndShortcutBar.AddImageList imlShortcutBarIcons
:لتحمیل مثال عملى مفتوح المصدر http://www.4shared.com/file/13379646...T_CUT_BAR.html
Task Panel وعندما ترى الصورة ستتعرف windows xpھو مایطلق علیھ مربع عملیات
:على ما اقصده مباشرة
بامكانك بدال من استخدام التول بار واالدوات القدیمة جعل االحداث والقوائم مثل .برنامجك ھذه الخاصیھ فى
:طریقة االعداد code jock احد ادوات taskpanel.ocx االداة المستخدمة اداة الشرح ان شاء اهللا ھشرح لیكم على مجموعة واحدة عشان السھولة اوال ھنعمل اعالن عن التالت ثوابت من المجموعة الرئیسیة اما فى مودیول او منطقة التصریحات العامة :رمز
Const Tsk_Hidecontents = 19 Const Tsk_AddOrRemaove = 20 Const Tsk_Share = 21
ودول ایھ عشان نكون موضحین عندك مثال السیتم تسك متقسم زى ما انت عایز مثال المجموعة االولى نسمیھا وھكذا add remove و hidcontents ھیكون فیھا المتفرعات دى مثال system information مثال
فى الحدث فورم لود ھنحجز متغیر باسم االداة عشان تتنفذ الن انت متحطھاش على الفورم وخالص ال : ثانیا لیھا كود تنفیذ :رمزDim group As TaskPanelGroup
وبعد كدا نحجز متغیر باالیتم عشان تنفیذ الحدث :رمزDim Item As TaskPanelGroupItem
ة ولیكن ھنسمیھاوبعدین ننشأ اول مجموعة رئیسی system taskes او زى ما تحب :رمزSet Groub = Tsk.Groups.Add(0, "System Tasks")
وبعد كدا ھنخصص المجموعة عشان یكون فیھ فواصل بالكود دا :رمزGroub.Special = True
ك عادى او زى ما انت عایز تكتب فى برنامج add or remove نیجى النشاء التفریعات اللى ھیا زى with وذلك باستخدام دالة :رمزWith Groub.Items .Add Tsk_Hidecontents, "show f2", xtpTaskItemTypeLink, 1 .Add Tsk_AddOrRemaove, "show f3", xtpTaskItemTypeLink, 2 .Add Tsk_Share, "show f4", xtpTaskItemTypeLink, 3 End With End Sub
نشرح الكود عشان نوضح بردوا اوال فى السطر االول بقولھ بواسطة االیتم الى انشأتھ للمجموعات ضیف لیا دى انا اختصرت اسم االداة من الخصائص tsk و tsk_hidecontents مھمة او ایتم واخد الثابت١ونوعھ لینكر واخد البارمتر show f2 واسمھ على الفورم وھكذا نفس السطرین التالیین یظھر لیا فورم او یطلع رسالة او ینفذ كود show f2 نیجى بئا لتنفیذ الحدث ازاى اخلى مثال اما اضغط على select case معین انا عایزه بسیطة جدا فى حدث االداة باستخدام دالة
:رمزPrivate Sub Tsk_ItemClick(ByVal Item As XtremeTaskPanel.ITaskPanelGroupItem) Select Case Item.Id Case Tsk_Hidecontents: Form2.Show Case Tsk_Share: Form4.Show Case Tsk_AddOrRemaove: Form3.Show End Select End Sub
لتحمیل مثال عملى مفتوح المصدر
h p://www.4shared.com/file/12259764...tsk_panel.html
الخاتمة
ارجو ان اكون قد وفقنى المولى عز وجل فى سرد الشرح بأبسط الصور الننا نعلم ان فینا مبتدئین ومتوسطین ومحترفین وخبراء حتى نجعل مادة الكتاب یستفید منھا
وعرفانا بالجمیل لكل من تعلمت منھ ولو ذرات من العلم . الجمیع بمختلف الخبرات كر اهللا من الیشكر الناس اقدم خالص الشكر لكن لھا بداخلى معنى كبیرا جدا والیش
اوال للفریق المصرى االستاذ كریم الزھیرى واالستاذ وائل عابد واالستاذ معتز محمد وكما اوجھ الشكر لكل اعضاء ومشرفین واداریین موقع فیجول بیسك للعرب وكل
صام من قدم العلم لى ولغیرى من المسلمین وغیر المسلمین واشكر ایضا االستاذ ع. محمد ونسأل اهللا عز وجل ان یتقبل منا صالح اعمالنا
Mr.Mohamed Ragab Ali