Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VBA: Formin koon muuttaminen

Sivun loppuun

mrkebab [29.07.2005 09:38:29]

#

Mistä voin muuttaa formin kokoa? Eli tarkoituksena olisi, että kun nappia painetaan ja formi tulee näkyviin niin se olisi tietyn kokoinen?.

Nyt kun minulla on yksi formi laitettu Load eventissä näin

DoCmd.Maximize

Niin kaikki muutkin formit on "isoina" avatessa.

neau33 [29.07.2005 15:25:51]

#

HEI mrkebab!

Vaikkapa näin:

Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Select Case Button
 Case 1
  If Me.Width < Screen.Width And Me.Height + 200 < Screen.Height Then
   Me.Width = Me.Width * 2
   Me.Height = Me.Height * 2
  End If
   Case 2
  If Me.Width > Command1.Width And Me.Height > Command1.Height * 4 Then
   Me.Width = Me.Width / 2
   Me.Height = Me.Height / 2
  End If
 End Select
 End Sub

Private Sub Form_Load()
Me.Width = Screen.Width / 2
Me.Height = Screen.Height / 2
Command1.Width = CInt(Screen.Width / 20)
Command1.Height = CInt(Screen.Height / 20)
End Sub

Private Sub Form_Resize()
If Me.Width > Screen.Width Then Me.Width = Screen.Width
If Me.Height > Screen.Height Then Me.Height = Screen.Height
If Me.Width < Command1.Width Then Me.Width = Command1.Width
If Me.Height < Command1.Height Then Me.Height = Command1.Height
 Me.Left = (Screen.Width / 2) - (Me.Width / 2)
 Me.Top = (Screen.Height / 2) - (Me.Height / 2)
 Command1.Left = (Me.Width / 2) - (Command1.Width / 2)
 Command1.Top = (Me.Height / 2) - (Command1.Height / 2) - 200

End Sub

mrkebab [31.07.2005 13:42:32]

#

Kiitos vaivannäöstä.

Annoin alussa vähän huonot tiedot, sillä olen tekemässä tätä Access 2003:lla Ja käytän VBA:ta.

Nuissa taitaa olla jotain eroja, sillä kun kopioin koodin ja kun kokeilen suorittaa sitä ,niin tulee virheilmoitus:

Method or data member not found.

Ja herja tulee tästä kohtaa:

If Me.Width < Screen.Width

Tosiaankaan kun kirjoitan Width. niin ei löydy sellaista luokkaa kuin Width ?

neau33 [31.07.2005 14:11:02]

#

Hei mrkebab!

Kyllä siitä UserForm:sta löytyy Width - Height ominaisuudet
Jos taas tarkoitit sitä Workbook'ia niin sieltä kyllä löytyy tapahtuma:

WindowResize(ByVal Wn As Window)

En ole varma voiko sen kokoon vaikuttaa esim. formista käsin, mutta tutkin asian ihan pekästä mielenkiinnosta...

mrkebab [31.07.2005 21:14:50]

#

Eli miten minun pitäisi korvata seuraavat lauseet, kun niitä ei löydy?

Screen.Width
Screen.Height
Me.Height
Me.Top
Me.Left

neau33 [01.08.2005 09:24:15]

#

Hei mrkebab!

Hyvä kysymys...

BadSource [01.08.2005 10:28:39]

#

Access 2003:n MoveSize VBA-metodi vastaa VB:n Move-metodia, jolla voi määritellä formin paikan ja koon. Access 2k3:ssa MoveSize-metodin argumentit poikkeavat Move-metodin vastaavista. MoveSize:n argumentit ovat [OikeaReuna], [AlaReuna], [Leveys] ja [Korkeus], joista vähintään yksi pitää määritellä kutsuttaessa metodia, kun ne Move:n yhtyedessä ovat [VasenReuna], [YläReuna], [Leveys] ja [Korkeus].

DoCmd.MoveSize 1400, 2400, , 2000 'Leveys jätetty muuttamatta. Jos sen arvo on esim. 1000, niin formin vasen ylänurkka on koordinaateissa 400/400

Lisää kyseinen MoveSize-hässäkkä jokaisen Formin Load-eventtiin niillä arvoilla, joilla haluat kyseisen ikkunan näkyvän käyttäjälle.

neau33 [01.08.2005 10:49:20]

#

VAU BadSource!

Kiitos!!!

mrkebab [01.08.2005 11:39:14]

#

EDIT:

Kiitos paljon. !


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta