15. februar 2002 - 13:53
#2
Du skal anvende Modale forms
Du kan loade en ny form modal i forhold til de øvrige forme i samme projekt og eventuelt som SystemModal i forhold til alle programmer. Dette er dog ikke at anbefale idet det vil låse hele PC'en og der er noget om at det ikke rigtigt er muligt på W2K ???
VB Koden:
Dim theForm as Form1
Set theForm = New Form1
theForm. Show vbModal
Dette loader form1 modal i forhold til alle andre forme i programmet og er det der bør anvendes.
mvh
theFish
27. februar 2002 - 20:43
#3
neeej da, sådan laver man det ikke, på den måde bliver programmet ikke altid øverst i forhold til andre windows programmer. Næ nej den slags gør man med API kald:
---->I general sektionen:<----
private Declare Function SetWindowPos Lib "user32" (ByVal h&, ByVal hb&, ByVal X&, ByVal Y&, ByVal cx&, ByVal cy&, ByVal f&) As Long
Const SWP_NOMOVE = 2
Const SWP_NOSIZE = 1
private Const flags = SWP_NOMOVE Or SWP_NOSIZE
private Const HWND_TOPMOST = -1
private Const HWND_NOTOPMOST = -2
private Const HWND_BOTTOM = 1
private Const HWND_TOP = 0
---> udenfor general sectionen laver du disse subs <---
private sub SetOnTop()
Call SetWindowPos(Form1.hWnd, HWND_TOPMOST, 0, 0, 0, 0, flags)
End Sub
private sub SetOffTop()
Call SetWindowPos(Form1.hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, flags)
End Sub
Hvis du derefter bruger kommandoen : SetOnTop så bliver dit program sat til always on top. Kommandoen SetOffTop fjerner det igen.
27. februar 2002 - 20:44
#4
Forresten, du skal lige huske at Form1 skal ændres til navnet på din hovedform, dvs. den form som altid skal være on top!