klaus Expert Licensed User Longtime User Jan 28, 2011 #1 Basic4android v1.2 enthält eine neue Art von Modulen, statische Code-Module. Das Englische Originaltutorial. Zum hinzufügen eines neuen Static Code-Moduls muß man im Menü Project - Add New Module - Code Module wählen. Im Gegensatz zu Activities und Services, haben Code-Module keinerlei Zusammenhang mit Android Prozess Lebenszyklen. Sie sind nur Code-Behälter. Alle Subs in diesen Modulen sind öffentlich (public) und können von anderen Modulen aufgerufen werden. Benutzung von Code Modulen umfaßt: - Vermeiden von doppeltem Code in mehreren Modulen. - Gemeinsame Nutzung von Code zwischen Projekten. Zum Beispiel kann man ein Code-Modul erstellen, das eine XML-Datei analysiert. Später kann man problemlos das Modul in anderen Anwendungen wiederverwenden. - Trennung von Anwendungslogik. Jedes Modul für eine bestimmte Aufgabe eingesetzt werden. Dadurch wird Ihr Programm übersichtlicher und einfacher zu pflegen. Da ein Code-Module nicht an eine Activity weder auf ein Service gebunden ist, benutzt es den 'calling component context' wenn nötig. Zum Beispiel der Aufruf einer Code-Modul Subroutine, die eine Msgbox aus einer Activity anzeigen soll, wird funktionieren. Allerdings, wenn man sie von einem Service aufruft, wird es scheitern da Services keine Dialogs anzeigen können. Code-Module können keine Events abfangen. Man kann aber in einem Code-Modul, zum Beispiel einen Button initialisieren: Code: Sub ButtonsCreator(Text As String) As Button Dim b As Button b.Initialize("Button") b.Text = Text Return b End Sub Vom Activity Module kann man folgendes aufrufen: Code: Activity.AddView(CodeModule.ButtonsCreator("press here"), 10dip, 10dip, 200dip, 200dip) Nun um das Click-Event abfangen zu können muß man eine Subroutine namens Button_Click erstellen. Diese Subroutine muß sich im Activity Modul befinden, da Code-Module keine Events abfangen können. CallSub verwendet intern den Event-Mechanismus kann deshalb nicht verwendet werden um Code-Modul Subroutinen aufzurufen (direkt können sie aber aufgerufen werden).
Basic4android v1.2 enthält eine neue Art von Modulen, statische Code-Module. Das Englische Originaltutorial. Zum hinzufügen eines neuen Static Code-Moduls muß man im Menü Project - Add New Module - Code Module wählen. Im Gegensatz zu Activities und Services, haben Code-Module keinerlei Zusammenhang mit Android Prozess Lebenszyklen. Sie sind nur Code-Behälter. Alle Subs in diesen Modulen sind öffentlich (public) und können von anderen Modulen aufgerufen werden. Benutzung von Code Modulen umfaßt: - Vermeiden von doppeltem Code in mehreren Modulen. - Gemeinsame Nutzung von Code zwischen Projekten. Zum Beispiel kann man ein Code-Modul erstellen, das eine XML-Datei analysiert. Später kann man problemlos das Modul in anderen Anwendungen wiederverwenden. - Trennung von Anwendungslogik. Jedes Modul für eine bestimmte Aufgabe eingesetzt werden. Dadurch wird Ihr Programm übersichtlicher und einfacher zu pflegen. Da ein Code-Module nicht an eine Activity weder auf ein Service gebunden ist, benutzt es den 'calling component context' wenn nötig. Zum Beispiel der Aufruf einer Code-Modul Subroutine, die eine Msgbox aus einer Activity anzeigen soll, wird funktionieren. Allerdings, wenn man sie von einem Service aufruft, wird es scheitern da Services keine Dialogs anzeigen können. Code-Module können keine Events abfangen. Man kann aber in einem Code-Modul, zum Beispiel einen Button initialisieren: Code: Sub ButtonsCreator(Text As String) As Button Dim b As Button b.Initialize("Button") b.Text = Text Return b End Sub Vom Activity Module kann man folgendes aufrufen: Code: Activity.AddView(CodeModule.ButtonsCreator("press here"), 10dip, 10dip, 200dip, 200dip) Nun um das Click-Event abfangen zu können muß man eine Subroutine namens Button_Click erstellen. Diese Subroutine muß sich im Activity Modul befinden, da Code-Module keine Events abfangen können. CallSub verwendet intern den Event-Mechanismus kann deshalb nicht verwendet werden um Code-Modul Subroutinen aufzurufen (direkt können sie aber aufgerufen werden).