vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

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

Fragen & Antworten rund um sev-Komponenten
Re: sevEingabe 
Autor: gunthard
Datum: 09.11.07 00:28

Vielen Dank für die schnelle Antwort.

Genauso hatte ich es auch vorher gemacht.
Allerdings übergab ich die Position und Größe in sevText1_GotFocus an vier Integer-Vars.

In sevText1_LostFocus wollte ich dann die alte Pos und Größe wiederherstellen. Und das funktionierte nie:
Private Sub sevText1_LostFocus(Index As Integer)
    With sevText1(Index)
        .Width = TxWidth
        .Height = TxHeight
        .Left = TxLeft
        .Top = TxTop
        .Refresh
        .AutoRedraw = False
    End With
End Sub
Ich fand heraus, dass es nur klappt, wenn ich vor der ersten Zuweisung durch eine Var eine Zuwweisung mit einer Hardcodierten Zahl machte z.b. .Width = 4000.
Mach ich etwas falsch? hier der Code zum ausprobieren:
'Resize.bas
' zunächst die benötigten API-Deklarationen
Private Declare Function GetWindowLong Lib "user32" _
                                       Alias "GetWindowLongA" (ByVal hwnd As _
                                       Long, _
                                                               ByVal nIndex As _
                                                               Long) As Long
 
Private Declare Function SetWindowLong Lib "user32" _
                                       Alias "SetWindowLongA" (ByVal hwnd As _
                                       Long, _
                                                               ByVal nIndex As _
                                                               Long, ByVal _
                                                               dwNewLong As _
                                                               Long) As Long
 
Private Declare Function SetWindowPos Lib "user32" _
                                      (ByVal hwnd As Long, _
                                       ByVal hWndInsertAfter As Long, ByVal x _
                                       As Long, _
                                       ByVal y As Long, ByVal cx As Long, ByVal _
                                       cy As Long, _
                                       ByVal wFlags As Long) As Long
 
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOZORDER = &H4
Private Const SWP_NOMOVE = &H2
Private Const SWP_DRAWFRAME = &H20
Private Const GWL_STYLE = (-16)
Private Const WS_THICKFRAME = &H40000
 
' Ermöglicht die Größe eines Objekts zur Laufzeit zu ändern
'
' bStatus = True, Größenänderung einschalten
' bStatus = False, Größenänderung abschalten
' =====================================================
Public Sub DoResize(hWndParent As Long, _
                    hWndObject As Long, ByVal bStatus As Boolean)
 
    Dim Result As Long
 
    Result = GetWindowLong(hWndObject, GWL_STYLE) Or _
             WS_THICKFRAME
    If Not bStatus Then _
       Result = Result - WS_THICKFRAME
 
    SetWindowLong hWndObject, GWL_STYLE, Result
    SetWindowPos hWndObject, hWndParent, 0, 0, 0, 0, _
                 SWP_NOZORDER Or SWP_NOSIZE Or SWP_NOMOVE Or _
                 SWP_DRAWFRAME
End Sub
 
'------------------------------------------------------------------------------
' ---------------------
 
'Form1
Option Explicit
 
Public TxResizeIndex As Integer
Dim TxWidth As String
Dim TxHeight As String
Dim TxLeft As String
Dim TxTop As String
 
 
Private Sub Form_Load()
 
End Sub
 
Private Sub sevText1_Click(Index As Integer)
 
    With sevText1(Index)
        If .Tag = "Resize" Then
            .Tag = ""
            DoResize Me.hwnd, .hwnd, False
            .Refresh
            .AutoRedraw = True
        Else
            .Tag = "Resize"
            .AutoRedraw = True
            DoResize Me.hwnd, .hwnd, True
        End If
    End With
 
End Sub
 
Private Sub sevText1_GotFocus(Index As Integer)
 
    With sevText1(Index)
        TxWidth = .Width
        TxHeight = .Height
        TxLeft = .Left
        TxTop = .Top
    End With
 
End Sub
 
Private Sub sevText1_LostFocus(Index As Integer)
 
    With sevText1(Index)
        .Width = 4000 ' ohne diese Zuweisung klappt es nicht
        .Width = TxWidth
        .Height = TxHeight
        .Left = TxLeft
        .Top = TxTop
        .Refresh
        .AutoRedraw = False
    End With
 
End Sub
Gruss Gunthard
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
sevEingabe651gunthard07.11.07 23:02
Re: sevEingabe438ModeratorDieter08.11.07 08:07
Re: sevEingabe404gunthard09.11.07 00:28
Re: sevEingabe416ModeratorDieter09.11.07 07:38
Re: sevEingabe435gunthard09.11.07 10:39
Re: sevEingabe425ModeratorDieter09.11.07 10:44
Re: sevEingabe419gunthard09.11.07 11:31

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