VB6: Form Resize - proportional vergrößern/verkleinern

  • VB6

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Mufasa.

    VB6: Form Resize - proportional vergrößern/verkleinern

    Hi Leute,bin grad über eine Google-Suche auf Euer Forum gestoßen.

    Ich kämpfe hier grad mit einem ganz komischen Problem und hoffe die Profis unter Euch können mir da irgendwie etwas weiterhelfen... ich bin absoluter VB-Anfänger!!

    Also ich hab ein Formular (VB6) und möchte dieses proportional vergrößern bzw. verkleinern. Dafür hab ich zweit If-Abfragen geschrieben, die je nachdem ob Höhe oder Breite verändert wird, die andere Seite mit dem Ratio anpassen.
    Das Problem ist jetzt, dass immer die Abfrage, die als zweites im Programm steht Probleme macht. Irgendwie wird die "alte" Fenstergröße gespeichert und der springt dauernd hin und her.... ist jetzt zugegeben etwas komisch zu erklären....aber wäre super wenn Ihr Euch das mal anschauen würdet...

    Visual Basic-Quellcode

    1. Dim Ratio As Double
    2. Dim H_Temp, W_Temp
    3. Dim In_Resize
    4. Private Sub Form_Load()
    5. Ratio = 1.333
    6. End Sub
    7. Private Sub Form_Resize()
    8. If In_Resize = True Then Exit Sub
    9. If Form1.Height < 3915 Then Form1.Height = 3915
    10. In_Resize = True
    11. 'If-Abfragen zum proportionalen Vergrößern/Verkleinern
    12. If Not W_Temp = Form1.Width Then Form1.Height = Form1.Width / Ratio
    13. If Not H_Temp = Form1.Height Then Form1.Width = Form1.Height * Ratio
    14. H_Temp = Form1.Height
    15. W_Temp = Form1.Width
    16. If Form1.Height < 3915 Then
    17. Form1.Height = 3915
    18. Form1.Width = (Form1.Height * Ratio)
    19. End If
    20. In_Resize = False
    21. End Sub

    Danke Euch schon mal im Voraus!!
    wenn dir das hilft:

    Visual Basic-Quellcode

    1. Private lHöhe As Long
    2. Private lBreite As Long
    3. Form_Load.......
    4. lHöre = Form.Hight
    5. lBreite = Form.With
    6. dein_control.With = lBreite
    7. dein_control.Heigt = lHöhe
    8. End Sub
    9. Form_Resize.........
    10. lHöre = Form.Hight
    11. lBreite = Form.With
    12. dein_control.With = lBreite
    13. dein_control.Heigt = lHöhe
    14. End Sub
    ich hab noch immer nich verstanden um welchen Control handelt den du mit Form vergrössern/verkleinern willst, in deine Code sehe ich nur irgend-welche variablen.
    Da wo ich "dein_control" geschrieben habe, schreibst du Name dein Objecktes/Steuerelement den du proportional mit Form vergrössern/ verkleinern willst ! 8-)
    Hey Mufasa,

    Probier dies:

    Visual Basic-Quellcode

    1. Option Explicit
    2. Dim dRatio As Double
    3. Dim iMinSize As Integer
    4. Dim bWorking As Boolean
    5. Private Sub Form_Load()
    6. iMinSize = 3915
    7. dRatio = 1.333
    8. Me.Height = iMinSize - 1
    9. End Sub
    10. Private Sub Form_Resize()
    11. Static iW%, iH%
    12. If bWorking Then Exit Sub
    13. If Me.Height < iMinSize Or Me.Width < iMinSize * dRatio Then
    14. iH = iMinSize
    15. iW = iMinSize * dRatio
    16. Else
    17. If iW <> Me.Width Then
    18. iH = Me.Width / dRatio
    19. iW = Me.Width
    20. ElseIf iH <> Me.Height Then
    21. iW = Me.Height * dRatio
    22. iH = Me.Height
    23. Else
    24. Exit Sub
    25. End If
    26. End If
    27. bWorking = True
    28. Me.Height = iH
    29. Me.Width = iW
    30. bWorking = False
    31. End Sub
    mfG DHB

    Ich meine:
    :P Es sollten nur ernstzunehmende Beiträge eingestellt werden!
    :( Beiträge, die nur deren Anzahl in die Höhe treiben sollen, stehlen Lesern deren Zeit und schenken nur Frust.
    ;) Wenn ein Autor sein Thema für erledigt hält, sollte er dies kurz als letzten Eintrag vermerken.
    8) Leser wüssten dann, dass hier weitere Beiträge nicht mehr sinnvoll sind.
    hey allerseits vielen Dank für Eure Hilfe!! Irgendwie will das bei mir mit dem beidseitigen Vergrößern nicht so klappen. Hab mich jetzt entschieden die Breite immer anhand der Höhe zu berechnen.... Das heißt der Benutzer kann nur die Höhe vergrößern und verkleinern, dementsprechend wird dann die Breite mittels Ratio angepasst..... das ist ok so und passt scho! :)