| |

Fortgeschrittene ProgrammierungRe: 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 |  |
 | 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 |
  |
|
Neu! sevCommand 4.0 
Professionelle Schaltflächen im modernen Design!
Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
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
|
|