vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 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
Positionieren eines Form über Eigenschaft des Form 
Autor: guenni255
Datum: 04.02.19 15:26

Hallo Forum

ich habe da ein Problem mit der Positionierung eines Forms.

ich habe ein form das sich während des ladens einer weiteren Instanz selbst Positionieren soll. Dazu habe ich ihm über Property eine Eigenschaft verpasst die ich dazu nutzen will. da diese Eigenschaft auch in der Beschriftung genutzt wird möchte ich bei 1 statt 0 beginnen.

Public Property Get Einsatz() As Variant
Einsatz= xEinsatz
End Property
 
Public Property Let Einsatz(ByVal vNewValue As Variant)
xEinsatz = vNewValue
End Property
das klappt auch soweit solange alle Instanzen den gleichen .TOP Wert haben.

Me.Top = 10770
Me.Width = 1965
Me.Height = 3105
Me.Left = Me.Einsatz * 2000 - 2000 'Start bei 0. Jedes weitere Form an der 
' rechten Seite des Vorherigen
möchte ich nun aber nur eine bestimmte Anzahl der Forms nebeneinander und die anderen wieder bei Left=0 starten

Me.Caption = "Einsatz: " & Me.Einsatz
Me.Width = 2000
Me.Height = 2400
    Select Case Me.Einsatz
    Case 1, 2, 3
        Me.Top = 2300
        Me.Left = Me.Einsatz * 2000 - 2000
 
    Case 4, 5, 6
        Me.Top = 4800
       Me.Left = Me.Einsatz * 2000 - 2000
wird irgendwie "Einsatz" auf 0 gesetzt und dadurch ein Form mit der Beschriftung 0 und willkürlicher Position dargestellt. Alle weiteren dann aber richtig.

Könnte mir das Jemand erklären und was kann ich dagenen tun???

Vielen Dank im Voraus
Gruß Günni
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Positionieren eines Form über Eigenschaft des Form 
Autor: Souffleurlos
Datum: 04.02.19 17:35

Hallo

Du musst xEinsatz in der Form als Klassenvariable definieren Also ganz oben im Codeteil der Form:

Private xEinsatz As Long

Im Initialisierungs-Event der Form setzt du die Klassenvariable auf ihren Startwert, also

xEinsatz = 1

mehr nicht

Beitrag wurde zuletzt am 04.02.19 um 17:38:01 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Positionieren eines Form über Eigenschaft des Form 
Autor: guenni255
Datum: 04.02.19 20:47

Hallo Souffleurlos

Vielen Dank für deine schnelle Antwort.

Leider hilft mir das nicht. War mein Fehler das ich das defenieren nicht mit reinkopiert habe. Gesamt sieht das so aus.
Option Explicit
Private xEinsatz As Integer
Private xFormModus As Integer
Public Property Get Einsatz() As Variant
Einsatz = xEinsatz
End Property
 
Public Property Let Einsatz(ByVal vNewValue As Variant)
xEinsatz = vNewValue
End Property
 
Public Property Get FormModus() As Variant
FormModus = xFormModus
End Property
 
Public Property Let FormModus(ByVal vNewValue As Variant)
xFormModus = vNewValue
End Property
 
Private Sub cmdEnde_Click()
Me.Enabled = False
Call fspeichernEinsatz(Me.Einsatz)
Call fJahresübersicht(Year(frmTag.txtDatum.Text))
 
Call fAufrufTour(1, 0)
End Sub
 
Private Sub cmdWeitere_Click()
Call fspeichernEinsatz(Me.Einsatz)
Me.Enabled = False
Call fJahresübersicht(Year(frmTag.txtDatum.Text))
Call fAufrufEinsatz(Me.Einsatz + 1, 0)
End Sub
 
Private Sub Form_Load()
 
Me.Caption = "Einsatz: " & Me.Einsatz
Me.Width = 2000
Me.Height = 2400
    Select Case Me.Einsatz
    Case 1
        Me.Top = 2300
        Me.Left = 0
    Case 2
        Me.Top = 2300
        Me.Left = 2000
    Case 3
        Me.Top = 2300
        Me.Left = 4000
    Case 4
        Me.Top = 4800
        Me.Left = 0
    Case 5
        Me.Top = 4800
        Me.Left = 2000
    Case 6
        Me.Top = 4800
        Me.Left = 4000
    Case 7
        Me.Top = 7300
        Me.Left = 0
    Case 8
        Me.Top = 7300
        Me.Left = 2000
    Case 9
        Me.Top = 7300
        Me.Left = 4000
    End Select
Select Case Me.FormModus
Case 0 'Neuer DS
    Me.BackColor = vbWhite
    Me.cmdweitere.BackColor = &H80FF80
    Me.cmdEnde.BackColor = &HC0C000
    Me.lblFormModus = "Neuer Ds > Modus:" & Me.FormModus
 
Case 1 'Vorhandene Daten
 
End Select
 
End Sub
 
'======================================================Lostfocus===============
' ====================
Private Sub txtvon_LostFocus()
Me.txtvon.Text = Format(Me.txtvon.Text, "00:00")
End Sub
Private Sub txtbis_LostFocus()
Me.txtbis.Text = Format(Me.txtbis.Text, "00:00")
Me.txtEinsatzStd.Text = fMinBerechnen(Me.txtvon.Text, Me.txtbis.Text) / 60
End Sub
Also habe ich schon gemacht was du vorgeschlagen hast.

ich habe nun die Top Werte über select case zugewiesen.

So wie der code jetzt da steht funzt es auch.

Nur ist es meiner Meinung nach mit weniger Code zu lösen.

Vielleicht hast du ja einen Vorschlag.

Vielen Dank nochmal

LG Günni

Beitrag wurde zuletzt am 04.02.19 um 21:11:29 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Positionieren eines Form über Eigenschaft des Form 
Autor: Rippler
Datum: 05.02.19 00:20

Dieses:

    Select Case Me.Einsatz
    Case 1
        Me.Top = 2300
        Me.Left = 0
    Case 2
        Me.Top = 2300
        Me.Left = 2000
    Case 3
        Me.Top = 2300
        Me.Left = 4000
    Case 4
        Me.Top = 4800
        Me.Left = 0
    Case 5
        Me.Top = 4800
        Me.Left = 2000
    Case 6
        Me.Top = 4800
        Me.Left = 4000
    Case 7
        Me.Top = 7300
        Me.Left = 0
    Case 8
        Me.Top = 7300
        Me.Left = 2000
    Case 9
        Me.Top = 7300
        Me.Left = 4000
    End Select
Ersetzen durch:

    Me.Top = ((Me.Einsatz - 1) \ 3) * 2500 + 2300
 
    Me.Left = ((Me.Einsatz - 1) Mod 3) * 2000
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Positionieren eines Form über Eigenschaft des Form 
Autor: guenni255
Datum: 05.02.19 10:26

Hallo

Jeeppy. es funzt.

So gefällt mir das schon besser.

könntest du mir bitte noch erklären was Mod zu bedeuten hat, ich nehme mal an modal, und was es bewirkt.

Vielen Dank
LG Günni
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Positionieren eines Form über Eigenschaft des Form 
Autor: Rippler
Datum: 05.02.19 10:39

Der Modulo-Operator (oder Rest-Operator) dividiert Operand1 durch Operand2,
rundet dabei Fließkommawerte zu ganzen Zahlen und gibt nur den Rest als Ergebnis zurück.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Positionieren eines Form über Eigenschaft des Form 
Autor: guenni255
Datum: 05.02.19 10:46

Hallo Rippler

Wenn ich das richtig verstanden habe.

z.B 10 : 3 = 3 Rest 1

wird 1 zurückgegeben.

Alles klar.

Vielen herzlichen Dank für eure Hilfe. Auf euch ist doch immer Verlass

LG Günni
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