Sub-Type-Listen in einem Type verwenden
Übersicht

SirrusBetreff: Sub-Type-Listen in einem Type verwenden |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ein Hinweis vorweg: Ich schreibe das Tutorial auf deutsch, darum verwende ich in Texten die deutschen Worte "Funktion" und "Lokal", in Syntax-Definitionen und Programmbeispielen jedoch die englischen Keywords "Function" und "Local"
Einleitung: Es wurde hier schon öfters behauptet, daß es nicht möglich ist, von einem Type mehrere seperate Objekt-Listen zu verwenden. Prinzipiell ist das schon richtig, denn alle Type-Objekte werden nur in einer Liste verwaltet und es ist in Blitzbasic nicht vorgesehen, das zu ändern. Jedoch als Programmierer sollte man meistens davon ausgehen, daß etwas nicht unmöglich ist, nur weil es nicht vorgesehen ist. (Ich habe am C64 schon eine Mausabfrage programmiert, als die meisten hier das Wort "Maus" noch nicht mit Computern in einen Zusammenhang gebracht haben. Aber als es den ersten C64 gab, gab es noch keine Maus und als es die Maus gab hatte das C64-Basic dafür keine Abfrage ![]() Folgen von Types in einer Collection unterscheiden: Um mehrere Folgen von Types innerhalb einer Collection zu unterscheiden, muß man zunächst die zusammengehörigen Types so miteinander verbinden, daß die Möglichkeit besteht Anfang und Ende eine Folge zu erkennen. Dies geht am einfachsten, indem man zwei Hilfsfelder anlegt, wo jedes Type mit einem vorherigen und einem nachfolgenden Type verlinkt wird. Eine Folge beginnt dann mit dem Type, daß auf keinen Vorgänger verlinkt und endet mit dem Type, daß auf keinen Nachfolger verlinkt. Wenn man zwei (oder mehr) Subtype-Listen innerhalb einer Type-Collection verwendet, kann die Collection natülich auch mal größer werden und dadurch wird es zeitaufwendig und umständlich, die Collection mit Each zu durchsuchen, um Folgenanfänge zu finden. Das Problem läßt sich mit einem Hilfstype beheben, in dem man das jeweils erste und letzte Type in Zeigern ablegt. In den Subtypes kann man dann noch einen Zeiger auf das jeweilige übergeordnete List-Type und für ein untergeordnetes List-Type unterbringen. Das Ganze sieht dann etwa so aus: BlitzBasic: [AUSKLAPPEN] Type Liste Jetzt muss man nur noch alle Type-Funktionen für die Sublisten mit eigenen Funktionen simulieren.... Doch die werde ich jetzt nicht auch noch alle hier erklären, denn etwas könnt ihr ja auch noch programmieren ![]() nur noch ein Tip zum simulieren von Each, folgendermaßen kann man nur die Types einer Liste durchlaufen (statt alle Subtypes) BlitzBasic: [AUSKLAPPEN]
Das ist vielleicht nicht die beste Lösung, aber es funktioniert. Ich organisiere damit bei Blitz3D Menüs, Tollbar, Dockfenster und jede Art von Steuerelementen bis zu CameraViewPorts für 3D |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group