Start / Tipps / VB 5/6-Tipp 0721: Eigenschaften eines Steuerelements auflisten
 
Startseite Up-/Download Tutorials Club Das Team
Rubriken Foren Bücher Tips 'n Tricks Suche


VB 5/6-Tipp 0721: Eigenschaften eines Steuerelements auflisten


Dieser Code verwendet die TypeLib Information-Bibliothek und die Funktion CallByName, um die Eigenschaften und Methoden eines Steuerelements auszulesen und zu ändern.

Die TypeLib Information-Bibliothek ist erst ab der Professional Edition von Visual Basic verfügbar.

Schwierigkeitsgrad 1 Verwendete API-Aufrufe:
keine
Download des Beispielprojektes Download des Beispielprojektes [2,9 KB]
'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'---- Anfang Projektdatei prjEigenschaftenAuflisten.vbp  ----
' Es muss ein Verweis auf 'TypeLib Information' gesetzt werden.

'--- Anfang Formular "frmEigenschaftenAuflisten" alias frmEigenschaftenAuflisten.frm  ---
' Steuerelement: Schaltfläche "cmdÄndern"
' Steuerelement: Textfeld "txtWert"
' Steuerelement: Listen-Steuerelement "lstEigenschaften"
' Steuerelement: Listen-Steuerelement "lstSteuerelemente"
' Steuerelement: Rahmensteuerelement "fraBeispiele"
' Steuerelement: Horizontale Scrollbar "hscBeispiel" auf fraBeispiele
' Steuerelement: Textfeld "txtBeispiel" auf fraBeispiele
' Steuerelement: Schaltfläche "cmdBeispiel" auf fraBeispiele
' Steuerelement: Beschriftungsfeld "lblArt"
' Steuerelement: Beschriftungsfeld "lblWert"
' Steuerelement: Beschriftungsfeld "lblEigenschaften"
' Steuerelement: Beschriftungsfeld "lblSteuerelemente"
Option Explicit

Private mControlObject As Object
Private mControlInformation As SearchResults
Private mProperty As String

Private Sub cmdÄndern_Click()
    CallByName mControlObject, mProperty, VbLet, CVar(Me.txtWert.Text)
End Sub

Private Sub Form_Load()
    Dim Control As Object
    
    For Each Control In Me.Controls
        If Control.Container Is Me.fraBeispiele Then _
            Me.lstSteuerelemente.AddItem Control.Name
    Next Control
End Sub

Private Sub lstEigenschaften_Click()
    mProperty = Me.lstEigenschaften.Text
    
    With mControlInformation
        With .Item(.Locate(mProperty))
        
            If .InvokeKinds And INVOKE_FUNC Then
                Me.lblArt.Caption = "Funktion"
                Me.lblWert.Enabled = False
                Me.txtWert.Enabled = False
                Me.txtWert.Text = vbNullString
                Me.cmdÄndern.Enabled = False
                
            ElseIf .InvokeKinds And INVOKE_PROPERTYGET Then
                Me.lblWert.Enabled = True
                Me.txtWert.Enabled = True
                On Error Goto PropertyReadError
                
                Me.txtWert.Text = CStr(CallByName(mControlObject, mProperty, _
                    VbGet))
                    
                On Error Goto 0
                
                If CBool(.InvokeKinds And INVOKE_PROPERTYPUT) Or CBool( _
                    .InvokeKinds And INVOKE_PROPERTYPUTREF) Then
                    
                    Me.lblArt.Caption = "Eigenschaft"
                    Me.txtWert.Locked = False
                    Me.cmdÄndern.Enabled = True
                Else
                    Me.lblArt.Caption = "Schreibgeschützte Eigenschaft"
                    Me.txtWert.Locked = True
                    Me.cmdÄndern.Enabled = False
                End If
            End If
        End With
    End With
    
    Exit Sub
    
PropertyReadError:
    Me.txtWert.Text = "Fehler"
    Resume Next
End Sub

Private Sub lstSteuerelemente_Click()
    Dim Item As SearchItem
    
    Set mControlObject = Me.Controls.Item(Me.lstSteuerelemente.Text)
    
    Set mControlInformation = InterfaceInfoFromObject( _
        mControlObject).Members.GetFilteredMembers
        
    With Me.lstEigenschaften
        .Clear
        
        For Each Item In mControlInformation
            .AddItem Item.Name
        Next Item
        
        Me.lblEigenschaften.Enabled = True
        .Enabled = True
    End With
    
    Me.lblWert.Enabled = False
    Me.txtWert.Enabled = False
    Me.cmdÄndern.Enabled = False
End Sub
'--- Ende Formular "frmEigenschaftenAuflisten" alias frmEigenschaftenAuflisten.frm  ---
'----- Ende Projektdatei prjEigenschaftenAuflisten.vbp  -----
Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?
Ja, funktioniert! Windows-Version:
Nein, funktioniert nicht bei mir! VB-Version:

Ihre Meinung

Falls Sie Fragen zu oder Erfahrungen mit diesem Tipp haben, dann sollten Sie diese hier posten. Für alles weitere melden Sie sich bitte in einem zum Thema passendem Forum.

Falls Sie in ihren Kommentar Quellcode einbinden wollen, verwenden Sie bitte Pseudotags: Quellcode für VB5/VB6 wird durch ein vorangestelltes [code] markiert und durch [/code] abgeschlossen.

Ihr Name:   
Ihre E-Mailadresse:   
 
Bitte folgende Kontrollnummer eingeben: 2997
Kontrolle:   
 
Ihre Frage/Ihr Kommentar:
Ja, ich möchte weitere Beiträge per E-Mail erhalten
Von ActiveVB-Notizservice am 01.01.2002 um 00:01
Bisher wurden noch keine Notizen zu dieser Seite gepostet.

Erstellt: 29.12.2008
Aktualisierung: 29.12.2008
  Autor: Philipp Stephani
E-Mail: Philipp@ActiveVB.de



Copyright © 1998-2010 by ActiveVB
Alle Rechte vorbehalten.