vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: MDI-Child als Klasse 
Autor: unbekannt
Datum: 15.09.02 13:28

Hi BKC,

der Name: Klasse sagt es doch. Eine Klasse ist ein Strickmuster für viele gleiche Objekte seiner Art. Wenn Du also das Strickmuster 'zig Mal benötigst, werden diese von einer "Urklasse" abgeleitet. Das Hinzufügen oder Verändern von Controls zur Laufzeit ist eine völlig andere Sache - sie ermöglichen, dass u.U. doch in den einzelnen Fällen vom "Strickmuster" abgewichen werden kann .

Du benötigst also mehrere Forms, die den gleichen Aufbau haben, so entwirfst Du dieses Formular zur Entwicklungszeit, mit allem 'drum und 'dran und kapselst darin auch die gesamte Formularfunktionalität. Dieses Formular muß ein in sich geschlossenes Gebilde darstellen können. Übrigens, das wissen nicht viele: Du kannst einer Form auch Eigenschaften und Methoden hinzufügen!

Dieses "Spielchen" machen wir doch prompt Wir geben einer Form eine neue Eigenschaft namens: FormID, damit wir die Eigenschaft TAG noch als Reserve behalten können: So also das "Urförmchen" oder "Strickmuster":

Private tmpFormID As Long
 
Property Get FormID() As Long
       FormID = tmpFormID
End Property
 
Property Let FormID(Byval nFID As Long)
      tmpFormID = nFID
End Property
Ab sofort kennen alle Forms, die von dieser Form abgeleitet werden die Eigenschaft: FormID! Haben wir die GUI der Form durchgestilt, alles geproggt und ihr die obige Eigenschaft "verpasst" dann gehen wir sogleich an die Vervielfältigungsmaschine: Die Form hört auf den Namen MyForm (klaro, weil ich der Klasse Form eine neue Eigenschaft verpasst habe ).

In der MDI Form deklarieren wir doch prompt:
Private NewForm As MyForm   ' :-))
Private AllForms As New Collection   ' uuppsss
 
Private Function SetNewForm() As Long
        Static n As Long
 
        n = n + 1
        Set newForm = New MyForm
        With newForm
              .Visible = True
              .FormID = n               ' !!!!!!!!!!!!!!!!!!!!! :-))
        End With
 
        AllForms.Add newForm,Cstr(n)  ' !!!!!!!!!!!!!!!! :-)))
        SetNewForm = n
End Function
Jetzt kann ich jede einzelne abgeleitete Form aufgrund einer ID ansprechen.

AllForms(2).Backcolor = Rgb(0,0,232)
oder

n = AllForms(3).FormID
Kurz zu ooP: Das hier ist polymorphing. Vererbung wäre: Ich würde die neue Eigenschaft FormID im Stammformular von Long auf Integer ändern. Es seien schon fünf andere Forms abgeleitet worden. Wenn Vererbung bestünde, würden die fünf anderen Forms von dieser Veränderung sofort provitieren. Dies könnte in einem Outprozess-System eine wichtige Rolle spielen.

cu
Lordchen
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
MDI-Child als Klasse54BKC15.09.02 10:36
Re: MDI-Child als Klasse244unbekannt15.09.02 13:28
Re: MDI-Child als Klasse36BKC15.09.02 14:02
Re: MDI-Child als Klasse318unbekannt15.09.02 14:44
Ja, natürlich! *an den Schädel klopp* oT29BKC15.09.02 15:39

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel