Nun haben Sie unseren Workshop ausprobiert und sind wie viele Andere darauf gestoßen, dass diese 4 Klassen nicht mit dem SSTab-Control zusammenarbeiten wollen, da dieses Control doch ein gewisses Eigenleben beweist, was seine darauf gesetzten Controls betrifft. Aus diesem Grund haben wir den Code entsprechend erweitert und angepasst, so dass das autom. Resizing der Form nun auch mit dem SSTab-Control funktioniert. Bezüglich des Resize-Problems und dem SSTab-Control gab es viele Fragen im Forum, so dass wir uns zusammengesetzt haben und Ihnen nun eine Erweiterung präsentieren können, mit der dieses Problem keines mehr ist und Sie nicht mehr auf das beliebte SSTab-Control verzichten müssen, wenn Sie unsere 4 Klassen einsetzen möchten. Zuerst benötigen wir ein wenig Hintergrundwissen bezüglich des SSTab-Controls. Was macht das SSTab es mit seinen Controls ? OK, was macht die Klasse mit den Controls ? 1. Abschnitt Initialisierung der Klasse Die Klasse merkt sich die Urprungskoordinaten aller Controls auf der Form. -> Wir müssen also als Erstes von allen Controls die gewünschten Koordinaten erhalten, ob sie nun verschoben sind oder nicht. Wir fügen also in die Klasse clsResize im Abschnitt Initialize vor die Schleife folgenden Code ein: Public Sub Initialize() Dim mCol_SSTAB As Collection Set mCol_SSTAB = New Collection ... Innerhalb der Schleife direkt nach der On Error Anweisung fügen wir noch folgenden Code ein: ... ' vom SSTab verborgene Controls merken und in den ' sichtbaren Bereich verschieben If oControl.Left < 0 Then mCol_SSTAB.Add oControl ' merken oControl.Left = oControl.Left + 75000 ' verschieben End If ... Zu guter Letzt müssen wir die ursprünglichen Koordinaten wiederherstellen. Dazu fügen wir nach der Schleife noch folgende Zeilen ein: ... ' Alle vorher verschobenen Controls wieder zurückverschieben For Each oControl In mCol_SSTAB oControl.Left = oControl.Left - 75000 Next ... Was machen nun diese zusätzlichen Zeilen Code genau? 2. Abschnitt DoResize Auch hier verfahren wir wieder ähnlich. Als erstes prüfen wir bei jedem Control, ob es nach links verschoben ist, wenn ja nehmen wir es in eine Collection auf. Nun verändern wir Größe und Position aller Controls. Danach verschieben wir alle betroffenen Controls um 75000 Twips nach links. Wir fügen also in die Klasse clsResize im Abschnitt DoResize folgenden Code ein: Public Sub DoResize() Dim mCol_SSTAB As Collection Set mCol_SSTAB = New Collection ... In die Schleife fügen wir als erstes die folgenden Zeilen ein: ... If oControl.Left < 0 Then mCol_SSTAB.Add oControl End If ... Nach der Schleife fügen wir dann wiederum die folgenden Zeilen ein: ... For Each oControl In mCol_SSTAB oControl.Left = oControl.Left - 75000 Next ... Wie genau funktioniert nun das Ganze ? 3. Abschnitt DoResize_First Hier brauchen Sie nur in vollkommener Analogie zum 2. Abschnitt zu verfahren. Fertig: Unsere 4 Klassen beherrschen nun auch das SSTab-Control und das alles ohne Hexerei Wir wünschen Ihnen viel Spaß mit diesen Klassen. Sollten Sie Fragen zu diesem Workshop haben, so können Sie diese gerne in unser Diskussionsforum stellen. Dieser Workshop wurde bereits 21.568 mal aufgerufen.
Anzeige
![]() ![]() ![]() (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren [email protected]! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
TOP! Unser Nr. 1 ![]() Neu! sevDataGrid 3.0 Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Tipp des Monats ![]() Dieter Otter PopUp-Menü wird nicht angezeigt :-( In diesem Tipp verraten wir Ihnen, wie Sie Probleme mit PopUp-Menüs umgehen können, wenn diese unter bestimmten Umständen einfach nicht angezeigt werden. TOP Entwickler-Paket ![]() TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
|||||||||||||
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. |