{"id":55000392,"date":"2023-10-01T00:00:00","date_gmt":"2023-10-19T13:10:41","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=392"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"twinBASIC_Menues_erstellen","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/twinBASIC_Menues_erstellen\/","title":{"rendered":"twinBASIC: Men&uuml;s erstellen"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg08.met.vgwort.de\/na\/672bd5ccc4a14675a3b9236483fba5e5\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>W&auml;hrend man sich beim Programmieren von Office-Anwendungen wie Word, Excel, Outlook oder Access mit XML-Definitionen f&uuml;r das Ribbon besch&auml;ftigen muss, kann man unter twinBASIC zumindest f&uuml;r die Fenstermen&uuml;s auf eine einfache und praktische Benutzeroberfl&auml;che zur&uuml;ckgreifen. Okay, f&uuml;r Kontextmen&uuml;s ist dann doch wieder VB-Code gefragt, aber das ist auch in den meisten Office-Anwendungen noch die g&auml;ngige Vorgehensweise (nicht in Outlook, dort sind die Kontextmen&uuml;s bereits in die Ribbondefinition integriert). In diesem Artikel schauen wir uns erst einmal die M&ouml;glichkeiten an, twinBASIC-Anwendungen &uuml;ber die Benutzeroberfl&auml;che mit Men&uuml;s auszustatten und ihre Eigenschaften per Code anzupassen.<\/b><\/p>\n<h2>Hauptmen&uuml; anlegen<\/h2>\n<p>Bereits wenn wir ein Formular in twinBASIC &ouml;ffnen, ist die M&ouml;glichkeit zum Hinzuf&uuml;gen eines Men&uuml;s nicht zu &uuml;bersehen (siehe Bild 1).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_05\/pic_392_001.png\" alt=\"Button zum Anlegen eines Men&uuml;s\" width=\"499,6267\" height=\"204,3928\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Button zum Anlegen eines Men&uuml;s<\/span><\/b><\/p>\n<p>Klicken wir diese Schaltfl&auml;che an, erscheint direkt der neue Men&uuml;eintrag und bietet die M&ouml;glichkeit, den Namen anzupassen (siehe Bild 2).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_05\/pic_392_002.png\" alt=\"&Auml;ndern der Men&uuml;beschriftung\" width=\"424,6267\" height=\"126,214\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: &Auml;ndern der Men&uuml;beschriftung<\/span><\/b><\/p>\n<p>Schon jetzt k&ouml;nnen wir das Projekt starten und den Men&uuml;punkt sehen (siehe Bild 3). Durch wiederholtes Bet&auml;tigen der Schaltfl&auml;che k&ouml;nnen wir weitere Hauptmen&uuml;punkte hinzuf&uuml;gen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_05\/pic_392_003.png\" alt=\"Der erste Men&uuml;punkt im Einsatz\" width=\"424,6267\" height=\"165,708\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Der erste Men&uuml;punkt im Einsatz<\/span><\/b><\/p>\n<h2>Men&uuml;punkte hinzuf&uuml;gen<\/h2>\n<p>Klicken wir nun auf das ersten angelegten Men&uuml;, sehen wir eine weitere Schaltfl&auml;che (siehe Bild 4). Mit einem Klick f&uuml;gen wir einen Men&uuml;befehl hinzu.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_05\/pic_392_004.png\" alt=\"Hinzuf&uuml;gen eines Men&uuml;punktes\" width=\"424,6267\" height=\"133,2605\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Hinzuf&uuml;gen eines Men&uuml;punktes<\/span><\/b><\/p>\n<p>Dieser bietet auch direkt die M&ouml;glichkeit zum Umbenennen an (siehe Bild 5).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_05\/pic_392_005.png\" alt=\"Der neue Men&uuml;punkt\" width=\"424,6267\" height=\"131,2856\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Der neue Men&uuml;punkt<\/span><\/b><\/p>\n<h2>Anlegen von Untermen&uuml;s<\/h2>\n<p>Bevor wir uns die Anpassung der Men&uuml;s und Men&uuml;punkte ansehen, schauen wir uns noch an, wie wir ein Untermen&uuml; anlegen. Dazu klicken wir einfach auf einen der Men&uuml;punkte und f&uuml;gen diesem wie in Bild 6 einen Unterpunkt hinzu.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_05\/pic_392_006.png\" alt=\"Anlegen eines Men&uuml;punktes in einem Untermen&uuml;\" width=\"424,6267\" height=\"142,1827\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Anlegen eines Men&uuml;punktes in einem Untermen&uuml;<\/span><\/b><\/p>\n<p>Nach dem Start des Projekt steht unser erste Men&uuml; bereits (siehe Bild 7). Nun k&ouml;nnen wir uns um die Anpassung k&uuml;mmern.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_05\/pic_392_007.png\" alt=\"Das Men&uuml; in Aktion\" width=\"424,6267\" height=\"161,8143\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: Das Men&uuml; in Aktion<\/span><\/b><\/p>\n<h2>Men&uuml;s anpassen<\/h2>\n<p>Die Haupteintr&auml;ge, also die Eintr&auml;ge, die wir direkt in der Men&uuml;leiste sehen, k&ouml;nnen wir &uuml;ber ein Kontextmen&uuml; bearbeiten, das wie in Bild 8 aussieht.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_05\/pic_392_008.png\" alt=\"Men&uuml;s anpassen per Kontextmen&uuml;\" width=\"424,6267\" height=\"421,4736\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 8: Men&uuml;s anpassen per Kontextmen&uuml;<\/span><\/b><\/p>\n<p>Hier k&ouml;nnen wir Eintr&auml;ge umbenennen, ausschneiden oder kopieren und anschlie&szlig;end wieder einf&uuml;gen. Dazu stehen (nicht im Bild zu sehen) gleich drei Kontextmen&uuml;befehle zur Verf&uuml;gung:<\/p>\n<ul>\n<li><b>Paste Before<\/b>: F&uuml;gt das Men&uuml; aus der Zwischenablage vor dem aktuellen Eintrag ein.<\/li>\n<li><b>Paste After<\/b>: F&uuml;gt das Men&uuml; aus der Zwischenablage hinter dem aktuellen Eintrag ein.<\/li>\n<li><b>Paste Into (CRTL + V)<\/b>: F&uuml;gt das Men&uuml; aus der Zwischenablage als Untermen&uuml; in das aktuelle Men&uuml; ein.<\/li>\n<\/ul>\n<p>Au&szlig;erdem k&ouml;nnen wir die Men&uuml;punkte des Hauptmen&uuml;s mit den beiden Befehlen <b>Move Left (CTRL + LEFT) <\/b>und <b>Move Right (CTRL + RIGHT) <\/b>nach links oder rechts verschieben.<\/p>\n<p>Mit <b>Toggle Enabled <\/b>stellen wir den Men&uuml;punkt als deaktiviert ein. Wir k&ouml;nnen diesen dann sp&auml;ter per Code aktivieren. Wie k&ouml;nnen Men&uuml;elemente aber auch per Code deaktivieren. <b>Toggle Visible <\/b>erledigt das Gleiche f&uuml;r die <b>Visible<\/b>-Eigenschaft.<\/p>\n<p>Mit <b>Insert Before <\/b>und <b>Insert After <\/b>k&ouml;nnen wir neue Men&uuml;eintr&auml;ge vor oder hinter dem aktuellen Men&uuml;eintrag hinzuf&uuml;gen. Schlie&szlig;lich k&ouml;nnen wir den aktuell markierten Eintrag mit <b>Delete (DEL) <\/b>wieder l&ouml;schen.<\/p>\n<h2>Men&uuml;eintr&auml;ge anpassen<\/h2>\n<p>F&uuml;r Untermen&uuml;s und Men&uuml;punkte liefert das Kontextmen&uuml; weitgehend die gleichen Befehle (siehe Bild 9). Einige kommen noch hinzu, zum Beispiel <b>Toggle Checked (SPACE)<\/b>. Damit k&ouml;nnen wir festlegen, ob der Eintrag bereits beim ersten Anzeigen mit einem Haken versehen sein soll.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_05\/pic_392_009.png\" alt=\"Men&uuml;punkte anpassen per Kontextmen&uuml;\" width=\"424,6267\" height=\"559,496\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 9: Men&uuml;punkte anpassen per Kontextmen&uuml;<\/span><\/b><\/p>\n<h2>Trennstriche einf&uuml;gen<\/h2>\n<p>Au&szlig;erdem k&ouml;nnen wir mit den Men&uuml;befehlen <b>Insert Separator Before <\/b>und <b>Insert Separator After <\/b>einen Trennstrich vor oder hinter dem aktuellen Eintrag hinzuf&uuml;gen. Dieser erscheint im Entwurf sowie zur Laufzeit als Trennstrich zwischen zwei Men&uuml;punkten.<\/p>\n<h2>Eigenschaften von Men&uuml;s einstellen<\/h2>\n<p>Die Eigenschaften von Men&uuml;s sehen wir im Eigenschaftsbereich (siehe Bild 10). In der aktuellen Version von twinBASIC sind noch nicht alle Eigenschaften implementiert, die es unter VB6 gibt, jedoch die wesentlichen. Hier sind einige davon:<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_05\/pic_392_010.png\" alt=\"Eigenschaften von Men&uuml;s\" width=\"524,6265\" height=\"352,7507\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 10: Eigenschaften von Men&uuml;s<\/span><\/b><\/p>\n<ul>\n<li><b>Name<\/b>: Name des Men&uuml;s<\/li>\n<li><b>Caption<\/b>: Beschriftung des Men&uuml;s<\/li>\n<li><b>Checked<\/b>: Gibt an, ob ein Haken angezeigt werden soll.<\/li>\n<li><b>Enabled<\/b>: Gibt an, ob das Men&uuml; aktiviert angezeigt werden soll.<\/li>\n<li><b>Picture<\/b>: Dient der Auswahl eines Icons f&uuml;r das Men&uuml;.<\/li>\n<li><b>Tag<\/b>: Erlaubt das Angeben von individuellen Informationen.<\/li>\n<li><b>Visible<\/b>: Gibt an, ob das Men&uuml; sichtbar ist.<\/li>\n<\/ul>\n<div class=\"rcp_restricted\"><p><span style=\"color: #ff0000;\">M&ouml;chten Sie weiterlesen? Dann l&ouml;sen Sie Ihr Ticket!<\/span><br \/>\n<span style=\"color: #ff0000;\">Hier geht es zur Bestellung des Jahresabonnements des Magazins <strong>Visual Basic Entwickler<\/strong>:<\/span><br \/>\n<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/shop.minhorst.com\/magazine\/363\/visual-basic-entwickler-jahresabonnement?c=77\">Zur Bestellung ...<\/a><\/span><br \/>\n<span style=\"color: #ff0000;\">Danach greifen Sie sofort auf <strong>alle rund 200 Artikel<\/strong> unseres Angebots zu - auch auf diesen hier!<\/span><br \/>\n<span style=\"color: #000000;\">Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:<\/span><\/p>\n<\/div>\n\n\t\n\t<form id=\"rcp_login_form\"  class=\"rcp_form\" method=\"POST\" action=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000392\/\">\n\n\t\t\n\t\t<fieldset class=\"rcp_login_data\">\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_login\">Username or Email<\/label>\n\t\t\t\t<input name=\"rcp_user_login\" id=\"rcp_user_login\" class=\"required\" type=\"text\"\/>\n\t\t\t<\/p>\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_pass\">Password<\/label>\n\t\t\t\t<input name=\"rcp_user_pass\" id=\"rcp_user_pass\" class=\"required\" type=\"password\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t\t<p>\n\t\t\t\t<input type=\"checkbox\" name=\"rcp_user_remember\" id=\"rcp_user_remember\" value=\"1\"\/>\n\t\t\t\t<label for=\"rcp_user_remember\">Remember me<\/label>\n\t\t\t<\/p>\n\t\t\t<p class=\"rcp_lost_password\"><a href=\"\/data\/wp\/v2\/posts\/55000392?rcp_action=lostpassword\"><\/a><\/p>\n\t\t\t<p>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_action\" value=\"login\"\/>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_redirect\" value=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000392\/\"\/>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"123b777de9\"\/>\n\t\t\t\t<input id=\"rcp_login_submit\" class=\"rcp-button\" type=\"submit\" value=\"Login\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t<\/fieldset>\n\n\t\t\n\t<\/form>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>W&auml;hrend man sich beim Programmieren von Office-Anwendungen wie Word, Excel, Outlook oder Access mit XML-Definitionen f&uuml;r das Ribbon besch&auml;ftigen muss, kann man unter twinBASIC zumindest f&uuml;r die Fenstermen&uuml;s auf eine einfache und praktische Benutzeroberfl&auml;che zur&uuml;ckgreifen. Okay, f&uuml;r Kontextmen&uuml;s ist dann doch wieder VB-Code gefragt, aber das ist auch in den meisten Office-Anwendungen noch die g&auml;ngige Vorgehensweise (nicht in Outlook, dort sind die Kontextmen&uuml;s bereits in die Ribbondefinition integriert). In diesem Artikel schauen wir uns erst einmal die M&ouml;glichkeiten an, twinBASIC-Anwendungen &uuml;ber die Benutzeroberfl&auml;che mit Men&uuml;s auszustatten und ihre Eigenschaften per Code anzupassen.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662023,66052023,44000035,44000036,44000031,44000025],"tags":[],"yst_prominent_words":[],"class_list":["post-55000392","post","type-post","status-publish","format-standard","hentry","category-662023","category-66052023","category-COMDLLs_programmieren","category-Ribbon_programmieren","category-twinBASICProgrammierung","category-VBAProgrammierung"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000392","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/comments?post=55000392"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000392\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000392"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000392"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000392"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000392"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}