| |

Fortgeschrittene ProgrammierungFrage zur Collection "Das aufgerufene Objekt wurde von den Clients getrennt" | |  | Autor: Sven R | Datum: 27.09.05 17:54 |
| Hallo zusammen,
als Erstes am besten gleich vorweg: Während des Schreibens hat sich eine Lösung gefunden. Warum es nicht so ging wie geplant, ist mir allerdings immer noch nicht klar.
Ich versuche gerade ein DirectDraw-Menü zu erstellen, im Grunde erst einmal nur eine Klasse für Buttons mit den Eigenschaften Größe, Position. Größe und Position sollen dabei als RECT (RECT wird von DirectX mitgeliefert und hat die Eigenschaften Left, Top, Right und Bottom) innerhalb der Klasse gespeichert werden. Es gibt also eine interne Variable iAppearance as RECT, die sich über Property Get und Let verändern lässt...
Public Property Get Appearance() As RECT
Appearance = iAppearance
End Property
Public Property Let Appearance(R As RECT)
With R
iAppearance.Bottom = .Bottom
iAppearance.Left = .Left
usw. ... und außerdem eine Funktion, die das Setzen der Informationen erleichert, weil diese nicht immer als RECT vorliegen.
Public Function SetAppearance(Left As Integer, Top As Integer, Right As _
Integer, Bottom As Integer)
iAppearance.Bottom = Bottom
iAppearance.Left = Left
usw. Das ganze funktioniert auch wunderbar. Man kann sich Buttons erstellen und auf die Eigenschaften zugreifen, in etwa so...
Button.Appearance.Left = 10
Msgbox Button.Appearance.Left Nun sollte das ganze ja ein Menü werden und von daher kann man die Buttons die man hat zur Übersichtlichkeit ja auch in eine Collection stecken. Vom wichtigsten Teil her genau nach dem auf vbarchiv.net beschriebenen System (http://www.vbarchiv.net/workshop/workshop37.php) habe ich also eine Klasse erstellt, die Buttons sammelt und auch darüber kann man wieder direkt auf die Eigenschaften der Buttons zugreifen.
Menu.Item(1).Appearance.Left Innerhalb der Klasse gibt es eine Funktion, die das Menü in eine Datei speichern soll. (Das Collection-Objekt der Klasse nennt sich übrigens mCol.) In der Speicher-Funktion habe ich versucht mit mCol.Item(i).Appearance auf die Größen- und Positionsinformationen zuzugreifen, was mit dem Fehler 80010108 endete.
"Die Methode 'Appearance' für das Objekt '_cls_DirectDrawButton' ist fehlgeschlagen" oder im Direktfenster "Automatisierungsfehler: Das aufgerufene Objekt wurde von den Clients getrennt"
Andere Eigenschaften der Buttons konnte man noch wie gewohnt abfragen. [z.B. mCol.Item(i).Enabled]
Das stellt mich vor ein Rätsel, was ich über die MSDN nicht lösen konnte. Das Problem selbst habe ich ersteinmal gelöst, indem ich die Buttons über "Property Get Item" der Collection-Klasse anspreche, obwohl da auch nichts anderes als "Set Item = mCol.Item(Index)" drin steht. ("mCol.Item" geht nicht, "Item" geht)
Fällt jemandem spontan ein Grund für das Ganze ein? Ist es mal wieder das "Set", das irgendetwas ominöses bewirkt?
Mit freundlichen Grüßen
Sven |  |
 Frage zur Collection "Das aufgerufene Objekt wurde von ... | 1.356 | Sven R | 27.09.05 17:54 |
 | 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 |
  |
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) sevOutBar 4.0 
Vertikale Menüleisten á la Outlook
Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. Weitere 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
|
|