Avatar billede rexon Nybegynder
12. april 2006 - 13:24 Der er 6 kommentarer og
2 løsninger

Opløsning i VB

Jeg har lavet et program i fuld opløsning.
Men det passer jo uheldigvis ikke til alle opløsninger.
Derfor ville jeg høre om hvordan man kan løse dette poblem?
200p til bedste svar.
Avatar billede martin_moth Mester
12. april 2006 - 13:40 #1
2 måder:

1:Lav det så det passer til 800x600 (mindste almindelige opløsning), så vil det også passe til alle andre

2: Lav det skalerbart, så du flytter alle kontroller osv. rundt hver gang _Resize aktiveres på formen. Altså, aå alle kontroller altid fylder den samme %-del af formens bredde/højde. Jeg har lavet et program, hvor når man hiver i hjørnet, bliver alting justeret i størelsen, så pladsen altid udnyttes bedst. Ser cool ud


ad 1) Den er nem

ad 2) den tager tid

Sig til hvis du skal have hjælp til en af dem

PS: _Rezsize bliver aktiveret når du minimerer - det skal du tage højde for!
Avatar billede martin_moth Mester
12. april 2006 - 13:49 #2
PS. Hvis dit program IKKE skal kunen skalerez, men ALTID være i maximized, gør som følger:

I Form_Load bruger du Screen.Width og Screen.Height til at hente skærmens opløsning. Derefter skalerer du alle kontroller, som en %-del af screen-width og -height. Husk at afrund placeringer og bredder osv til nul decimaler - VB kan ikke håndtere halve pixels ;o)

Altså principielt det samme som jeg foreslår du skal gøre i _Resize, men det er jo kun hvis du vil tillade at man kan ændre størrelsen på din form, og den ikke er låst til maximized
Avatar billede rexon Nybegynder
12. april 2006 - 13:55 #3
kan du forklare lidt nærmere om hvordan jeg bruger resize funktionen?
hvor finder jeg den henne?
(;
Avatar billede martin_moth Mester
12. april 2006 - 13:57 #4
det er ikke en funktion det er en event - din form har en resize-event
Avatar billede martin_moth Mester
12. april 2006 - 14:01 #5
Automatisk (har ingen erfaring emd det)
http://www.vb-helper.com/howto_resize_controls_to_fit.html

Som jeg foreslår:

Private Sub Form_Resize()
  Dim fWidth  As Integer 'Form width
  Dim fHeight As Integer 'Form height

  'Brug ScaleWidth/ScaleHeight og ikke Width/Height ellers kommer det ikke til at passe.
  fWidth = Me.ScaleWidth
  fHeight = Me.ScaleHeight

  With Command1 'Center CommandButton
      .Left = (fWidth / 2) - (.Width / 2)
      .Top = (fHeight / 2) - (.Height / 2)
  End With
End Sub

Prøv at brug ovenstående kode og træk lidt rundt med størrelsen på din form
Avatar billede martin_moth Mester
12. april 2006 - 14:02 #6
smutter for i dag - you are on your own - jeg og andre har før besvaret spørgsmål om emnet, så søg lidt rundt hvis ovenstående ikke er tilstrækkeligt
Avatar billede martin_moth Mester
13. april 2006 - 12:06 #7
har du fået det til at virke?
Avatar billede rexon Nybegynder
13. april 2006 - 12:28 #8
Har kigget lidt på det.. men har ikk lige haft tid til at lave det endnu.
Men tak for svaret.
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