Evo kako ja to radim, jes da je VB, ali razumljivo je koji god jezik da pricash :)
Ja sve programe koji treba da rade u FullScreenu ili max varijanti, pravim prema rezoluciji svog monitora (1680x1050) pa kad se ucita u drugacijoj rezoluciji sve srazmerno smanjim ili povecam.
Prvi modul koji se ucita po startu aplikacije izgleda ovako i ima jednu javnu proceduru koja se zove Podesi:
Code:
Public rx As Double
Public ry As Double
Public BrojacKontrola As Integer
Sub Main()
'Ovo je procedura koja se prva izvrsi pri startovanju programa
rx = Screen.Width / 25200 '1680x15
ry = Screen.Height / 15750 '1050x15 to je u pointima 1pixel=15 pointa
End Sub
Public Sub Podesi(ctrlControl As Control)
On Error Resume Next
Err.Clear
ctrlControl.Width = ctrlControl.Width * rx
ctrlControl.Height = ctrlControl.Height * ry
ctrlControl.Top = Round(ctrlControl.Top * ry)
ctrlControl.Left = Round(ctrlControl.Left * rx)
'ctrlControl.FontSize = ctrlControl.FontSize * ry
ctrlControl.Font.Size = ctrlControl.Font.Size * ry
' za linije
ctrlControl.X1 = ctrlControl.X1 * rx
ctrlControl.X2 = ctrlControl.X2 * rx
ctrlControl.Y1 = ctrlControl.Y1 * ry
ctrlControl.Y2 = ctrlControl.Y2 * ry
End Sub
I sada pri startu svake forme on prodje kroz sve kontrole i formu i resizuje:
Code:
Private Sub Form_Load()
Me.Width = Me.Width * rx
Me.Height = Me.Height * ry
For BrojacKontrola = 1 To Me.Controls.Count
Call Podesi(Me.Controls(BrojacKontrola - 1))
Next BrojacKontrola
End Sub
I to resava posao. Za slike stavish svojstvo Strech=True i to je to.