vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

Visual-Basic Einsteiger
Re: method or data member not found 
Autor: ModeratorDieter (Moderator)
Datum: 15.11.15 08:56

Du hast doch sicherlich die vb@rchiv CD Vol.6
Auf der CD findest du den vollständigen Code aus dem Workshop, sowie ein Beispielprojekt.

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

method or data member not found 
Autor: crosstravel
Datum: 14.11.15 17:35

Hallo,

ich habe die Klasse col_controls entsprechend dem WorkShop "Resizing der Form mit automatischer Grössenanpassung" erstellt. Beim Compile kommt die im Titel angeführte Fehlermeldung. Der Cursor
steht dabei auf .Top von "With objNewMember".

Ich finde die Ursache dieses Fehlers nicht. Kann mir jemand helfen?

Danke
Rainer


Option Explicit
    Private mCol As Collection
 
 
' -----------------------------------------------------------------
' Erstellt das Collection Objekt beim erstem Zugriff auf die Klasse
' -----------------------------------------------------------------
 
Private Sub Class_Initialize()
  Set mCol = New Collection
End Sub
 
' -----------------------------------------------------------------
' Zerstört das Collection Objekt wenn die Klasse beendet wird
' -----------------------------------------------------------------
 
Private Sub Class_Terminate()
  Set mCol = Nothing
End Sub
 
' -----------------------------------------------------------------
' Objekt der Collection zurückgeben
' -----------------------------------------------------------------
 
Public Property Get Item(ByVal Index As Long) As clsControl
  Set Item = mCol(Index)
End Property
 
' -----------------------------------------------------------------
' Anzahl der Objekte durchreichen
' -----------------------------------------------------------------
 
Public Property Get Count() As Long
  Count = mCol.Count
End Property
 
' -----------------------------------------------------------------
' Anzahl der Objekte durchreichen
' -----------------------------------------------------------------
 
Public Function Add(ByVal lTop As Long, _
  ByVal lLeft As Long, _
  ByVal lWidth As Long, _
  ByVal lHeight As Long, _
  ByVal sName As String, _
  ByVal iFontSize As Single) As clsControl
 
  On Local Error GoTo 0
  ' -------------------------------- Eigenschaften zuweisen
  Dim objNewMember As clsControl
  Set objNewMember = New clsControl
  With objNewMember
    .top = lTop
    .left = lLeft
    .Height = lHeight
    .Width = lWidth
    .Tag = mCol.Count + 1
    .name = sName
    .FontSize = iFontSize
  End With
 
  ' -------------------------------- Objekt der Collection zuweisen
  mCol.Add objNewMember, sName
  ' -------------------------------- Objekt zurückgeben
  Set Add = objNewMember
  ' -------------------------------- neues Objekt zerstören
  Set objNewMember = Nothing
End Function
 
Public Function AddLine(ByVal lX1 As Long, _
  ByVal lX2 As Long, _
  ByVal lY1 As Long, _
  ByVal lY2 As Long, _
  sName As String) As clsControl
 
  On Local Error GoTo 0
  Dim objNewMember As clsControl
  Set objNewMember = New clsControl
 
  ' Eigenschaften zuweisen
  With objNewMember
    .x1 = lX1
    .x2 = lX2
    .Y1 = lY1
    .Y2 = lY2
    .ResizeOption = 0
    .Tag = mCol.Count + 1
    .name = sName
  End With
 
  ' -------------------------------- Objekt der Collection zuweisen
  mCol.Add objNewMember, sName
  ' -------------------------------- Objekt zurückgeben
  Set AddLine = objNewMember
  ' -------------------------------- neues Objekt zerstören
  Set objNewMember = Nothing
End Function
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: method or data member not found 
Autor: ModeratorDieter (Moderator)
Datum: 14.11.15 17:48

Ich gehe davon aus, dass du die Klasse "clsControl" nicht selbständig um alle notwendigen Eigenschaften erweitert hast, u.a. Top-Property etc.

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: method or data member not found 
Autor: crosstravel
Datum: 14.11.15 19:01

Hallo Dieter,

danke für den Hiweise; welcher das Problem zumindest teilweise löste. nun kommt die gleiche
Fehlermeldung auf bei ".name". Es ist mir nicht klar, was ich hier im Klassenmodul clsControl
setzen muss. kannst du mir bitte nochmals weiterhelfen? Muss ich evtl. den Formnamen übergeben?

Danke
Rainer

' -----------------------------------------------------------------
' Anzahl der Objekte durchreichen
' -----------------------------------------------------------------
 
Public Function Add(ByVal lTop As Long, _
  ByVal lLeft As Long, _
  ByVal lWidth As Long, _
  ByVal lHeight As Long, _
  ByVal sName As String, _
  ByVal iFontSize As Single) As clsControl
 
  On Local Error GoTo 0
  ' -------------------------------- Eigenschaften zuweisen
  Dim objNewMember As clsControl
  Set objNewMember = New clsControl
  With objNewMember
    .Top = lTop
    .Left = lLeft
    .Height = lHeight
    .Width = lWidth
    .Tag = mCol.Count + 1
    .name = sName
    .FontSize = iFontSize
  End With
 
  ' -------------------------------- Objekt der Collection zuweisen
  mCol.Add objNewMember, sName
  ' -------------------------------- Objekt zurückgeben
  Set Add = objNewMember
  ' -------------------------------- neues Objekt zerstören
  Set objNewMember = Nothing
End Function
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: method or data member not found 
Autor: ModeratorDieter (Moderator)
Datum: 14.11.15 19:24

Im clsControl Klassenmoldul muss u.a. auch eine Name-Property eingefügt werden:
'Zuweisen & Abrufen mvar_Name
Public Property Let Name(ByVal vData As String)
  mvar_Name = vData
End Property
 
Public Property Get Name() As String
  Name = mvar_Name
End Property

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: method or data member not found 
Autor: crosstravel
Datum: 15.11.15 08:53

Hallo Dieter,

nach Einfügen der Name-Property konnte ich problemlos kompilieren. Danke für Deine Hilfe.

Leider habe ich bei meinen ersten Tests unüberwindbare Schwierigkeiten.Ich habe meine Anmelde-Form
dazu genommen. Hier möchte ich durch einen Klick auf die Vollbild-Schaltfläche (2. von rechts) die Form auf die Bildschirm-Grösse bringen. Mit einem Klick auf den Minimize-Button soll die ursprüng-
liche Grösse wieder hergestellt werden.

Bei Test des beigefügten Beispiels wird zwar bei einem Klick auf den Maximize-Button der ganze Screen
belegt, die Form bleibt aber in der ursprünglichen Grösse. Den Minimize-Button habe ich noch nicht ge
testet.

Das Initialize im Form_Load-Event wird korrekt durchgeführt. Gemäss Anleitung im WorkShop sollte der
Code korrekt sein. Aber irgendwo steckt noch ein Fehler? Kannst Du nochmals weiterhelfen?

Danke
Rainer


Option Explicit
Dim oResize         As clsResize
 
...
 
Private Sub Form_Load()
    DisableCloseWindowButton Me
 
    Set oResize = New clsResize
    oResize.oForm = Me
    oResize.Initialize
 
 
    Me.KeyPreview = True
    sevUser = ""
    sevKennwort = ""
    AnmeldeStatus = "Exit"
    CryptZähler = 0
    CheckPasswort = "Nein"
 
    aRs_Close
    sSQL = "SELECT * FROM tblsystem"
    aRs.CursorLocation = adUseClient
    aRs.Open sSQL, oConn, adOpenForwardOnly, adLockOptimistic
    aRsOpen = True
    If aRs.RecordCount > 0 Then
       CheckPasswort = aRs!SysPassword
    End If
    If CheckPasswort <> "Ja" Then
       sevLabel1.Visible = False
       sevKennwort.Visible = False
    End If
End Sub
 
Private Sub Form_Resize()
    If Me.WindowState <> vbMinimized Then
       oResize.DoResize
    End If
End Sub
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: method or data member not found 
Autor: crosstravel
Datum: 15.11.15 09:12

Guten Morgen Dieter,

ich habe leider nur die Version 5, welche ja nun bereits einige Jahre alt ist.
Sie doch so gut, und schicke mir die aktuelle Version. Ich werde versuchen, die
jetzt über den Shop zu bestellen.

danke
Rainer
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: method or data member not found 
Autor: crosstravel
Datum: 15.11.15 12:16

Hallo Dieter,

bis zum Eintreffen der VbArchiv Volume 6 habe ich etwas mit dem Beispiel auf Vol. 5 gestestet.
Minimize und Maximize funktionieren damit - wenn es sich um eine einfache Form handelt.

Nun habe ich aber auf einer Form das TabStrip-Control mit mehreren Reitern. Der erste Reiter
wird wie erwartet maximiert (inkl. der Controls und Fonts) und auch wieder in den Normalzustand
versetzt.

Klicke ich aber auf die Reiter, wird nur eine weisse Fläche angezeigt. Alle Controls sind verschwunden.
Ich habe danach einige Routinen in der Klasse clsResize gemäss dem Teil 2 des Workshops (SSTAB) um die
dort enthaltenen Erweiterungen angepasst - jedoch das Problem besteht noch immer.

Muss evtl. bei der Verwendung des sevTabstrip etwas beachtet resp. vorgekehrt werden?


Danke
Rainer
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: method or data member not found 
Autor: ModeratorDieter (Moderator)
Datum: 15.11.15 12:20

Siehe hierzu:
Resizing der Form mit automatischer Größenanpassung II

sevTabStrip arbeitet genau nach dem gleichen Prinzip

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: method or data member not found 
Autor: crosstravel
Datum: 15.11.15 13:43

Hallo Dieter,

genau diese Erweiterungen aus Teil 2 habe ich in die Klasse eingefügt. Ich sende Dir beiliegend
die entsprechenden Codeschnipsle (wegen der Grösse). Vieelicht kannst Du hier einen Fehler er-
kennen.

Danke
Rainer

Public Sub Initialize()
  'Initialisieren
 
  Dim oControl As Control
  Dim sControlName As String
  Dim iFontSize As Single
  Dim lTag As Long
 
  Dim mcol_SSTAB  As Collection
  Set mcol_SSTAB = New Collection
  ...
  'Alle Controls durchlaufen und Eigenschaften speichern
  For Each oControl In oForm_Now.Controls
    On Error Resume Next
    If oControl.left < 0 Then
       mcol_SSTAB.Add oControl                  ' Merken
       oControl.left = oControl.left + 750000   ' verschieben
    End If
    With oControl
 
 
Public Sub DoResize()
  'Etwaige Fehler wie bei Timern usw. übergehen
  On Error Resume Next
 
  Dim oControl As Control
  Dim sngFaktor_Height As Single
  Dim sngFaktor_Width As Single
  Dim sngFaktor_FontSize As Single
  Dim sControlName As String
 
  Dim mcol_SSTAB As Collection
  Set mcol_SSTAB = New Collection
  ...
  'Alle Controls durchlaufen und der Größe nach anpassen
  For Each oControl In oForm_Now.Controls
      If oControl.left < 0 Then
         mcol_SSTAB.Add oControl
      End If
      sControlName = oControl.name
      sControlName = sControlName & CStr(oControl.Index)
      ...
  Else
    DoResize_First False
  End If
  For Each oControl In mcol_SSTAB
      oControl.left = oControl.left - 75000
  Next
 
 
'Ursprungszustand wieder herstellen
Public Sub DoResize_First(ByVal bWithForm As Boolean)
  'Etwaige Fehler wie bei Timern usw. übergehen
  On Error Resume Next
 
  Dim mcol_SSTAB As Collection
  Set mcol_SSTAB = New Collection
 
  Dim oControl As Control
  ....
  'Alle Controls durchlaufen und der Größe nach anpassen
  For Each oControl In oForm_Now.Controls
 
      If oControl.left < 0 Then
         mcol_SSTAB.Add oControl
      End If
 
      sControlName = oControl.name
      sControlName = sControlName & CStr(oControl.Index)
  ....
  Next
 
  For Each oControl In mcol_SSTAB
      oControl.left = oControl.left - 75000
  Next
 
  'zu guter Letzt Größe der Form wieder herstellen
  If bWithForm Then
   oForm_Now.Height = oForm_First.Height
   oForm_Now.Width = oForm_First.Width
  End If
End Sub


Beitrag wurde zuletzt am 15.11.15 um 13:45:00 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: method or data member not found 
Autor: crosstravel
Datum: 15.11.15 15:51

Hallo,

ich hoffe, das ist mein letztes posting zu diesem Problem. Inzwischen funktioniert das Resizing weitgehend auch bei den sevTabStrip. Ich hatte eine Instruktion falsch gesetzt. Folgende Fehler
habe ich jedoch noch bei DataGrids auf dem Tab festgestellt:

- Obwohl die Form auf dem Tab vergössert wurde, wir der Text im ColumnHeader normal dargestellt
- Der Spalteninhalt wird korrekt resized (grösser) angezeigt - aber
- Die Breite der Spalten wird nicht angepasst; ist also für den Text zu schmal


Woran könnte dieses Verhalten liegen?

Danke
Rainer
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Reisizing eines sevDataGrids auf einem sevTabStrip 
Autor: crosstravel
Datum: 16.11.15 18:18

Hallo Dieter,

wäre es Dir möglich, die nachstehenden offenen Probleme bezüglich dem Resizing eines
sevDataGrids anzuschauen. bis auf diese Punkte funktionieren die Klassen sehr gut.

Nochmals vielen Dank für Deine Unterstützung.

- Obwohl die Form auf dem Tab vergössert wurde, wird der Text im ColumnHeader normal dargestellt
- Der Spalteninhalt wird korrekt resized (grösser) angezeigt - aber
- Die Breite der Spalten wird nicht angepasst; ist also für den Text zu schmal


Vielen dank und einen schönen Abend.
Rainer
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Reisizing eines sevDataGrids auf einem sevTabStrip 
Autor: ModeratorDieter (Moderator)
Datum: 16.11.15 18:22

In diesem Fall muss auch noch das ColumnHeaderFont-Objekt angepasst werden und auch die Columns(x).Width Eigenschaften.

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Reisizing eines sevDataGrids auf einem sevTabStrip 
Autor: crosstravel
Datum: 16.11.15 19:01

Hallo Dieter,

das habe ich vermutet. kannst du mir sagen, wie ich diese beiden Komponenten in die clsResize Klasse einbinden kann? Ich hatte es gestern versucht .... allerding ohne Erfolg.


Danke
Rainer
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Reisizing eines sevDataGrids auf einem sevTabStrip 
Autor: ModeratorDieter (Moderator)
Datum: 16.11.15 19:02

Sorry, aber du musst du doch selbst durchbeisen.

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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-2024 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