Avatar billede slapstick Nybegynder
04. september 2003 - 14:23 Der er 13 kommentarer og
1 løsning

resize af kontroller og forms

jeg skal ha lavet det så en af mine kontroller resizer med når man resizer ens form
jeg har lavet det her som test men når jeg starter programmet så resizer den allerede min textbox så den fylder hele min form (måske endda mere?)
koden kommer her:

Private Sub Form_Load()
chkHeight = Text1.Height
chkWidth = Text1.Width
frmStartHeight = frmMain.Height
frmStartWidth = frmMain.Width
End Sub

Private Sub Form_Resize()


    If frmStartHeight = frmMain.Height And frmStartWidth = frmMain.Width Then

        'do nada

    Else

        If frmStartHeight < frmMain.Height Then
       
            frmNewHeight = frmMain.Height - frmStartHeight
           
            Text1.Height = chkHeight + frmNewHeight
            chkHeight = Text1.Height
           
            frmNewWidth = frmMain.Width - frmStartWidth
           
            Text1.Width = chkWidth + frmNewWidth
            chkWidth = Text1.Width
           
        End If
       
        If frmStartHeight > frmMain.Height Then
       
            frmNewHeight = frmStartHeight - frmMain.Height
           
            Text1.Height = chkHeight - frmNewHeight
            chkHeight = Text1.Height
           
            frmNewWidth = frmStartWidth - frmMain.Width
           
            Text1.Width = chkWidth - frmNewWidth
            chkWidth = Text1.Width
           
        End If

    End If


End Sub
Avatar billede lokespas Nybegynder
04. september 2003 - 16:25 #1
jeg kiggede lige hurtig på din kode og lavede nogle ændringer

Dim frmNewWidth As Long
Dim frmNewHeight As Long
Dim chkHeight As Long
Dim chkWidth As Long

Private Sub Form_Load()
frmNewWidth = Me.Width
frmNewHeight = Me.Height
chkHeight = Text1.Height
chkWidth = Text1.Width
End Sub

Private Sub Form_Resize()
On Error Resume Next

If frmNewHeight = frmMain.Height And frmNewWidth = frmMain.Width Then

        'do nada

    Else

        If frmNewHeight < frmMain.Height Or frmNewWidth < frmMain.Width Then
       
            frmNewHeight = frmMain.Height - frmNewHeight
           
            Text1.Height = chkHeight + frmNewHeight
            chkHeight = Text1.Height
           
            frmNewWidth = frmMain.Width - frmNewWidth
           
            Text1.Width = chkWidth + frmNewWidth
            chkWidth = Text1.Width
           
        End If
       
        If frmNewHeight > frmMain.Height Or frmNewWidth > frmMain.Width Then
       
            frmNewHeight = frmNewHeight - frmMain.Height
            Text1.Height = chkHeight - frmNewHeight
            chkHeight = Text1.Height
           
            frmNewWidth = frmNewWidth - frmMain.Width
            Text1.Width = chkWidth - frmNewWidth
            chkWidth = Text1.Width
           
        End If

    End If

frmNewWidth = Me.Width
frmNewHeight = Me.Height
Avatar billede lokespas Nybegynder
04. september 2003 - 16:27 #2
jeg kan bedre lide denne her den er ikke så dramatisk

Dim x_scale As Single
Dim y_scale As Single
Dim frmNewWidth As Single
Dim frmNewHeight As Single

Private Sub Form_Load()
frmNewWidth = ScaleWidth
frmNewHeight = ScaleHeight
End Sub

Private Sub Form_Resize()
On Error Resume Next
If WindowState = vbMinimized Then Exit Sub

x_scale = ScaleWidth / frmNewWidth
y_scale = ScaleWidth / frmNewHeight

Text1.Width = x_scale * Text1.Width
Text1.Height = y_scale * Text1.Height

frmNewWidth = ScaleWidth
frmNewHeight = ScaleWidth

end sub
Avatar billede baxos Nybegynder
04. september 2003 - 18:46 #3
Sidder lige og teste kommer snart med et svar
Avatar billede baxos Nybegynder
04. september 2003 - 18:48 #4
Skal det være til dig selv eller til flerer
Avatar billede slapstick Nybegynder
08. september 2003 - 12:48 #5
hej lokespas
det virker forholdsvist fint hehe
hvis man resizer helt ned til mindste så sovser det for den
men den skal egentlig heller ikke kunne blive mindre end den er når den starter
hra du en ide til hvordan man gør det smart?
og undskyld jeg var så langsom til at svare....
Avatar billede lokespas Nybegynder
08. september 2003 - 14:31 #6
du kan sätte denne i  Form_Load()
frmStartWidth = Me.Width
frmStartHeight = Me.Height

og smide denne i  Form_Resize()
If frmStartWidth > Me.Width Then Me.Width = frmStartWidth
If frmStartHeight > Me.Height Then Me.Height = frmStartHeight

det hjälper lidt
Avatar billede slapstick Nybegynder
08. september 2003 - 14:48 #7
hmm jeg synes ikke det låser den til en mindste størrelse?
Avatar billede lokespas Nybegynder
08. september 2003 - 14:57 #8
"men den skal egentlig heller ikke kunne blive mindre end den er når den starter"
Avatar billede slapstick Nybegynder
08. september 2003 - 14:57 #9
jamen det kan den godt selvom jeg tilføjer de ting der
Avatar billede slapstick Nybegynder
08. september 2003 - 14:58 #10
da jeg mente mindste størrelse så var det den størrelse programmet har når man starter
Avatar billede lokespas Nybegynder
08. september 2003 - 15:08 #11
jeg har lige pasted det hele ind i nyt project og det funker!!!

et åndsvagt spørgsmål har du lavet den her:

Dim frmStartWidth As Long
Dim frmStartHeight As Long

øverst i modulet??
Avatar billede slapstick Nybegynder
08. september 2003 - 15:10 #12
doh nej og nu virker det
jeg siger rigtig mange tak !!! :)
smid et svar så jeg kan gi dig point
Avatar billede lokespas Nybegynder
08. september 2003 - 15:14 #13
det glæder mig :-)
Avatar billede slapstick Nybegynder
08. september 2003 - 15:18 #14
:o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester