Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 7 odgovora
  • 4.650 pregleda

Najnovija ↓

Re: Minimalna velicina forme? 21.07.2004. u 08:50 · pre 271 mesec #2
DEsno u Propertisu forme odaberi:
BorderStyle i stavi 1.Fixed Singel ili 4.Fixed To.... i onda odrediš veličinu forme...
POZdraV
Re: Minimalna velicina forme? 21.07.2004. u 08:50 · pre 271 mesec #3
Ako mislis na velicinu u pikselima, onda nema pravila i velicina zavisi od toga sta imas na formi i sta hoces da uvek ostane vidljivo. Ako je pitanje bilo kako da obezbedis da korisnik ne smanji dimenzije forme ispod neke vrednosti, onda je najbolje da u dogadjaju Resize forme testiras da li su tekuce vrednosti Me.Width i Me.Height forme manje od minimalnih, pa ako jesu, vrati na minimalne koje smatras pogodnim za konkretnu formu.
Re: Minimalna velicina forme? 21.07.2004. u 09:03 · pre 271 mesec #4
Jedna jednostavna varijanta ti je:
Code:
Private Sub Form_Resize()
    If Me.Width < X Then Me.Width = X    'X je minimalna sirina
    If Me.Height < Y Then Me.Height = Y  'Y je minivalna visina          
End Sub

Ali ce ti u ovom slucaju forma pri pokusaju smanjivanja na manju velicinu treperiti a i moze doci do nezeljenih efekata (zavisno od programa) jer se ona na trenutak ipak smanji vise nego sto bi zeleo.
Drugi nacin je pomocu API-ja ali sada nemam vremena da napisem code ali pogledaj SetWindowPos funkciju (i eventualno SetWindowPlacement).
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Minimalna velicina forme? 30.05.2005. u 20:16 · pre 260 meseci #6
Code:

Public Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" _
(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, _
ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long


Nije mi bas najbolje jasno kako iskoristiti ovu API funkciju!
Moze'l mi neko pojasniti sta trebam jos dodati / izmijeniti da npr. min. velcina bude 1000 x 1000...
Potpis

cik pogodi sta imam za veceru...

Re: Minimalna velicina forme? 30.05.2005. u 21:28 · pre 260 meseci #7
Ti si tu samo deklarisao funkciju, a nigde je nisi upotrebio.Da bi nešto uradio sa njom moraš da je pozoveš negde iz koda.
Recimo ovako
Code:
Private Sub Form_Load()
SetWindowPos Me.Hwnd, 0, 0 ,0, 300, 200, 0
End Sub

i to će ti postaviti veličinu na 300X200 pixela, dakle obrati pažnju, pixela, a ne twips-ova.No, to ti neće rešiti problem sa minimalnom veličinom forme.Evo jednog rešenja koje može to da odradi.
Ovo možeš da staviš u modul recimo
Code:
Option Explicit

Declare Function CallWindowProc Lib "user32.dll" Alias "CallWindowProcA" ( _
ByVal lpPrevWndFunc As Long, _
ByVal hwnd As Long, _
ByVal Msg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long

Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" ( _
ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long

Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" ( _
pDest As Any, _
pSrc As Any, _
ByVal ByteLen As Long)

Type POINTAPI
   x As Long
   y As Long
End Type

Type MINMAXINFO
   ptReserved As POINTAPI
   ptMaxSize As POINTAPI
   ptMaxPosition As POINTAPI
   ptMinTrackSize As POINTAPI
   ptMaxTrackSize As POINTAPI
End Type

Public Const GWL_WNDPROC = (-4)
Public Const WM_GETMINMAXINFO = &H24

Dim lpPrevWndProc As Long

Public Sub Hook()
   lpPrevWndProc = SetWindowLong(Form1.hwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub

Function WindowProc( _
ByVal hw As Long, _
ByVal uMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long

   If uMsg = WM_GETMINMAXINFO Then
      Dim MinMax As MINMAXINFO
      CopyMemory MinMax, ByVal lParam, Len(MinMax)
      MinMax.ptMinTrackSize.x = 1000 'ovde podesavas minimalnu X velicinu u pixelima
      MinMax.ptMinTrackSize.y = 1000 ' ovde podesavas minimalnu Y velicinu u pixelima
      CopyMemory ByVal lParam, MinMax, Len(MinMax)
   Else
      WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)
   End If
End Function

Public Sub Unhook()
   SetWindowLong Form1.hwnd, GWL_WNDPROC, lpPrevWndProc
End Sub

A onda u kodu radis hook i unhook, tj. najbolje je da hukuješ na početku, a unhukuješ na kraju, odnosno
Code:
Private Sub Form_Load()
Hook
End Sub

hukuješ kad se forma učita, a
Code:
Private Sub Form_Unload(Cancel As Integer)
UnHook
End Sub

a unhukuješ po zatvaranju forme.
Potpis
-Odracuonogakomijedrpiorazmaknicu.
-Ne rxdi mi txstxturx, kxd god hocu dx
ukucxm "x" onx ukucx "x".
-Ko kaaz e da ja neuummem da kuuca
m.
-Piše "Insert disk 3", a jedva sam i ova
dva ugurao u drajv
-Postoje samo dve osobe kojima
verujem, jedna sam ja, a druga nisi ti
Re: Minimalna velicina forme? 30.05.2005. u 23:27 · pre 260 meseci #8
Hvala ti na odgovoru Marko, eee ovako sam nesto i trazio...
Potpis

cik pogodi sta imam za veceru...

Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme