VB -18: Controls zur Laufzeit laden

Faulheit wird belohnt

Wie bereits angedeutet gibt es auch eine elegantere Methode, mehrere Controls gleicher Art zu erzeugen. Anstatt - wie in unserem bisherigen Beispiel - die benötigten Image-Controls für unsere Kugel in der Design-Umgebung zu kopieren, reicht es auch, wenn wir nur ein einziges Image-Control definieren, sozusagen als Prototyp, und dieses dann zur Laufzeit so oft kopieren, wie wir es benötigen.

Wichtig ist dabei nur, daß wir dem Prototypen einen Index zuweisen. Wir entfernen also alle KugelX-Images bis auf das mit dem Index 0 und fügen stattdessen ein Form_Load-Ereignis hinzu:

    Private Sub Form_Load()
        For i = 1 To 9
            Load KugelX(i)      'benötigte Anzahl Kugeln laden
            KugelX(i).Left = KugelX(i - 1).Left + KugelX(i).Width * 1.2
            'Kugeln positionieren
        Next
    End Sub
    

Alle Eigenschaften, die wir nicht explizit ändern (hier die Position der Kugeln auf der X-Achse), werden automatisch von der ersten Kugel übernommen.

Alternativ könnten wir dieses Laden natürlich auch erst dann vornehmen, wenn wir die Kugeln wirklich brauchen, in unserer Zählübung. Es gilt hier Vor- und Nachteile abzuwägen:

Die Entscheidung, was sinnvoller ist, ist sicher von Fall zu Fall verschieden. Da unser Programm vom Umfang nicht gerade ein Speicherfresser ist, lassen wir es mal beim Laden der Controls im Form_Load-Ereignis.

Am fertigen Programm hat sich nichts Erkennbares geändert, außer daß die EXE ein paar Bytes kleiner geworden ist. Logisch, denn die Bildinformationen für KugelX stecken nur einmal drin und solche Bildinformationen kosten nunmal Platz in der EXE. Bei unserem kleinen Projekt fällt das zwar nicht so sehr ins Gewicht, bei größeren Projekten und vielen gleichartigen Controls kann das aber durchaus ein wichtiger Aspekt sein.

Beispielprojekt laden

Diese Möglichkeiten bestehen übrigens grundsätzlich für alle Arten von Controls und prinzipiell auch für Forms.

zurück Index weiter


© Copyright 1998-2000 J.Behling EMail schreiben ABC-Ware's Homepage
Weitergabe und Druck (auch in Teilen, mit Ausnahme von Privatgebrauch) ohne ausdrückliche Genehmigung der Autorin untersagt.